jblast94/aebn-vod-downloader-v2
aebn-vod-downloader v2 Python VOD downloader with a local web UI. v2 keeps the proven native segment engine and rebuilds the service layer around it: pluggable subtitle backends, an optional yt-dlp engine, hardened job lifecycle, and defaults sized for a 32-core / 64 GB node on a high-speed private tailnet. What changed from web-ui (v0.10.1) RunPod is no longer the default or a hard dependency. Subtitle generation is now a pluggable, selectable service: openai… See the full description on the dataset page: https://huggingface.co/datasets/jblast94/aebn-vod-downloader-v2.
port unchanged engine modules from web-ui
Delete folder aebn_dl/aebn_dl with huggingface_hub
fix upload_folder staging path; remove stray nested aebn_dl
add uv.lock
fix stray token in subtitles.py
port unchanged engine modules from web-ui
dark UI styles
UI client: polling, incremental logs, range player
base template
simplified single-page UI
cli: enterprise thread default from env
web v2: executor pools, stale-job cleanup, Range streaming player, subtitle tasks, ytdlp engine
CI: bootstrap job - port unchanged modules, lock deps, end-to-end smoke test
subtitles v2: pluggable backends (openai/gemini/runpod/local/none), RunPod no longer default
package exports
Dockerfile: tolerate missing README, no frozen sync (lock optional)
README: quickstart, subtitle backends, enterprise tuning, tailnet/egress
v2 project config: add httpx + yt-dlp deps
env template: enterprise-node defaults, no hardcoded RunPod endpoint
new: centralized settings with enterprise-node defaults
Dockerfile: ffmpeg + yt-dlp baked in, healthcheck
compose: healthcheck, restart policy, tailnet-friendly port binding
initial commit
