If a transcript is available on YouTube for a video you are trying to sync, there is now a quicker way to automatically apply those timings to your transcript in Readlang. It’s still a bit fiddly but faster than manually syncing from scratch. Here’s how:
Add the video transcript as usual via the upload page.
Open the new text to read and in the reader page sidebar, click the YouTube tab and add the YouTube video URL and click “Add YouTube Video”:
(all timestamps should be at the very start of a line in MM:SS format)
Click the “Submit transcript” button.
If everything has worked properly, you should be able to play the video and the transcript will be synchronized as well as possible given the timing information from YouTube.
This is in beta so you may encounter issues. Please let me know how it goes!
I think it would be less confusing if there was a second way to add new content. When I start at the upload page, do I need to upload the transcript with or without timestamps? It would be nice if I could paste the YouTube URL and the transcript when I am adding it to my library.
I agree. I’ve been considering adding a new upload flow for YouTube videos. For now I just took the route which was easiest to implement to get something out there that you can try out. The idea is that for now you need to upload a transcript without timestamps but with nice readable formatting for the initial upload, and then you add the transcript with timestamps (but not necessarily so readable) later from the reader page sidebar. I realize that this feels a bit clunky right now.
Hi Steve,
I have just joined Readlang and I’m really enjoying it - thanks very much.
The revised YouTube sync process it is definitely better than manually syncing.
I added the transcript with time code when I uploaded the text initially and then had to manually remove it before proceeding to the next step. Then I realised that this can be done in YouTube very easily. Just adding the process here in case it is useful to anyone:
To remove the time code from a YouTube transcript, you can toggle timestamps off in the transcript window:
Find the YouTube video you want the transcript for
Click the three horizontal dots below the video
Select Open transcript
Click the three vertical dots above the transcript
Steve, you seriously are the most responsive developer I have ever seen on a website. Thank you for being helpful and for this fantastic site that is helping my Spanish language learning journey!
I really like this tip about syncing video times. I am working through a large YouTube video series, Se Curioso TedEd. It has over 400 titles addressing a wide range of general knowledge topics with advanced vocabulary and (mostly) amazing narrators. I have about 12 videos synced so far, and I plan to do all of them. I am sharing the videos on a public shelf here: Sé Curioso TED-ED YouTube videos
Youtube for me is the most useful source of new study material in my target language. I use it so much. But I’m anal about the transcript. I’ve noticed that the author’s transcript isn’t always as accurate as you’d think. It takes a lot of effort to produce so I find that a combination of “YT Saver” app to download the audio and an only transcription service like “TurboScribe” produces more accurate transcriptions. I’m not saying such detail makes a difference for study. Just something I care about – and there have been times when it made a significant difference in meaning.
Sorry for getting technical here. I believe the browser extension can easily find the YouTube video URL and the HTML element of the transcript, then upload them for the user? Maybe the “Import to Readlang” API also need to be extended to accept this new payload format (didn’t check how that work yet)?
The benefit is that the browser extension can have a one-click “import this YouTube video + transcription” button. The downside is that we are relying on YouTube not changing their HTML structure and it’s a sisyphus’ boulder to keep up with YouTube.
Am I missing something @Steve ?
Also, a while back I vibecoded a bookmarklet for personal use to extract transcripts from YT videos and the way it worked is that it would look for buttons with English words like “More” and “Show transcript” to fetch and display the transcript and then would copy it to the clipboard. This approach wouldn’t work well across all languages. There’s probably a different query selector it could use, or it could directly call the internal YT API route to fetch the transcript, but I fear any such approach would be brittle in the face of YT updates as you suggest.
I guess in the age of AI, we need to build an AI agent that test the bookmarklet every day and fix the bookmarklet by itself if YouTube changes anything…
Jokes aside, I have passed the stage of language learning where I follow the video word by word. I usually watch the video without pausing, then read the transcript again to look for the parts I missed. So not much incentive for me to dive deeper into this. But looking forward to an official solution if you change your mind
Sorry I am new. Is the only way to use ReadLang with YouTube by copy pasting the transcript (I don’t even know where to find this on iPhone) and then copy paste the URL? Does this actually create text that follows along with the video accurately ? I switched to ReadLang for long form books but LingQ still seams to do videos better
Yes, the way I described in the original post of this thread is (currently) the easiest way to get YouTube videos into Readlang. I agree the process is overly fiddly, and probably only works well on desktop *, although once imported, you should then be able to watch and read through the video with synchronized highlighting on mobile. The timing of the highlighting will generally be very accurate every 10th word or so that YouTube provides a timestamp for, but can veer off a bit in-between. It is possible for you to manually tweak these timings but that involves even more work on your part (which could be worth it for a video that you will watch a lot of times or share with a lot of people).
* I just checked out the YouTube webapp on iOS and I couldn’t find the transcripts, and in the YouTube native iOS app I found the transcript but didn’t manage to copy it, so unfortunately this workflow doesn’t currently
I’ve just updated the Chrome extension so that if you use it from within a YouTube video page on desktop, it will attempt to extract the transcript and create a Readlang text with synced video using YouTube’s transcript and timings. If there is no transcript for that particular video on YouTube, or if Google has updated the YouTube webpage so that it doesn’t work anymore, you may see an error message instead saying that the transcript couldn’t be extracted.
Navigate to a YouTube video (URL must be in format https://www.youtube.com/watch?v=xxxxxxxxxxx)
Either right click somewhere on the page and select “Import to Readlang”, or click the “R” button to open the Web Reader and then select “Import to Readlang” from the menu.
If you already have the extension installed and it doesn’t work, it could be because the update hasn’t been rolled out to you yet, but it should do within the next 24 hours. The latest update has version number 0.9.11.
Note that the way this import works is brittle and may stop working at any time if Google update how the YouTube website works. If that happens let me know and I’ll try to fix it, but I can’t offer any guarantees.
Many of the transcripts on YouTube are of bad quality. If you find that this is the case, you can open the Edit tab of the reader page sidebar and fix the transcript yourself. Readlang will do its best to keep the sync points intact.