feedtube icon indicating copy to clipboard operation
feedtube copied to clipboard

A feed video downloader for Youtube

feedtube

A feed video downloader for Youtube

Feedtube is for you if:

  • You are a fan of RSS
  • You don't like using the Youtube website for some reason (broken js, privacy, or other) but want to keep a list of channel subscriptions
  • You need to download videos and watch them offline
  • You want to watch videos without ads. Note that, as such, video creators and Youtube don't get paid

Dependencies

xmlstarlet and youtube-dl (plus ffmpeg)

Setup

  1. Just download feedtube.sh or clone the repo: git clone https://github.com/cfenollosa/feedtube
  2. Download your Youtube subscriptions. Follow the official instructions: https://support.google.com/youtube/answer/6224202?hl=en
  3. Place the downloaded file on the same folder as feedtube
  4. Run ./feedtube.sh

That's it! Feedtube will convert the youtube xml file to its own format (.list.csv) and keep track of videos.

Running Feedtube

Running feedtube.sh will download new videos for your subscriptions. There's nothing more to it :)

You may run it with cron, or manually. The only caveat is that it doesn't support multiple instances running at the same time. Be careful not to overlap cron executions; give it plenty of time in case it needs to download huge files.

Downloaded filenames have the format: [Channel name] - Video name. File timestamp is set by youtube-dl as the video upload date.

Commandline flags

  • -q Quiet mode. No output is generated, except errors
  • <Youtube URL> Single video run. Downloads the selected video and exits. No feeds are parsed.

Configuration

Edit feedtube.sh to access advanced settings:

  • ASCII_ONLY="yes": Output video filename will only contain ascii characters. Use for compatibility with some systems/players like Miro. Non-ascii characters will be ignored. This can be a problem in some languages or locales. Set it to "" (empty) to enable UTF-8 characters in file names.

You can also edit the script to change parameters for youtube-dl, like the maximum quality (set to 1080p by default) or video format. Read youtube-dl documentation for more information.

Adding new subscriptions

Edit .list.csv with a text editor and add a new line, with the format:

Channel title <TAB> channel RSS address

IMPORTANT NOTE: Next time you run feedtube.sh, it will download all videos for that channel. If you don't want that (I don't), just Ctrl-C as the download starts. The script will try to get rid of temporal files.

Watching videos

Downloaded videos can be watched using any standard video player.

I use Miro to watch videos. I have set it up to monitor the downloads folder for new videos, and lets me organize it by date, size, and others. Furthermore, the video player keeps track of the time you stop watching and lets you resume, like Youtube.

You can also simulate Youtube's sorting options using your OS file explorer:

  • Sort by channel: Sort by filename
  • Sort by upload date: Sort by file date

Changelog

  • 1.2, 2018-09-22. Give the user the option to Skip video or Retry later when Ctrl-c on youtube-dl
  • 1.1, 2018-08-27. Added option to ignore non-ASCII characters in titles. Better management of external tools.
  • 1.0, 2018-04-29. First working release