Monitor YouTube channels and automatically run
ytarchive when the channel goes live.


⚠️ Untested Software: This program is still under heavy development and will
contain a lot of breaking changes.


Make sure you have ytarchive installed
and executable in your PATH.

go install github.com/hizkifw/[email protected]


Copy the config.example.yaml to config.yaml and edit the file as needed.

poll_interval: 60

The poll_interval is how long (in seconds) to wait before checking the
channel’s RSS feed for new videos. There is no known rate limit for the RSS
endpoint so feel free to adjust this parameter.

Channel configuration

  - name: Moona ch.
    id: UCP0BspO_AMEe3aQqqpo89Dg
      - '(?i)MoonUtau'
      - '(?i)Karaoke'
      - '(?i)Unarchived'

The channels array contains a list of YouTube channels to monitor. The
filters in each channel is a list of regular expressions string. If the
title of a stream matches the regex, it will get downloaded. For more
information on Go’s regex syntax, run go doc regexp/syntax.

In the example above, the (?i) marks the expression as case-insensitive.

Uploader configuration

  - type: local
      path: /tmp/hoshinova
      base_url: http://localhost:3000

After a live stream is finished downloading, it will get “uploaded” to all of
the uploaders in the list. Right now, there is only the local uploader, which
simply moves the resulting video to the destination directory. The base_url
parameter will be useful if path leads to a webserver root.

In the future, this can be expanded to include other services such as Google
Drive, S3, etc.

Notifier configuration

  - type: discord
      webhook_url: 'https://discord.com/api/webhooks/...'

Notifiers can be registered to send a message when the video has been uploaded.
Right now, only Discord is supported, but more will be added in the future.


If running from source,

go run .


View Github