Create Multi-Lingual Subtitles with AssemblyAI and DeepL

What's this blog post about?

In this tutorial, you'll learn how to build a video playback application that transcribes the audio of an uploaded video file using the AssemblyAI API and then translates the subtitles into different languages using DeepL. Here are the steps involved in building this application: 1. Set up your development environment by installing Go, Git, and Docker. 2. Create a new directory for your project and initialize it with `go mod init`. 3. Add the required dependencies to your go.mod file. 4. Create a new file called main.go and import the necessary packages. 5. Set up environment variables using the .env file. 6. Define the Job struct, which represents an AssemblyAI job. 7. Implement the /jobs route, which uploads the video file to the server and creates a transcription job on AssemblyAI. 8. Add the necessary routes for polling the status of the transcription job and downloading the subtitles when the transcription is complete. 9. Create a new view called job.html that displays the video with captions. 10. Implement the /translate route, which translates the subtitles using DeepL's API. 11. Modify the job.html file to include a language selector and event listeners for handling translation requests. By following these steps, you can create a simple video playback application that transcribes audio and generates subtitles in different languages on demand. This application can be further extended by adding features like speaker diarization, profanity filtering, custom spelling, and custom vocabulary using AssemblyAI's API.


Date published
July 8, 2024

Aniket Bhattacharyea

Word count

Hacker News points
None found.


By Matt Makai. 2021-2024.