|LecygneNoir cb39eef8e0 Merge branch 'feature/poetry' into develop||8 hours ago|
|prismedia||8 hours ago|
|.gitignore||9 hours ago|
|CHANGELOG.md||8 hours ago|
|LICENSE||2 years ago|
|README.md||8 hours ago|
|poetry.lock||9 hours ago|
|pyproject.toml||9 hours ago|
|requirements.txt||9 hours ago|
Scripting your way to upload videos to peertube and youtube. Works with Python 3.5+.
You may use pip to install requirements:
pip install -r requirements.txt
(note: requirements are generated via
poetry export -f requirements.txt)
Otherwise, you can use poetry:
poetry install # installs the dependency in the current virtualenv, or creates one specific to the project if no virtualenv is currently active
Generate sample files with
python -m prismedia.genconfig.
youtube_secret.json with your credentials.
Set your credentials, peertube server URL.
You can get client_id and client_secret by logging in your peertube website and reaching the URL:
You can set
OAUTHLIB_INSECURE_TRANSPORT to 1 if you do not use https (not recommended)
Youtube uses combination of oauth and API access to identify.
The first time you connect, prismedia will open your browser to as you to authenticate to
Youtube and allow the app to use your Youtube channel.
It is here you choose which channel you will upload to.
Once authenticated, the token is stored inside the file
Prismedia will try to use this file at each launch, and re-ask for authentication if it does not exist.
The default youtube_secret.json should allow you to upload some videos.
If you plan an larger usage, please consider creating your own youtube_secret file:
Support only mp4 for cross compatibility between Youtube and Peertube
Upload a video:
python -m prismedia --file="yourvideo.mp4"
Specify description and tags:
python -m prismedia --file="yourvideo.mp4" -d "My supa description" -t "tag1,tag2,foo"
Provide a thumbnail:
python -m prismedia --file="yourvideo.mp4" -d "Video with thumbnail" --thumbnail="/path/to/your/thumbnail.jpg"
Use a NFO file to specify your video options:
(See nfo_example.txt for more precise example)
python -m prismedia --file="yourvideo.mp4" --nfo /path/to/your/nfo.txt
Use --help to get all available options:
Options: -f, --file=STRING Path to the video file to upload in mp4 --name=NAME Name of the video to upload. (default to video filename) --debug Trigger some debug information like options used (default: no) -d, --description=STRING Description of the video. (default: default description) -t, --tags=STRING Tags for the video. comma separated. WARN: tags with punctuation (!, ', ", ?, ...) are not supported by Mastodon to be published from Peertube -c, --category=STRING Category for the videos, see below. (default: Films) --cca License should be CreativeCommon Attribution (affects Youtube upload only) -p, --privacy=STRING Choose between public, unlisted or private. (default: private) --disable-comments Disable comments (Peertube only as YT API does not support) (default: comments are enabled) --nsfw Set the video as No Safe For Work (Peertube only as YT API does not support) (default: video is safe) --nfo=STRING Configure a specific nfo file to set options for the video. By default Prismedia search a .txt based on the video name and will decode the file as UTF-8 (so make sure your nfo file is UTF-8 encoded) See nfo_example.txt for more details --platform=STRING List of platform(s) to upload to, comma separated. Supported platforms are youtube and peertube (default is both) --language=STRING Specify the default language for video. See below for supported language. (default is English) --publishAt=DATE Publish the video at the given DATE using local server timezone. DATE should be on the form YYYY-MM-DDThh:mm:ss eg: 2018-03-12T19:00:00 DATE should be in the future --peertubeAt=DATE --youtubeAt=DATE Override publishAt for the corresponding platform. Allow to create preview on specific platform --thumbnail=STRING Path to a file to use as a thumbnail for the video. Supported types are jpg and jpeg. By default, prismedia search for an image based on video name followed by .jpg or .jpeg --channel=STRING Set the channel to use for the video (Peertube only) If the channel is not found, spawn an error except if --channelCreate is set. --channelCreate Create the channel if not exists. (Peertube only, default do not create) Only relevant if --channel is set. --playlist=STRING Set the playlist to use for the video. If the playlist is not found, spawn an error except if --playlistCreate is set. --playlistCreate Create the playlist if not exists. (default do not create) Only relevant if --playlist is set. -h --help Show this help. --version Show version. Categories: Category is the type of video you upload. Default is films. Here are available categories from Peertube and Youtube: music, films, vehicles, sports, travels, gaming, people, comedy, entertainment, news, how to, education, activism, science & technology, science, technology, animals Languages: Language of the video (audio track), choose one. Default is English Here are available languages from Peertube and Youtube: Arabic, English, French, German, Hindi, Italian, Japanese, Korean, Mandarin, Portuguese, Punjabi, Russian, Spanish