An Elisp snippet to dowload YouTube videos transcripts
I was watching an amazing lecture by Donella Meadows and I wanted to save some quotes in my notes. I just checked if the Python community had a package for it and lucky me: the pythonist t4skmanag3r made https://github.com/t4skmanag3r/youtube_transcript_downloader!!
So after installing it with pip install youtube_transcript_downloader
I made a nice little Elisp wrapper to get the transcript as a plist:
(defun get-youtube-transcript (url) "Get YouTube transcript of URL." (if (s-contains-p "youtube-transcript-downloader" (shell-command-to-string "pip list")) (progn (with-temp-file "/tmp/yt-transcr-downloader.py" (insert (format " import youtube_transcript_downloader url = \"%s\" transcript = youtube_transcript_downloader.get_transcript(url) print(\"(\") for key, val in transcript.items(): print(f\"(:key \\\"{key}\\\" :text \\\"{val}\\\")\") print(\")\") " url))) (read (shell-command-to-string "python3 /tmp/yt-transcr-downloader.py"))) (error "Please install youtube_transcript_downloader via pip install youtube_transcript_downloader")))
You can use it like this (get-youtube-transcript "https://www.youtube.com/watch?v=vJ1STks8MUU")
.
Happy transcripting!