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

Arnau Sanchez 47c548764f upload with retry 10 years ago
bin e70474dc55 general refactor using APIv3 and Oauth2 10 years ago
examples 2d43706950 fix title template 10 years ago
youtube_upload 47c548764f upload with retry 10 years ago
README.md 47c548764f upload with retry 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, but 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/avconvm, for example).

More

  • License: GNU/GPLv3.

  • Bugs: Open a issue.

  • Feature requests: The project as it is fulfills my needs. I'll gladly fix any bug, but if you'd like to see some functionality added, you'll have to send a pull request.

  • Donate.