[[!meta title="Captioning tips"]] [[!meta copyright="Copyright © 2021, 2022 Sacha Chua"]] Captions are great for making videos (especially technical ones!) easier to understand and search. If you see a talk that you'd like to caption, feel free to download it and start working on it with your favourite subtitle editor. Let me know what you pick by e-mailing me at so that I can update the index and try to avoid duplication of work. [Find talks that need captions here](https://emacsconf.org/help_with_main_captions). We've been using to caption things as VTT or SRT in Emacs, often starting with autogenerated captions from YouTube (the .vtt or .srt file), but you're welcome to make captions using your favourite tool. We'll be posting VTT files so that they can be included by the HTML5 video player (demo: ), so if you use a different tool that produces another format, any format that can be converted into that one (like SRT or ASS) is fine. You can e-mail me the subtitles when you're done, and then I can merge it into the video. # Formatting tips You might find it easier to start with the autogenerated captions and then refer to any resources provided by the speaker in order to figure out spelling. Sometimes speakers provide pretty complete scripts, which is great, but they also tend to add extra words. Emacs being Emacs, you can use some code ( [example subed configuration](https://sachachua.com/dotemacs/#subed), see `my-subed-fix-common-error` and `my-subed-common-edits`) to help with capitalization and commonly misrecognized words. Please keep captions to one line each so that they can be displayed without wrapping, as we plan to broadcast by resizing the video and displaying open captions below. Maybe 50 characters max? Since the captions are also displayed as text on the talk pages, you can omit filler words. Split the captions at natural pausing points (ex: phrases) so that they're displayed nicely. For example, instead of: - so i'm going to talk today about a - fun rewrite i did of uh of the bindat - package you can edit it to be more like: - So I'm going to talk today - about a fun rewrite I did - of the bindat package. If you don't understand a word or phrase, add two question marks (??) and move on. We'll ask the speakers to review the subtitles and can sort that out then. If there are multiple speakers, indicate switches between speakers with a `[speaker-name]:` tag. During questions and answers, please introduce the question with a `[question]:` tag. When the speaker answers, use a `[speaker-name]:` tag to make clear who is talking. # Editing autogenerated captions If you want to take advantage of the autogenerated captions and the word-level timing data from YouTube, you can start with the VTT file for the video you want, then use `my-caption-load-word-data` from to load the srv2 file (also attached), and then use `my-caption-split` to split using the word timing data if possible. You can bind this to a keystroke with something like `M-x local-set-key M-' my-caption-split`. # Starting from a script Some talks don't have autogenerated captions because YouTube didn't produce any. Whenever the speaker has provided a script, you can use that as a starting point. One way is to start by making a VTT file with one subtitle spanning the whole video, like this: ```text WEBVTT 00:00:00.000 -> 00:39:07.000 If the speaker provided a script, I usually put the script under this heading. ``` If you're using subed, you can move to the point to a good stopping point for a phrase, toggle playing with `M-SPC`, and then `M-.` (`subed-split-subtitle`) when the player reaches that point. If it's too fast, use `M-j` to repeat the current subtitle. # Starting from scratch Sometimes there are no autogenerated captions and there's no script, so we have to start from scratch. You can send us a text file with just the text transcript in it and not worry about the timestamps. We can figure out the timing using [aeneas for forced alignment](https://www.readbeyond.it/aeneas/). If you want to try timing as you go, you might find it easier to start by making a VTT file with one subtitle spanning the whole video, like this: ```text WEBVTT 00:00:00.000 -> 00:39:07.000 ``` Then start playback and type, using `M-.` (`subed-split-subtitle`) to split after a reasonable length for a subtitle. If it's too fast, use `M-j` to repeat the current subtitle. Please let us know if you need any help! Sacha