Scripting way to upload videos to peertube and youtube
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
LecygneNoir 6a1ddc0faf Add a more precise and usable documentation to be able to use the tool more easily :-) 6 years ago
lib correction to be more pep8 compliant (mostly typo) 6 years ago
.gitignore Add option to disable comments on Peertube (Youtube has no option in API to do that) 6 years ago
LICENSE initial commit 6 years ago
README.md Add a more precise and usable documentation to be able to use the tool more easily :-) 6 years ago
peertube_secret.sample add peertube URL and https/http config to the peertube_secret config file 6 years ago
prismedia_upload.py correction to be more pep8 compliant (mostly typo) 6 years ago
youtube_secret.json.sample use youtube_secret instead of client_secret to allow more flexibility (possibility to use peertube_secret) 6 years ago

README.md

Prismedia

A scripting way to upload videos to peertube and youtube

Dependencies

Search in your package manager, otherwise use pip install --upgrade

  • google-auth
  • google-auth-oauthlib
  • google-auth-httplib2
  • google-api-python-client
  • docopt
  • schema
  • python-magic
  • requests-toolbelt

Configuration

Edit peertube_secret and youtube_secret.json with your credentials.

Peertube

Set your credentials, peertube server URL.
You can set OAUTHLIB_INSECURE_TRANSPORT to 1 if you do not use https (not recommended)

Youtube

Youtube uses combination of oauth and API access to identify.

Credentials 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 .youtube_credentials.json.
Prismedia will try to use this file at each launch, and re-ask for authentication if it does not exist.

Oauth:
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:

  • Go to the Google console.
  • Create project.
  • Side menu: APIs & auth -> APIs
  • Top menu: Enabled API(s): Enable all Youtube APIs.
  • Side menu: APIs & auth -> Credentials.
  • Create a Client ID: Add credentials -> OAuth 2.0 Client ID -> Other -> Name: prismedia1 -> Create -> OK
  • Download JSON: Under the section "OAuth 2.0 client IDs". Save the file to your local system.
  • Save this JSON as your youtube_secret.json file.

How To

Currently in heavy development

Support only mp4 for cross compatibility between Youtube and Peertube

Simply upload a video:

./prismedia_upload.py --file="yourvideo.mp4"

Specify description and tags:

./prismedia_upload.py --file="yourvideo.mp4" -d "My supa description" -t "tag1,tag2,foo"

Use --help to get all available options:

./prismedia_upload.py --help
prismedia_upload - tool to upload videos to Peertube and Youtube

Usage:
  prismedia_upload.py --file=<FILE> [options]
  prismedia_upload.py -h | --help
  prismedia_upload.py --version

Options:
  --name=NAME  Name of the video to upload. [default: video filename]
  -d, --description=STRING  Description of the video. [default: default description]
  -t, --tags=STRING  Tags for the video. comma separated
  -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) [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]
  -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

Features

  • Support of all videos arguments (description, tags, category, licence, ...)
    • thumbnail/preview Canceled, waiting for Youtube's API support

Sources

inspired by peeror and youtube-upload