~moody/nmyo

Add dbus notifications
When piping to mpv, clean up the meta info

refs

master
browse  log 

clone

read-only
https://git.posixcafe.org/~moody/nmyo
read/write
git@git.posixcafe.org:~moody/nmyo

You can also use your local clone with git send-email.

Nmyo is a daemon for archiving live streams from youtube channels as they happen.
Nmyo works through a series tasks and makes use of ytdl for downloading the videos.

Generally how nmyo works is that provided with a series of youtube urls,
it will call youtube-dl and parse the error. In the event that the live stream
has not started, it will spawn a new task and sleep until the start of the stream.
If a stream is delayed then the code will handle this, and sleep until the new scheduled time.
Once the stream has started it will start downloading the stream, the thumbnail and the description.

There are two ways to provide nmyo with stream links, through a schedule file or through a supplying
it with a channel ID(which can be found by looking at the channel page for a user). Both of these methods
can be used together.

The schedule file(passed through the -s flag)  has the following format, defining one stream per line.
<URL><tab><time><tab><filename>

Where:
	<tab> is a hard tab character('\t')
	<URL> is the link to the reservation page
	<time> is a RFC-3339 encoded time stamp.
	<filename> is the output filename.

The filename is optional and when not provided nmyo will use the video id as the filename.
The time specification may also be the string literal "now", which will use the current time,
this can be useful as nmyo will just grab the start date from the page and sleep until then.
The schedule file is read asyncrounsly, and the file "-" means to use stdin, this allows the
use of a fifo or similar methods for allowing additional streams to be added during runtime.

The feeds are simply pased as a comma seperated list through the -f flag, for each ID nmyo will
spawn a task to check the RSS feed of the channel once every hour and create new download tasks
for new stream reservations. On startup nmyo will only check the latest 2 entires on the RSS
feed to see if they are stream reservations(this can be tweaked with the -b flag). After startup
nmyo will check each new addition to see if it is a stream reservation.

The -w flag will cause the stream to be piped through mpv(1) in a fashion similar to tee(1) while
downloading. The -d flag will cause debug output to be put on stderr.