Per a evitar problemes, eliminar el símbol '

(Ubuntu)

for file in *\'*; do mv "$file" "${file//\'/}"; done

Extreure subtítols

ffmpeg -i Movie.mkv -map 0:s:0 subs.srt

Fer-ho amb tot el directori

Escriure cmd i després

for i in *.mkv; do ffmpeg -i "$i" -map 0:s:0 "${i%.*}.srt"; done
for %i in (*.mkv) do ffmpeg -i "%i" -map 0:s:0 "%~ni.srt"

Traduir els subtítols

Subtitles Translator

Integrar subtítols

(Ubuntu)

cd /mnt/f/Masterclass/Artistic/Music/

Integrar la pista de subtítol:

for video in *.mkv; do
    base="${video%.*}"
    ffmpeg -i "${video}" -i "${base}.srt" -c copy -scodec srt -map 0 -map 1 "${base}_sub.mkv"
done

El mateix però amb el nom “Català”:

for video in *.mkv; do
    base="${video%.*}"
    ffmpeg -i "${video}" -i "${base}.srt" -map 0 -map 1 -c copy -scodec srt -metadata:s:s:1 title=Català "${base}_sub.mkv"
done

Eliminar el “sub”

  1. Compta si hi ha el mateix número de nous i antics.
  2. Elimina tots els arxius antics (ordenar per data i eliminar els antics, els que no tenen “sub”).
  3. Executa la comanda:
for file in *_sub.mkv; do mv "$file" "${file//_sub/}"; done


Crear un arxiu .vtt per cada vídeo .mp4

Nota

Si els tipus de subtítols o vídeos són diferents només cal canviar l’extensió.

for video in *.mp4; do
    touch "${video%.mp4}.vtt"
done

Crear una llista dels enllaços .vtt a partir dels arxius de les pàgines descarregades

Important

Cal que els arxius hagin estat descarregats en ordre, perquè segueix l’ordre de creació.

#!/bin/bash
 
# Defineix el directori on es troben els fitxers
directori="/mnt/f/BBC Maestro/Brian Cox - Acting/html/"
 
# Crea o buida l'arxiu de sortida
arxiu_sortida="enllacos_vtt.txt"
> "$arxiu_sortida"
 
# Array per emmagatzemar enllaços únics
declare -a enllacos_unics=()
 
# Obtenir llista d'arxius ordenats per data de creació/modificació
# Nota: Això utilitza la data de modificació; la data de creació pot no estar disponible
arxius=$(ls -lt "$directori" | grep -v '^total' | awk '{print $9}')
 
# Bucle per a cada arxiu en l'ordre de data
for arxiu in $arxius; do
    while IFS= read -r enllac; do
        # Afegeix només enllaços únics a l'array
        if [[ ! " ${enllacos_unics[*]} " =~ " ${enllac} " ]]; then
            enllacos_unics+=("$enllac")
        fi
    done < <(grep -o 'https://[^ ]*\.vtt' "$directori/$arxiu")
done
 
# Escriu els enllaços en l'arxiu de sortida amb el seu número d'ordre
for i in "${!enllacos_unics[@]}"; do
    printf "%02d\n%s\n" "$i" "${enllacos_unics[$i]}" >> "$arxiu_sortida"
done