What Is Harfiyen? Free Turkish Subtitle Generator That Burns Captions Into Video, in the Browser
In Harfiyen you open a video or audio recording with Turkish speech in the browser; it transcribes the speech, writes punctuation and numbers according to Turkish rules, burns captions in your chosen style into the video and lets you download it as MP4. It's a free, open-source web app (code under MIT; the models it uses come with their own licenses, the default model CC BY-SA 4.0). The file isn't uploaded to a server; processing happens on your computer's graphics card (WebGPU). It also offers a vertical Reels crop, SRT/VTT, Turkish voiceover and Turkish ↔ English translation. Desktop Chrome or Edge is recommended. A new project: first release October 11, 2026.
- What it does
- Adds captions to Turkish videos in the browser
- Where
- harfiyen.dev, in the browser
- Is my file uploaded?
- No, it's processed on your computer
- Requirement
- A browser with WebGPU support
- Output
- Captioned MP4, SRT, VTT, text
- Project
- First release October 11, 2026, latest v0.5.0 (October 23, 2026); one main developer
- Price
- Free; code MIT, models under their own licenses
What does Harfiyen do?
Adding Turkish captions to a Reels or YouTube video usually means either typing them by hand or uploading the video to a site and having a paid service transcribe it. Harfiyen does it inside the browser: you open the video, it transcribes the Turkish speech word by word with timings and adds punctuation and capitalization, you apply the caption style you choose and download an MP4 with the captions written into the video. The file never leaves your computer.
It follows Turkish writing rules: it separates suffixes on proper names with an apostrophe ("İstanbul'da", "TBMM'de"), writes numbers according to TDK (the Turkish Language Association) or all as digits ("Saat 15.30'da 15 kişi geldi", "15 people came at 15:30"), and handles the uppercase i → İ conversion correctly.
Who it helps: content creators who want Turkish captions for Reels, Shorts and YouTube, teachers and consultants who want to transcribe a lesson or interview recording, and small businesses that don't want to upload their video to a server.
A new, small project: the repository opened on October 9, 2026, first public release October 11, 2026, latest release v0.5.0 (October 23, 2026); one main developer.
How do you open Harfiyen? Browser and hardware
- Open harfiyen.dev. No account or sign-in. The README recommends desktop Chrome or Edge; a browser with WebGPU support is required.
- Wait for the first load. The browser downloads about 190 MB (the default model and the runtime engine) and stores it; later visits run from cache, without internet.
- Open your file. With the Open file button or by dragging the file onto the window.
In Chrome and Edge it can also be installed as a desktop app from the address bar (README).
Requirements: Node.js 20+, Python 3.10+ (only to prepare the model once) and a browser with WebGPU support. After downloading the repository, the commands from the README:
› npm install
python3 -m pip install -r scripts/requirements.txt
npm run models
npm run devnpm run models downloads the speech recognition, punctuation and translation models and converts them for the browser; according to the README, about 3 GB including the large model. The app opens at http://localhost:5173.
The default model and live microphone run on the graphics card (WebGPU). For devices without a graphics card, a model that runs on the CPU can be chosen; it works only on files, not for live recording. Without WebGPU, the captioned video is still produced; it's slower, and the frosted glass and aura effects are simplified (v0.4.1). Details in the model section.
The README says model selection on a phone is in the ⋯ menu; a phone and browser compatibility list is not stated in the official documentation. The README recommends desktop Chrome or Edge.
How do you add Turkish captions to a video with Harfiyen?
The two examples below are compiled from the usage table in the README; the interface is in Turkish, and button names are given here in English translation.
- Open the video with Open file; transcription doesn't start by itself, the audio waveform is drawn.
- Choose the 9:16 crop with the crop button above the player (or C); if you like, mark only the part you'll use with Trim at the end of the timeline.
- In the transcript panel press Transcribe. If you selected a section, only that part is transcribed (select 30 seconds of a 20-minute video and only 30 seconds are processed).
- Fix a misheard word by double-clicking the line; to change a name across the whole text, use ⌘F / Ctrl+F.
- In the right panel choose a style under Captions (e.g. Karaoke), then Export at the top right.
What you get: according to the README, from a 4K horizontal video you get a 1080×1920 vertical MP4 with captions written into the picture; the export menu suggests 1080p at 9:16. If you like, you also download the same captions as an SRT or VTT file.
You paste text into Text to speech on the empty screen; the text is read in a synthetic Turkish voice and the words are placed into captions with their timings.
| Task | How (README) |
|---|---|
| Live transcription from the microphone | The red button at the bottom, or R |
| Aligning text you already have to the audio (song lyrics, a speech script) | The alignment button in the transcript header; paste the text |
| Cutting silences and "uh" sounds | In the right panel, Text › Remove silences |
| Opening and styling an existing SRT/VTT | Select the caption file with Open file |
| Opening the project later | The Projects menu; saved automatically in the browser |
Caption styles, crop and export
| Group | Styles (README) |
|---|---|
| Calm | Classic (two lines in a dark box), Plain (no box, light shadow), Glass (the video behind blurs like frosted glass) |
| Highlighted | Karaoke, Fill, Flow, Focus, Emphasis: the spoken word stands out, fills with color or gets a box |
| Big | Pop, Single word, Sharpen: large words in the center, one at a time |
- Ten fonts (all with Turkish characters) or your own font (TTF, OTF, WOFF); size, position, box, outline, shadow, color.
- Your own logo sits in the corner you choose.
- In the Scene tab, eight kinetic typography styles that use the whole screen instead of captions; for audio files, an aura or your own photo becomes the background.
- Crop: 9:16, 4:5, 1:1, 16:9 or free; Fill covers the frame, Fit fits the whole video.
- Separate speakers works out who spoke when from their voices; the speaker's name can appear in the captions.
In addition, SRT, WebVTT and plain text can be downloaded or copied to the clipboard. From audio files you get a captioned MP4 in 720p, 1080p or 4K.
Turkish captions, translation and voiceover for English video
Before transcribing, you choose the language in the video: Turkish or English. After an English video is transcribed, it's translated into Turkish sentence by sentence; TR / EN above the transcript selects the caption language, and the captioned MP4 comes out in that language. A Turkish video can also get English captions and an English voiceover.
| Turkish speech recognitionYes | The main job; with one of the options in the model section. |
|---|---|
| English speech recognitionPartly | Only with the large models that need a graphics card (see the model section). |
| TranslationPartly | Only Turkish ↔ English; each direction's model downloads about 360 MB on first use. Proper names and slang may be mistranslated. |
| Turkish voiceoverYes | A single synthetic voice; every speaker is read in the same voice, not matched to lip movement. |
| Interface languageYes | Turkish. |
Which model? Speech recognition and voiceover models
According to the README, Harfiyen offers three models for transcribing speech; Whisper Turbo also has a small Light (Hafif) version, so four options appear in the table. You choose from the top bar (on a phone, from the ⋯ menu). Models download on first use and can be pre-downloaded and deleted under Settings › Models.
| Model | What for (README) | Runs on | Download |
|---|---|---|---|
| Seda (default, seda-v0.2) | Small and fast; for live microphone and any device. Has Fast, Balanced and, with a language model, Most accurate settings. A separate model adds punctuation | Graphics card (WebGPU) | ~190 MB |
| Duyu (Duyu-small) | For devices without a graphics card; writes punctuation and capitalization itself. Files only | CPU | ~85 MB |
| Whisper Turbo | Fewer errors; writes punctuation, capitalization and digits itself. Only Whisper understands English video. Files only | Graphics card (WebGPU, shader-f16) | ~1.5 GB |
| Whisper Turbo Light (Hafif) | A smaller version of the same; may make slightly more errors on difficult audio | Graphics card | ~600 MB |
- Most Turkish videos and live microphone: Seda.
- No graphics card: Duyu.
- English video or difficult audio (noise, music): Whisper Turbo; if the computer struggles, Light.
The README gives the accuracy from the model card: Seda (seda-v0.2) at its Most accurate setting has a 6.38% word error rate on the FLEURS-TR test (lower is better). This measurement belongs to the model's developer.
| Voiceover voice | Language | Download | Note (README) |
|---|---|---|---|
| EMA Lightning | Turkish | ~36 MB | Single voice |
| Antalia Mini | Turkish | 23 MB | Single voice |
| Ahenk Cep | Turkish | 18 MB | Recommended for reading numbers, dates and abbreviations; slightly slower than the others |
| Supertonic 3 | English and Turkish | 203 MB | Ten voices for English voiceover |
EMA Lightning guide: a small Turkish text-to-speech model
Model list checked against the README on October 29, 2026 (v0.5.0). Models come with their own licenses: Seda CC BY-SA 4.0, Duyu Apache-2.0, Whisper MIT, EMA Lightning Apache-2.0, Antalia Mini Apache-2.0, Ahenk Cep CC BY 4.0, Supertonic 3 BigScience OpenRAIL-M, translation models (OPUS-MT) CC-BY 4.0.
Is Harfiyen free? License and commercial use
Yes. Harfiyen's code is MIT-licensed; there's no account, plan, credits or usage limit, and no pricing page. Its cost is your computer's processing power and the disk space the models take up.
- Using, modifying and distributing the code, including commercially (MIT)
- Publishing your own copy at your own address (the README has deployment steps)
- Removing the license notice from copies
- Assuming the models carry the code's license: each model comes with its own license (e.g. the default model CC BY-SA 4.0, one voiceover model OpenRAIL-M)
If you'll use a captioned video you made in commercial work, check the license of the model you used in the list in the model section. This is not legal advice.
Is my video uploaded to a server? Privacy
README: audio and video don't leave your computer, and audio and text aren't sent to a server for processing. Projects are stored in the browser's own storage (IndexedDB).
Models and the runtime engine are downloaded from harfiyen.dev's file server on first use and stored in the browser.
The harfiyen.dev page loads Cloudflare's visit analytics script (visible in the page source). It measures page visits, not your files.
!Clearing site data in the browser settings also deletes saved projects. To free up space from models, use Settings then Models; download important projects as a .harfiyen file.
Known limitations
| What | What the README says |
|---|---|
| Trimming | Limited to a single section; you can't cut the video by deleting words from the transcript. |
| Crop | Fixed for the whole video; no crop that moves over time. |
| Speaker separation | Doesn't separate overlapping speech; short interjections may be assigned to the wrong person and can be fixed in the transcript. |
| MP4 from an audio file | If the browser can't encode AAC, Opus is used; QuickTime and iPhone Photos may not open an MP4 with Opus. |
| Opening over the network via http | Writing a long video directly to disk doesn't work; the video is built in memory. |
| File size | Chrome and Edge keep permission to access the file itself; other browsers keep a copy of files up to 1 GB in the project. The README doesn't state a size limit for the captioned video; for large files use Chrome or Edge. |
Frequently asked questions
What is Harfiyen?
A free, open-source web app that transcribes Turkish speech in the browser, writes punctuation and numbers according to Turkish rules, burns styled captions into the video and lets you download it as MP4.
How do you add automatic Turkish captions to a video?
On harfiyen.dev you open the video, press Transcribe, choose a caption style in the right panel and use Export to download an MP4 with the captions written into the video. You can also get SRT and VTT files.
Can you add Turkish captions to an English video?
Yes. You set the video's language to English and transcribe it (a model that understands English is selected automatically), have it translated into Turkish and download the captioned video with TR selected. This requires a graphics card.
Is Harfiyen free?
Yes. The code is MIT-licensed, with no account or usage limit. The models it uses come with their own licenses; for commercial work, check the model's license.
Is my video uploaded to a server?
No. According to the README, audio and video don't leave your computer; processing happens in the browser. Audio, video and text aren't sent to a server; models download on first use, and page visits are counted by Cloudflare's analytics script.
Do you need a graphics card for Harfiyen?
The default model and live microphone run on the graphics card (WebGPU). Without a graphics card, you can choose the model that runs on the CPU and transcribe files. Desktop Chrome or Edge is recommended.
Related guides
Sources
- Harfiyen README
- Changelog (CHANGELOG)
- Deployment guide (DEPLOY.md)
- License (MIT)
- harfiyen.dev
- Default speech recognition model card (Hugging Face)
Not clear in the official sources: The officially supported browser and version list (the README only recommends desktop Chrome and Edge) · which features work on a phone · the file size limit for captioned video. Each is covered in the relevant section along with what you can do.




