diff --git a/infra/youtube-backup/.env.example b/infra/youtube-backup/.env.example index 72e4984..01ddf17 100644 --- a/infra/youtube-backup/.env.example +++ b/infra/youtube-backup/.env.example @@ -14,8 +14,8 @@ YOUTUBE_BACKUP_COOKIES_FROM_BROWSER= YOUTUBE_BACKUP_FORMAT=bv*+ba/best YOUTUBE_BACKUP_MERGE_FORMAT=mp4 -YOUTUBE_BACKUP_SUB_LANGS=all,-live_chat YOUTUBE_BACKUP_JS_RUNTIMES=node +YOUTUBE_BACKUP_WRITE_THUMBNAIL=false YOUTUBE_BACKUP_SLEEP_REQUESTS=1 YOUTUBE_BACKUP_RATE_LIMIT= YOUTUBE_BACKUP_EXTRA_ARGS= diff --git a/infra/youtube-backup/README.md b/infra/youtube-backup/README.md index 7ae160a..141fc55 100644 --- a/infra/youtube-backup/README.md +++ b/infra/youtube-backup/README.md @@ -62,6 +62,11 @@ Downloaded videos and sidecar metadata are written under: /data/youtube-backup/videos ``` +The default backup writes the video, `.info.json`, description, and embeds one +thumbnail into the media file. It does not write separate subtitle files. Set +`YOUTUBE_BACKUP_WRITE_THUMBNAIL=true` if you also want one sidecar `.jpg` +thumbnail. + Each run also writes a timestamped log under: ```text diff --git a/infra/youtube-backup/backup-youtube.sh b/infra/youtube-backup/backup-youtube.sh index 95d59ac..67e099e 100755 --- a/infra/youtube-backup/backup-youtube.sh +++ b/infra/youtube-backup/backup-youtube.sh @@ -20,9 +20,9 @@ COOKIES_FILE="${YOUTUBE_BACKUP_COOKIES_FILE:-}" COOKIES_FROM_BROWSER="${YOUTUBE_BACKUP_COOKIES_FROM_BROWSER:-}" FORMAT="${YOUTUBE_BACKUP_FORMAT:-bv*+ba/best}" OUTPUT_TEMPLATE="${YOUTUBE_BACKUP_OUTPUT_TEMPLATE:-%(playlist_title)s/%(upload_date>%Y-%m-%d,release_date>%Y-%m-%d,epoch>%Y-%m-%d)s - %(title)s [%(id)s].%(ext)s}" -SUB_LANGS="${YOUTUBE_BACKUP_SUB_LANGS:-all,-live_chat}" MERGE_FORMAT="${YOUTUBE_BACKUP_MERGE_FORMAT:-mp4}" JS_RUNTIMES="${YOUTUBE_BACKUP_JS_RUNTIMES:-node}" +WRITE_THUMBNAIL="${YOUTUBE_BACKUP_WRITE_THUMBNAIL:-false}" RATE_LIMIT="${YOUTUBE_BACKUP_RATE_LIMIT:-}" SLEEP_REQUESTS="${YOUTUBE_BACKUP_SLEEP_REQUESTS:-1}" EXTRA_ARGS="${YOUTUBE_BACKUP_EXTRA_ARGS:-}" @@ -68,16 +68,16 @@ args=( --restrict-filenames --write-info-json --write-description - --write-thumbnail - --write-subs - --write-auto-subs - --sub-langs "${SUB_LANGS}" --embed-metadata --embed-thumbnail --js-runtimes "${JS_RUNTIMES}" --sleep-requests "${SLEEP_REQUESTS}" ) +if [[ "${WRITE_THUMBNAIL}" == "true" ]]; then + args+=(--write-thumbnail --convert-thumbnails jpg) +fi + if [[ -n "${COOKIES_FILE}" ]]; then args+=(--cookies "${COOKIES_FILE}") fi