Reddit links now download and post like the other platforms.
Two changes were needed, not just the URL pattern:
- Regex: yt-dlp's Reddit extractor only matches /comments/ permalinks, so
the app's /r/<sub>/s/<code> share links and redd.it / v.redd.it
shortlinks are listed explicitly — they redirect to the canonical URL,
which yt-dlp follows. Without them the link is silently dropped.
- Format selector: Reddit publishes video and audio as separate DASH/HLS
streams with no muxed rendition, so every `best...` term failed and
yt-dlp aborted with "Requested format is not available". Added a
bv*+ba merge tail (and a bare bv* for silent videos) to the normal and
/force selectors. Muxed hosts still resolve at the earlier terms, so
YouTube/IG/TikTok/X selection is unchanged.
Posts with no video report "No media found", already in the silent list,
so ordinary Reddit links shared in chat draw no reply.
Two YouTube regressions stacked up:
- yt-dlp 2026.3.17 hit "HTTP Error 403: Forbidden" on the actual media
download. Bumping to 2026.6.9 fixes the data-download 403, but its EJS
n-sig challenge solver now requires Node >= 22, and Debian 13 only ships
Node 20 ("node-20.x (unsupported)" -> only image formats resolve). bot.py
now points --js-runtimes at a standalone /opt/node22 via the new
JS_RUNTIME constant.
- With a cookies.txt present, yt-dlp skips the cookieless android_vr/android
clients (whose URLs work) and falls back to the `tv` client, whose media
URLs 403. New _cookie_args(url) withholds cookies for YouTube hosts only,
while still sending them to Instagram/TikTok/X.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Group-chat bot that downloads videos from X/Instagram/YouTube/TikTok links
via yt-dlp and posts them back, plus /speed and /rev video toys.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>