Comment puis-je télécharger des sous-titres d'une liste de vidéos en utilisant youtube-dl? J'ai besoin d'une option pour cela. Cependant, je n'ai pas trouvé d'option pour télécharger uniquement les sous-titres
Réponses
Trop de publicités?Il y a une option, clairement mentionnée dans la documentation :
Options de sous-titres :
--write-sub Écrire le fichier de sous-titres
--write-auto-sub Écrire le fichier de sous-titres automatique (uniquement YouTube)
--all-subs Télécharger tous les sous-titres disponibles de la vidéo
--list-subs Lister tous les sous-titres disponibles pour la vidéo
--sub-format FORMAT Format de sous-titres, accepte les préférences de formats, par exemple : "srt" ou "ass/srt/best"
--sub-lang LANGS Langues des sous-titres à télécharger (optionnel) séparées par des virgules, utilisez des balises linguistiques IETF comme 'en,pt'
Par exemple, pour lister tous les sous-titres d'une vidéo :
youtube-dl --list-subs https://www.youtube.com/watch?v=Ye8mB6VsUHw
Pour télécharger tous les sous-titres, mais pas la vidéo :
youtube-dl --all-subs --skip-download https://www.youtube.com/watch?v=Ye8mB6VsUHw
Il suffit d'exécuter la commande suivante
youtube-dl --write-auto-sub --convert-subs=srt --skip-download URL
Par exemple, si vous téléchargez https://www.youtube.com/watch?v=example.avec le titre "example" --convert=srt
va produire un fichier nommé example.en.srt
où en
représente l'anglais et es
l'espagnol, etc.
Le fichier aura un contenu comme celui-ci:
00:00:04.259 --> 00:00:05.259
>> I’m Elon Musk.
00:00:05.259 --> 00:00:06.669
>> What is your claim to fame?
00:00:06.669 --> 00:00:07.669
>> I’m the founder of
00:00:07.669 --> 00:00:08.669
Tesla.com.
OPTIONNEL - Si vous avez besoin que le texte soit nettoyé, vous pouvez utiliser python pour le nettoyer un peu:
import re
bad_words = ['-->','']
with open('example.en.vtt') as oldfile, open('newfile.txt', 'w') as newfile:
for line in oldfile:
if not any(bad_word in line for bad_word in bad_words):
newfile.write(line)
with open('newfile.txt') as result:
uniqlines = set(result.readlines())
with open('sub_out.txt', 'w') as rmdup:
mylst = map(lambda each: each.strip(">>"), uniqlines)
print(mylst)
rmdup.writelines(set(mylst))
Sortie newfile.txt:
I’m Elon Musk.
What is your claim to fame?
I’m the founder of
Tesla.com.
Une autre façon simple de télécharger des sous-titres à partir de YouTube est de télécharger Google2SRT. Google2SRT est un programme gratuit et open source pour Windows, Mac et Linux qui est capable de télécharger, sauvegarder et convertir plusieurs sous-titres de vidéos YouTube.
Utilisation
Cliquez sur les liens pour voir des captures d'écran des étapes 1 et 2.
-
Collez l'URL dans la zone de texte des sous-titres Google et cliquez sur Lire.
-
Choisissez la langue en sélectionnant la case appropriée et appuyez sur Go.
-
Visualisez le dossier de destination qui a été saisi dans la zone de texte des sous-titres SRT pour localiser les fichiers SRT.