hoshinova
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.
Install
Make sure you have ytarchive installed
and executable in your PATH.
go install github.com/hizkifw/[email protected]
Configure
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
channels:
- name: Moona ch.
id: UCP0BspO_AMEe3aQqqpo89Dg
filters:
- '(?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
uploaders:
- type: local
config:
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
notifiers:
- type: discord
config:
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.
Run
If running from source,
go run .