Cron now calls `ytstream run` hourly and ytstream's update-ytdlp.sh weekly. Both inherit youtube-automate's healthchecks UUIDs and keep its schedules unchanged: a check may be configured with a cron expression rather than a simple period, so moving to the :23/04:50 slots the fragment proposed could have alerted on a job that ran fine. Inheriting also means the placeholder UUIDs never needed filling in. The old service turned out to track only 2 channels, and one of them -- The Pyramid Podcast -- was sitting unresolved in ytstream's approval queue. Decommissioning without checking would have silently dropped half of what the old service existed to follow. Approved and backfilled. decommission.sh does the two steps needing root (nginx repoint, disable the unit) and refuses until an admin password is set, because the UI fails closed and the hostname would otherwise serve a login nobody can pass. Deleting the 2.0 GB of old downloads and touching the Jellyfin libraries are left out on purpose. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
28 lines
1.6 KiB
Plaintext
28 lines
1.6 KiB
Plaintext
# ytstream — these are INSTALLED in susan's crontab as of 2026-08-13.
|
|
# Kept here as the record of what should be there (`crontab -l` to confirm).
|
|
#
|
|
# HC_API_URL is already set at the top of susan's crontab; these follow the
|
|
# existing one-UUID-per-job convention. `sg mediaserver` guarantees new files are
|
|
# group-owned by mediaserver even if the invoking shell's primary group differs.
|
|
#
|
|
# The two UUIDs are INHERITED from youtube-automate's entries rather than freshly
|
|
# created, and the schedules are unchanged for the same reason: a healthchecks
|
|
# check may be configured with a cron expression rather than a simple period, so
|
|
# moving :17 to :23 could have alerted on a job that ran perfectly. Inheriting
|
|
# also keeps the ping history continuous across the handover. The checks are still
|
|
# *named* after youtube-automate in the hc.jihakuz.xyz UI — rename them there, it
|
|
# has no effect on anything here.
|
|
|
|
# Sync subscriptions, poll, materialise, reap. Hourly at :17.
|
|
# Measured 2026-08-13: a full run over 11 channels takes ~8s.
|
|
17 * * * * runitor -uuid 41a4d61a-7743-43d9-9b5d-d37d536e4726 -- sg mediaserver "/usr/local/bin/ytstream run"
|
|
|
|
# Keep yt-dlp current — this is the thing that keeps playback working as YouTube
|
|
# changes. Mondays 04:40.
|
|
#
|
|
# The script tries to restart ytstream-proxy and cannot, because cron runs it as
|
|
# susan. That is harmless: the proxy shells out to `yt-dlp` per request, so a pip
|
|
# upgrade takes effect on the next fetch with no restart. Leaving the attempt in
|
|
# means the message shows up in the healthchecks output if it ever does matter.
|
|
40 4 * * 1 runitor -uuid 721e4cf0-d796-48e7-a184-79d21e1ba373 -- /opt/ytstream/deploy/update-ytdlp.sh
|