Upload videos to Youtube from the command line https://github.com/tokland/youtube-upload

Arnau Sanchez 4a235da435 rename keywords to tags 10 years ago
bin e70474dc55 general refactor using APIv3 and Oauth2 10 years ago
examples 2d43706950 fix title template 10 years ago
youtube_upload 4a235da435 rename keywords to tags 10 years ago
CHANGELOG b09ad842ff update changelog 10 years ago
README.md 4a235da435 rename keywords to tags 10 years ago
client_secrets.json e70474dc55 general refactor using APIv3 and Oauth2 10 years ago
setup.py e70474dc55 general refactor using APIv3 and Oauth2 10 years ago

README.md

Introduction

Youtube-upload is a command-line script that uploads videos to Youtube.

Youtube-upload should work on any platform (GNU/Linux, BSD, OS X, Windows, ...) that runs Python.

Dependencies

Download & Install

$ wget https://github.com/tokland/youtube-upload/archive/master.zip
$ unzip master.zip
$ cd youtube-upload-master
$ sudo python setup.py install
  • If you don't want (or you can't) install software on the computer, run it directly from sources:

    $ cd youtube-upload-master
    $ PYTHONPATH=. python youtube_upload/youtube_upload.py ...
    

Usage examples

  • Upload a video:

    $ youtube-upload --title="A.S. Mutter" --description="A.S. Mutter plays Beethoven" \
                 --category=Music --tags="mutter, beethoven" anne_sophie_mutter.flv
    pxzZ-fYjeYs
    
  • Upload a video with your own client_secrets.json:

    $ youtube-upload --title="A.S. Mutter" --description="A.S. Mutter plays Beethoven" \
                 --category=Music --tags="mutter, beethoven" 
                 --client-secrets=my_client_secrets.json anne_sophie_mutter.flv
    pxzZ-fYjeYs
    
  • Split a video with ffmpeg

Youtube currently limits videos to <2Gb and <15' for almost all users. You can use the Bash example script to split it before uploading:

$ bash examples/split_video_for_youtube.sh video.avi
video.part1.avi
video.part2.avi
video.part3.avi
  • Use a HTTP proxy

Set environment variables http_proxy and https_proxy:

$ export http_proxy=http://user:password@host:port
$ export https_proxy=http://user:password@host:port
$ youtube-upload ....

Caveats

  • The package includes a default file but if you plan to use a heavy usage of the script, please create and use your own authentication file.

  • If a video does not comply with Youtube size limitations you must split it before using ffmpeg/avconv or any other tool.

More