Skip to content

Download the most recent videos for a YouTube user or channel, in parallel.

License

Notifications You must be signed in to change notification settings

clarkema/bingewatch-raku

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bingewatch

bingewatch is a utility to automatically download the most recent videos from any YouTube channel for offline viewing.

It will download the YouTube RSS feed for the requested channel and then fetch any videos that it doesn't already see under its working directory.

Installation

Before getting started, ensure that you have Perl 6 (and its package manager, zef) available on your system, along with youtube-dl and ffmpeg. Once everything's in place:

$ zef --force-test install Terminal::Print
$ zef install https://github.com/clarkema/bingewatch.git

(Note that Terminal::Print has issues with its test harness that mean that zef doesn't see the tests as passing even though they do—hence it needing to be installed with --force-test. If you still see an error about @valid-terminals, see the Caveats section below for a workaround.)

Usage

For one-off usage, just run bingewatch and pass the name of the channel you're interested in:

$ bingewatch clojuretv

If you want to run bingewatch regularly to watch a list of channels, make a configuration file at $HOME/.config/bingewatch/channels.txt with one channel name per line:

$ cat $HOME/.config/bingewatch/channels.txt
clojuretv
PapersWeLove
theRSAorg

Then run bingewatch with no arguments to automatically synchronise everything.

$ bingewatch

Caveats

This is currently a very early version; there are many features that could be added (and requests and patches are welcome) but right now it's very bare-bones. Even so, I already find it useful for fetching talks and videos I want to watch when travelling without a high-bandwidth connection.

One particular limitation is that bingewatch only works with YouTube users at the moment, not channels.

Terminal::Print

bingewatch uses Terminal::Print to display download progress in a way that copes with running multiple downloads in parallel. However, Terminal::Print only works with specific whitelisted terminals. If you see a message along the lines of Please update @valid-terminals with your desired TERM... try running both the zef install command and bingewatch itself inside tmux, which is one of the supported options.

About

Download the most recent videos for a YouTube user or channel, in parallel.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Other 100.0%