How to get custom vtt subtitle or caption file to show up in the transcript window and be searchable

Copper Contributor

@Marc Mroz, We've been looking at using Stream for internal technical videos and were also disappointed with the auto-transcription. We now have a hand crafted transcription file to use with our videos and would like to sync that vtt file with our videos on Stream. I have uploaded a video and vtt which gives me a video with captions but no transcript or search. I've uploaded other videos with the auto-transcript that did give me the transcription and search box. We have a corporate office 365 account and don't appear to have any limitations in this regard.


Should we expect our custom uploaded vtt to generate the transcript mode and deep search to the side of the video?

28 Replies

@Matt Cannady

You can upload your own VTT file and have it show up in the transcript window on the side of the video player and be searchable. You just need to upload the custom VTT you created/edited in the "Captions" section not the "Subtitle" section. I'm guessing you are uploading them into the subitltes section.


Here is what you would do.

Captions > Autogenerate a caption file > uncheck this box

A new link will show up under this section "Upload a caption file", click it

In the pop-up pick the language your file is for

Click "select file" or drag / drop your custom VTT file on to the pop-up.


Now your custom VTT file will be shown in the transcript, indexed, and searchable.


In addition if you don't want to hand craft your VTT file, you could just edit the autogenerated one. We now have a edit button on the transcript window for owners of the video where they can then edit the text of the transcript inline as the video is playing.



@Marc Mroz,


I'm encouraged to know that this should work. I've followed these directions and still don't have the option to turn on the transcription panel for this video and caption. Again, if I let it auto-generate the captions I do have the option. My thought is that either I am missing another setting somewhere, it's not working as it should, or there may be some admin setting my IT department needs to change?


@Matt Cannady - Your user has an E5 license? Only E5 or Stream Plan 2 users will see the transcript on the side of the video when one is available?


If you upload another video and you say the video language is English and have the "autogenerate captions file" after waiting a while for the transcript to generate, when you go to the player page do you see the transcript window on the right side of the video?


If you do see the transcript it means you are E5 or Stream Plan 2. I'm not sure why when you upload your own VTT as a caption file it doesn't show the transcript window. It does for me when I test this.  If the above works for you, then maybe there is something wrong on our side or there is some corner case bug. If you open up a support ticket we can get someone looking at it, if support can't figure it out they'll escalate it up to us in the product group for deeper investigation.

@Matt Cannady - I think I might have reproduced the issue, but I need to try a few more things. Can you give me the exact flow you did? What video language did you pick when it was uploaded? Did you have the autogenerate caption file checked at upload? When did you upload the VTT File? 


I think there might be an issue if you don't let it autogenerate the caption file on it's own that when you upload the custom caption file it doesn't think it can have a transcript. I'm still testing a few thing though to see if I can narrow down when this happens.

@Marc Mroz - I'm trying to find out my license level now. I do see the transcript when I auto-generate captions but not when I upload my own.


As to your second paragraph, that is correct. 


How do I open a support ticket to you?

@Marc Mroz - I dragged in the video, checked English as the language. Set permissions to be a specific channel only. I may have uploaded the vtt file as Subtitles instead of Captions.


I'm attempting this again. Following the above steps, I then disabled autogenerate and am browsing to the vtt with Select file as English. People and Comments are left on. Once it's done being uploaded I'll publish.

@Marc Mroz - I downloaded an autocaption vtt for a different video, then reuploaded that video with the autogenerated vtt as the english caption and the transciption box is present immediately. 

This may be due to the tagged text in the MS auto vtt? Each time coded line of text in the autogenerated file has a line of text that appears to be an ID, possibly to track changes in your dictionary system? It may be something else though. Is this "pre-line" necessary in the custom caption uploads for transcription and search?


MS autogenerated caption line: 

00:00:19.650 --> 00:00:24.380
start another way what we're really talking about today is reconstruction about present-day


Converted smi to vtt:

00:06:49.730 --> 00:06:52.070
of view closed, anyway, I figured I'd just go through


As a side note, the attempt I referenced earlier to upload the same problem video but with autogenerated transcription immediately gives me the option of opening the transcription box, but notifies me that the transcription is not ready yet, as it should.

I'm still trying to narrow down what it's doing through testing. Right now I'm thinking it has something to do with the contents of the file, encoding, or something like that which is causing it not to pick it up and index it for the transcription window/search.


