- File integrity is the #1 priority. Files in the output directory must always be complete and intact. Never move or copy files that are still being written to.
- Go server in
server/that wrapsytdlp-nfo(a yt-dlp wrapper) for downloading media - Each download job runs in an isolated subdirectory (
downloadDir/{jobID}/) to prevent cross-contamination between concurrent downloads - Completed files are moved to
outputDirvia a staging directory for atomicity - Shared download archive (
.ytdlp-archive.txt) lives in the rootdownloadDir
cd server && go buildserver/download.go— Download manager, job lifecycle, file movementserver/handlers.go— HTTP API handlersserver/persist.go— Job state persistenceserver/main.go— Entry point and configuration