yt2doc - Pour transcrire vos vidéos en documents Markdown

par Korben -

Vous en avez assez de passer des heures à retranscrire à la main vos vidéos YouTube ? Ou peut-être cherchez-vous un moyen efficace de transformer vos podcasts en articles de blog ? Et bien j’ai une bonne nouvelle pour vous : yt2doc est là pour alléger votre workflow !

C’est un outil capable de transformer automatiquement n’importe quelle vidéo YouTube ou podcast en un document Markdown parfaitement structuré, avec des paragraphes, des chapitres et même des titres générés par l’IA.

Développé par le talentueux Shun Liang, cet outil open-source est un véritable assistant virtuel pour tous les créateurs de contenu, journalistes, étudiants ou simples curieux qui souhaitent exploiter au maximum les ressources audio et vidéo disponibles en ligne. De plus, yt2doc est conçu pour fonctionner entièrement en local, sans faire appel à des API externes, ce qui garantit la confidentialité de vos données.

yt2doc s’appuie sur la puissance de Whisper, le modèle de reconnaissance vocale développé par OpenAI. Grâce à lui, l’outil est capable de transcrire avec une précision remarquable le contenu audio de vos vidéos ou podcasts. Mais là où yt2doc se démarque vraiment, c’est dans le post-traitement de cette transcription brute.

En effet, la plupart des outils de transcription existants sont principalement orientés vers la génération de sous-titres et fournissent souvent un bloc de texte continu sans sauts de ligne ni segmentation, rendant la lecture difficile. Whisper, par exemple, ne génère pas de sauts de ligne dans ses transcriptions. Sans post-traitement, vous vous retrouvez avec un énorme bloc de texte indigeste.

yt2doc, quant à lui, priorise la lisibilité. Il va plus loin en structurant intelligemment le contenu pour créer un document facile à lire. Pour ce faire, il utilise Segment Any Text (SaT), une bibliothèque spécialisée dans la segmentation de texte. Grâce à elle, votre transcription est automatiquement découpée en phrases et en paragraphes logiques, ce qui rend la lecture beaucoup plus agréable et naturelle. De plus, vous avez la possibilité de personnaliser le modèle SaT utilisé en fonction de vos préférences.

Et si votre vidéo n’est pas déjà chapitrée (ce qui est souvent le cas pour les podcasts, par exemple), yt2doc peut faire appel à un modèle de langage (LLM) pour générer automatiquement des titres de chapitres pertinents. C’est comme avoir un assistant rédacteur intégré ! Parmi les modèles légers qui fonctionnent bien, on peut citer gemma2:9b, llama3.1:8b et qwen 2.5:7b.

Vous l’aurez compris, yt2doc n’est pas un simple outil de transcription, mais une véritable solution tout-en-un pour transformer vos contenus audio et vidéo en documents structurés et exploitables.

Avant de l’installer, assurez-vous d’avoir ffmpeg installé sur votre système. C’est un prérequis indispensable pour que yt2doc puisse fonctionner correctement. ffmpeg est utilisé pour traiter les flux audio et vidéo. Si ce n’est pas déjà fait, voici les commandes pour l’installer :

Sur macOS :

brew install ffmpeg

Sur Debian/Ubuntu :

sudo apt install ffmpeg

Ensuite, vous pouvez installer yt2doc. La méthode recommandée est d’utiliser pipx, un outil pratique pour installer des applications Python dans des environnements isolés :

pipx install yt2doc

Si vous préférez utiliser uv, un gestionnaire de paquets Python ultra-rapide, c’est aussi possible :

uv tool install yt2doc

Pour obtenir de l’aide sur l’utilisation de l’outil, vous pouvez utiliser la commande :

yt2doc --help

Maintenant que yt2doc est installé, voyons comment l’utiliser. La commande de base pour transcrire une vidéo YouTube est la suivante :

yt2doc --video <url-de-la-video>

Par exemple, si vous voulez transcrire une conférence TED, vous pourriez utiliser :

yt2doc --video https://www.youtube.com/watch?v=38lqpFpzQ3c

Par défaut, yt2doc affichera la transcription directement dans votre terminal. Mais vous pouvez bien sûr sauvegarder le résultat dans un fichier Markdown pour une consultation ultérieure :

yt2doc --video <url-de-la-video> -o ma_transcription.md

Et si vous voulez transcrire toute une playlist YouTube ? Pas de problème :

yt2doc --playlist <url-de-la-playlist> -o dossier_de_sortie

Comme je le disais dans mon intro, l’une des fonctionnalités les plus intéressantes de yt2doc est sa capacité à segmenter et chapitrer automatiquement les vidéos qui ne le sont pas déjà. Pour cela, vous aurez besoin d’Ollama, un outil qui permet d’exécuter des modèles de langage en local. Une fois Ollama installé et configuré, vous pouvez utiliser la commande suivante :

yt2doc --video <url-de-la-video> --segment-unchaptered --llm-model <nom-du-modele>

Par exemple, avec le modèle gemma2:9b :

yt2doc --video https://www.youtube.com/watch?v=38lqpFpzQ3c --segment-unchaptered --llm-model gemma2:9b

Cette commande va non seulement transcrire la vidéo, mais aussi la découper en chapitres logiques avec des titres générés par l’IA. C’est particulièrement utile pour les longues vidéos ou les podcasts qui n’ont pas de chapitres prédéfinis.

yt2doc ne se limite pas à YouTube. Vous pouvez aussi l’utiliser pour transcrire des épisodes de podcasts sur Apple Podcast :

yt2doc --audio <url-episode-apple-podcast> --segment-unchaptered --llm-model <nom-du-modele>

Un autre aspect intéressant de yt2doc est sa flexibilité en termes de configuration. Par défaut, il utilise faster-whisper comme backend de transcription, mais vous pouvez ajuster divers paramètres pour optimiser les performances selon votre matériel :

bashyt2doc --video <url-de-la-video> --whisper-model <nom-du-modele> --whisper-device <cpu|cuda|auto> --whisper-compute-type <type-de-calcul>

Les options pour --whisper-model, --whisper-device et --whisper-compute-type sont détaillées dans la documentation de faster-whisper.

Si vous utilisez un Mac avec une puce Apple Silicon, vous pouvez tirer parti de whisper.cpp pour des performances encore meilleures, car il exploite le GPU intégré d’Apple. Le support de whisper.cpp a été implémenté dans yt2doc :

yt2doc --video <url-de-la-video> --whisper-backend whisper_cpp --whisper-cpp-executable <chemin-vers-whisper-cpp> --whisper-cpp-model <chemin-vers-le-modele>

Comme mentionné précédemment, yt2doc utilise Segment Any Text (SaT) pour segmenter la transcription en phrases et en paragraphes. Vous pouvez également personnaliser le modèle SaT utilisé :

yt2doc --video <url-de-la-video> --sat-model <modele-sat>

La liste des modèles SaT disponibles est accessible ici.

Vous l’aurez compris, yt2doc est un outil extrêmement puissant et flexible qui peut s’adapter à une multitude de cas d’usage. Mais comme tout outil basé sur l’IA, yt2doc n’est pas parfait. La qualité de la transcription dépendra toujours de la qualité audio de la source, et les titres générés automatiquement peuvent parfois nécessiter quelques ajustements manuels. M’enfin comparé au temps que vous gagnez, ces petits inconvénients sont bien négligeables !

Un grand merci à NiKo pour l’info ! Vous pouvez le suivre sur Twitter @N1K0 pour plus de découvertes tech passionnantes.

Source