That guid you see in the autogenerated one is needed it seems, but I've succfully uploaded a VTT file without it, waited a bit, and then it worked. When I downloaded the file again our system added the guids above each time code. So I think we are supposed to be parsing the uploaded VTT and adding the time codes. It seem there is something specific about some VTT files that our system doesn't like, and thus it doesn't parse and add those guids.


I have a VTT file that it doesn't like. I'm trying to narrow down what specifically about the encoding or contents of the file our system doesn't like. If you want to send me your problematic VTT file I can include that and my sample when I go talk with a developer to see if they can narrow down where the problem is.

As a workaround for the time being, it seems if you let Stream generate the VTT file for you, download it, edit it by hand, and re-upload it, then it will work fine.

@Marc Mroz - Sure. The video I'm testing with is a demo deposition file from our court reporter we hired to transcribe our presentations to overcome the fledgling auto-transcription issues. The demo came with the smi file, I used an online conversion site to get our vtt, I also included the auto generated file.

best response confirmed by Matt Cannady (Copper Contributor)

Ok... I finally figured out what was going on after lots of trial/error and closer looking at the problematic VTT files. 


It turns out Stream will not parse the VTT file uploaded in the caption section and turn it into the transcript if there is a line in the file that has no elapsed duration/gap between the time codes.  For example like this:

00:16:24.490 --> 00:16:24.490
keep falling apart.

If you change the time codes so there is a time gap between them, it works fine. Like this:

00:16:24.490 --> 00:16:24.491
keep falling apart.

So for the example VTT file you sent, there is actually 2 lines in the file where there is no gap in the time codes. I updated these 4 lines in your file to ensure there is gap and the subsequent line also starts at the new time. Once I did that your custom VTT file works correctly and shows up as the transcript. (See the attached file below that is the fixed VTT, to try yourself.)

00:16:24.490 --> 00:16:24.491
keep falling apart.

00:16:24.491 --> 00:16:26.890

00:41:07.740 --> 00:41:07.741
read it.

00:41:07.741 --> 00:41:21.720
(Requested portion of record read.)

I'll file a bug on our side in Stream to fix this issue so that our parsing logic still works even if there are lines in the VTT with the beginning/ending time codes the same. I don't know how easy/hard this will be to fix on our side.

@Marc Mroz,


We had our first business case of importing an internal transcription and after editing the converted vtt to ensure time gaps, Stream wouldn't enable transcription for our video... I edited the vtt in notepad. Is there a different application you would suggest? Could you help me out again by reviewing the attached file?

I compared my file to the one you fixed for us prior and noticed it did not have WEBVTT as the first line. I added that and blank line after to match yours and it worked. When adding a transcription file in the edit page, the Apply button doesn't enable unless you mess with another setting like turning comments or people on/off. I tried both changing a setting then clicking Apply, and not changing a setting and clicking up to My Videos then selecting the video I was working on and both produce the desired result of the transcription file being applied. At this point I would have to assume that editing the video, adding a custom transcription, then clicking cancel would also work.... but that is counter-intuitive. Perhaps you could look into having the Apply button enable after only adding a caption.


Thanks again for your help.

Glad you got the custom VTT file working.


On the apply button... We do know of this confusing bit. The issue is that part of the changes you can make to a video like subtitles and custom thumbnails are committed via our APIs immediately thus the apply happens automatically, you don't need to click it (you can't it's not enabled). Its a fairly big work item for us to address this, sorry.

Could text to that effect be added to the page to reduce confusion? (Changes applied immediately)...

I have the same problems - but have now done it with the fix file. The transcription is displayed to me but only if all settings are set to "English". If I change the set language to "German", the transcription area can no longer be displayed. What can I do?


Thank you!



I thought the transcription service was only available for English and Spanish, maybe French? A limited set of languages though.

@Thomas Maier @Matt Cannady @Marc Mroz I have tested it. The transcript option is only displayed when the captions language is set to English or Spanish. If you have manually uploaded your own vtt captions file and set the captions language to German for example, the transcript option is not displayed. I think in the software is a simple if statement present (if (captions language == English or Spanish) {DisplayTranscript();}) that should be changed to "if ((captions is autogenerated and captions language == English or Spanish) or (captions is manually uploaded no language check required!)) { DisplayTranscript(); }" (sorry for this unnice programming language :-)).