Skip to content

Create an Atom feed of a Youtube Channel, with HD video downloadable enclosures

Notifications You must be signed in to change notification settings

jamur2/Youtuber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Youtuber

Youtuber allows you to create an Atom feed out of a Youtube channel, complete with HD video enclosures allowing you to subscribe to the channel with the podcast client of your choice, and view the downloaded videos with the player of your choice.

Requirements

You'll need:

  • Python
  • youtube-dl (http://rg3.github.com/youtube-dl/, or in Ubuntu: sudo apt-get install youtube-dl)
  • A webserver, like Apache (only if you don't want to host videos locally)
  • Linux or Mac (if somebody can make this work on Windows, be my guest)

Installation

After downloading the source, build out the project (from the checkout directory). Bootstrapping may need to be run with "sudo", depending on how you've installed Python. If you're uncomfortable with that, you can build your own Python from source so you don't pollute your system Python (which is what I do), or you can use virtualenv:

$ python bootstrap.py
$ bin/buildout

Usage

You can now fetch a Youtube channel, and all recent videos will be downloaded to the directory of your choice. An Atom feed will also be dropped in the directory, which will link directly to the downloaded files.

Here's an overview of what options you have:

Usage: youtuber [options]

Options:
-h, --help            show this help message and exit
-u YOUTUBE_USER, --user=YOUTUBE_USER
                        Youtube user name to download
-d DEST_DIR, --dest=DEST_DIR
                        Directory to put videos and RSS feed
-p PREFIX_URL, --prefix=PREFIX_URL
                        Prefix URL
-b DAYS_BACK, --days-back=DAYS_BACK
                        Days back to download videos

And here's an example of downloading the past week's videos from http://www.youtube.com/user/testedcom/featured:

$ bin/youtuber --user=testedcom --prefix=http://www.example.com/
    --dest=/tmp/youtube --days-back=7

This will download all the videos uploaded by testedcom in the past week into /tmp/youtube (unless they've already been downloaded). It will also drop an atom.xml in /tmp/youtube with links to all the downloaded videos (prefixed with http://www.example.com/). If you're running this on a web server, you'll want this to be the web-reachable directory where the videos will be served from. If you're running this locally, you'll probably want a file://... prefix.

I personally run this as a cron job on a web server to fetch new videos every couple hours, and subscribe to the feed with my podcast client. I also advise running tmpwatch on the directory occasionally to delete old videos, especially if storage becomes an issue.

About

Create an Atom feed of a Youtube Channel, with HD video downloadable enclosures

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages