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

Arnau Sanchez 71bfa7dcbd add notes for developers 10 years ago
bin e70474dc55 general refactor using APIv3 and Oauth2 10 years ago
examples 2d43706950 fix title template 10 years ago
youtube_upload f944374036 add ResumableUploadError to retriable exceptions 10 years ago
README.md 71bfa7dcbd add notes for developers 10 years ago
client_secrets.json e70474dc55 general refactor using APIv3 and Oauth2 10 years ago
setup.py d0d6974f4c fix version 10 years ago

README.md

Introduction

Youtube-upload is a command-line script that uploads videos to Youtube (it should work on any platform -GNU/Linux, BSD, OS X, Windows, ...- that runs Python).

Dependencies

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 ...
    

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 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 client_secrets.json file. If you plan to make a heavy use of the script, please create and use your own OAuth 2.0 file.

  • If a video does not comply with Youtube size limitations you must split it (using ffmpeg/avconv, for example).

Notes for developers

More