fix(peertube-import): Improve subtitle file detection pattern

- Changed glob pattern from ${slug}*.vtt to *.vtt to catch all subtitle files
- Fixed language extraction regex to work with any filename format
- Redirected yt-dlp subtitle output to stderr

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2026-02-21 20:24:07 +01:00
parent bbf2b19415
commit 50ddd2c1fe

View File

@ -192,18 +192,18 @@ download_subtitles() {
log_info "Requested languages: $languages"
# Download subtitles with yt-dlp
# Download subtitles with yt-dlp (both manual and auto-generated)
yt-dlp --write-sub --write-auto-sub \
--sub-lang "$languages" \
--sub-format vtt \
--convert-subs vtt \
--skip-download \
-o "$output_dir/${slug}" \
"$url" 2>&1 || true
"$url" >&2 2>&1 || true
# List downloaded subtitle files
# List downloaded subtitle files (catch all .vtt files in case filename differs)
local count=0
for vtt in "$output_dir"/${slug}*.vtt; do
for vtt in "$output_dir"/*.vtt; do
[ -f "$vtt" ] || continue
count=$((count + 1))
log_ok "Downloaded: $(basename "$vtt")"
@ -300,15 +300,16 @@ upload_subtitles_to_peertube() {
local uploaded=0
for vtt in "$output_dir"/${slug}*.vtt; do
for vtt in "$output_dir"/*.vtt; do
[ -f "$vtt" ] || continue
# Extract language code from filename
# Format: slug.fr.vtt or slug.en-US.vtt
# Format: name.fr.vtt or name.en-US.vtt or name.en.vtt
local filename
filename=$(basename "$vtt")
local lang
lang=$(echo "$filename" | sed -E "s/${slug}\.([a-zA-Z-]+)\.vtt/\1/")
# Extract language code before .vtt extension
lang=$(echo "$filename" | sed -E 's/.*\.([a-zA-Z]{2}(-[a-zA-Z]+)?)\.vtt$/\1/')
# Normalize language code (en-US -> en)
lang=$(echo "$lang" | cut -d'-' -f1)