Problème avec les balises mp3 avec youtube-dl et id3v2

1

En bref: j'ai couru:

sudo apt install youtube-dl ffmpeg id3v2 -y
echo "youtube-dl version:"
youtube-dl --version
echo "id3v2 version:"
id3v2 --version
youtube-dl --extract-audio --audio-format mp3 "https://youtu.be/Sqk3B2041uk" --output test.mp3
id3v2 -t "cooltitle" -a "coolartist" test.mp3

La sortie était normale:

*normal output of apt install*
youtube-dl version:
2019.01.17
id3v2 version:
id3v2 0.1.12
Uses id3lib-3.8.3

This program adds/modifies/removes/views id3v2 tags, 
and can convert from id3v1 tags
[youtube] Sqk3B2041uk: Downloading webpage
[youtube] Sqk3B2041uk: Downloading video info webpage
[download] test.mp3 has already been downloaded
[download] 100% of 2.07MiB
[ffmpeg] Post-process file test.mp3 exists, skipping

En théorie, ce script devrait télécharger un fichier mp3 et définir son titre sur "cooltitle" et son artiste sur "coolartist". Mais quand j'ai ouvert le fichier test.mp3 en utilisant rythmbox, il ne montre pas le titre et l'artiste corrects.

Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas ou comment y remédier?

Kryptomatrix
la source

Réponses:

1

YouTube-dl télécharge en fait la vidéo et l'audio même lorsque vous spécifiez --extract-audioafin que votre syntaxe confuse youtube-dl et FFmpeg en donnant le même nom de fichier pour les deux flux.

Peut-être que la solution la plus simple (et il existe quelques autres moyens pour atteindre votre objectif) est de changer votre syntaxe youtube-dl comme suit:

youtube-dl --extract-audio --audio-format mp3 \
          "https://youtu.be/Sqk3B2041uk" --output "test.%(ext)s"

Et certainement sur mon propre système, cela a créé avec succès un fichier que id3v2 peut ensuite traiter:

andrew@ilium~/tmp$ youtube-dl --extract-audio --audio-format mp3 \
>           "https://youtu.be/Sqk3B2041uk" --output "test.%(ext)s"
[youtube] Sqk3B2041uk: Downloading webpage
[youtube] Sqk3B2041uk: Downloading video info webpage
[download] Destination: test.webm
[download] 100% of 2.07MiB in 00:02
[ffmpeg] Destination: test.mp3
Deleting original file test.webm (pass -k to keep)
andrew@ilium~/tmp$ 

Notez que par défaut, youtube-dl télécharge la meilleure qualité audio et vidéo disponible. Par conséquent, pour ce clip particulier, il existe un fichier audio Opus et une vidéo VP9 dans un conteneur WebM. FFmpeg supprime ensuite la vidéo et convertit l'audio selon l'ordre, regardez l' --keep-videooption pour voir la magie au travail :)

andrew.46
la source
Je vous remercie. Cela fonctionne, mais je pense que je vais envoyer une demande de fonctionnalité à youtube-dl, car cela n’est pas très intuitif.
Kryptomatrix
@Kryptomatrix Ce serait bien de voir cela plus clair :). Les développeurs sont raisonnablement réactifs
andrew.46