Setup guide · last checked October 17, 2026
A setup that turns a topic you give into a Turkish-voiced video and your own product's screen recording into a demo video
Two separate paths: a vertical video with a script, Turkish voiceover and captions as the goal, made from a topic (OpenMontage), or a demo from a screen recording of your own app (Recordly). Publishing isn't covered in this guide; the goal is an MP4 file on your computer.
Compiled from the official documentation. The basis for each step is listed under it.
What you get
An MP4 file on your computer that has passed your approval: either a voiced explainer made from a topic (captions with an extra install) or a demo from a screen recording of your real product.
How it runs
You start it. You start the production for each video; nothing is produced while your computer is off or without your command. This is not a scheduled channel automation. There are approval checkpoints for the script, the scene plan and the visuals. The pinned OpenMontage commit is one day old and sits at the tip of a fast-changing repository; if the setup breaks, ask for support.
Where it runs
Windows · macOS · Linux
What the cost depends on
Subscription · API usage · No cost · Setup service
Who it is for
- Business owners and content creators who want to turn a topic into a short video with voiceover and captions but don't know video editing
- People who want to make a promo or walkthrough video of their own app or website from a screen recording
Who it is not for
- People who want the video posted to social media automatically: publishing and regular posting are not what this guide does
- People who don't want to use an assistant that runs code on their computer or install Python and Node.js (for the topic-to-video path)
- People who want to generate scenes from text that make it look as if the product works, without showing the real product, and present them as the product itself
How the system fits together
Topic-to-video: topic and sources → OpenMontage script and scene plan → stock or generation service → Google Turkish voice → captions → local render → MP4. Product demo: recording with Recordly → scene selection → titles and audio → MP4.
- OpenMontage required
Open-source system that manages research, script, scene plan, voice and render in the topic-to-video path
Claude Code requiredCoding assistant that opens the OpenMontage folder and runs the production, asking you step by step
OpenAI Codex CLI optionalAn assistant that does the same job
Alternative: If you use Codex rather than Claude Code

- Pexels optional
Source of licensed stock images and video
Alternative: If you want visuals from stock rather than from a generation service
Remotion optionalOpenMontage's render engine that comes with the repository; you don't install it separately
Alternative: When OpenMontage chooses this render path for the script; a license may be required depending on company size and commercial use
HyperFrames optionalA second render path OpenMontage can choose for videos heavy on HTML and motion graphics
Alternative: If the script relies heavily on animated text and graphics and OpenMontage suggests this path
Recordly requiredIn the product demo path, records the screen and exports an MP4 with cropping, zoom, titles and audio added
Raylight optionalA tool for designing animated product promos from screenshots; the site also lists a separate 'Capture for Mac' app that records the Mac screen (this guide focuses on Windows)
Alternative: If you want a designed animated promo scene rather than a real recording
- Shotbase optional
Screen recording and automatic zoom on Mac
Alternative: If you use only a Mac and accept the paid version
AutoAE optionalReady-made motion graphics clip service; its site lists no screen recording feature. The free plan is for non-commercial use
Alternative: If you're only looking for animated text or graphic clips and will consider the paid plan for a business video; the site doesn't list publisher information, so use it at your own judgment
Connections between tools
- Coding assistant OpenMontage folder · Via a file · Instruction files in the repository (CLAUDE.md for Claude Code); the assistant opens the folder and reads them
- OpenMontage Google Cloud Text-to-Speech · Automatic via API · HTTPS request; the GOOGLE_TTS_API_KEY key in .env · permission: Voice generation only (the Text-to-Speech API must be enabled for the key)
- OpenMontage Pexels / Pixabay · Automatic via API · HTTPS request; the PEXELS_API_KEY and PIXABAY_API_KEY keys in .env · permission: Search and download only
- FFmpeg OpenMontage · Via a file · The ffmpeg command on the system path (PATH)
- Recordly Demo MP4 file · Via a file · The exported MP4 and the .recordly project file that stores the edit
- Recordly demo OpenMontage · Manual transfer · If you want, you move the recording into the OpenMontage folder yourself as a file; the documentation describes no automatic connection between the two tools
Before you start
Computer and software
- Operating system: Windows, macOS, Linux
- Python: 3.10 or later (topic-to-video path)
- Node.js: 18 or later; 22 or later if the HyperFrames render path is chosen
- FFmpeg: The documentation sets no version requirement; this guide uses the 9.0.2 package for Windows
- Git: To download the repository at a specific version
- An AI assistant that can run code: Claude Code, Cursor, Copilot, Windsurf or Codex
- Recordly desktop app: v1.4.0; Windows 10 (Build 19041 or later), macOS 14 or later, or Linux (product demo path); the interface is in English, with no Turkish language option
- faster-whisper (Python package): 1.2.1; for the path that extracts word timings for captions (topic-to-video)
Accounts
- Google Cloud account (Text-to-Speech API) — To generate a natural Turkish voice. Billing must be enabled to use Text-to-Speech; if you exceed the free usage allowance, you are charged automatically
- Pexels or Pixabay account (optional) — API key for searching licensed stock images and video. You need to open an account and get a key; the documentation lists no charge
Step-by-step setup
Which one do you want to do?
The steps you check stay only in this browser; they do not confirm that the setup works. You finished 0/7 steps.
- Step 1 · In the terminal
Check that the required programs are installed
What for: Keep the setup from stopping halfway in the next steps.
- Open Windows PowerShell. First check that Python, Git and Node.js are installed (Python 3.10 or later and Node.js 18 or later are required; 22 or later if you choose the HyperFrames path).
- If FFmpeg isn't installed, install it with the winget line below; after installing, close and reopen PowerShell.
- Check that the two check lines below print version information.
WindowsFolder: Any folder› winget install --id Gyan.FFmpeg --version 9.0.2 --exactVersion pinned (as of October 17, 2026). Check the vendor documentation before moving to a newer version.
Windows · macOS · LinuxFolder: Any folder› ffmpeg -versionWindows · macOS · LinuxFolder: Any folder› node --versionHow you know it worked
- ffmpeg -version prints a version number.
- node --version prints version 18 or later.
If you get stuck: problems specific to this step
- The winget command isn't recognized
Install FFmpeg from the Windows build link on the ffmpeg.org download page and add the folder containing ffmpeg.exe to the system path; then check with ffmpeg -version. - You use macOS or Linux
The OpenMontage README gives brew install ffmpeg for macOS and sudo apt install ffmpeg for Debian-based Linux; the commands in this guide are for Windows PowerShell.
- Step 2 · In the terminal
Download and install OpenMontage at a specific version
What for: Get the repository at a version that won't change and install the dependencies.
- Create an empty folder named 'video-calismasi' under Documents and start PowerShell there.
- Download the repository and pin it to the specified commit. The repository has no published release tags, so it is pinned by commit hash.
- Create a virtual environment, activate it and install the Python dependencies. The requirements file sets lower bounds (for example >=), so second-level packages are not fully pinned.
- In the remotion-composer folder, install the Node packages at the versions in the lock file, then copy the settings file.
- Don't install the offline Piper voice: the Turkish Piper voice carries a data license that doesn't allow commercial use (see the voice step). The Makefile says that if Piper installation fails, voice falls back to cloud providers; the documentation doesn't separately confirm that a setup without Piper leaves the rest of the workflow intact. You'll check that the Google voice is ready at the end of the next step, where you add the key.
WindowsFolder: Documents\video-calismasi› git clone https://github.com/calesthio/OpenMontage.git; git -C OpenMontage checkout c8066452325cb57c8fc1ba8c2a71b6e8842e6b65Version pinned (as of October 17, 2026). Check the vendor documentation before moving to a newer version.
WindowsFolder: Documents\video-calismasi› git -C OpenMontage log -1 --onelineWindowsFolder: Documents\video-calismasi\OpenMontage› py -3 -m venv .venvWindowsFolder: Documents\video-calismasi\OpenMontage› .\.venv\Scripts\Activate.ps1WindowsFolder: Documents\video-calismasi\OpenMontage› python -m pip install -r requirements.txt # the file in OpenMontage commit c8066452325cb57c8fc1ba8c2a71b6e8842e6b65; the file itself uses >= ranges, only the commit is pinnedVersion pinned (as of October 17, 2026). Check the vendor documentation before moving to a newer version.
WindowsFolder: Documents\video-calismasi\OpenMontage› cd remotion-composer; npm ci; cd ..WindowsFolder: Documents\video-calismasi\OpenMontage› Copy-Item .env.example .envHow you know it worked
- The output of git -C OpenMontage log -1 --oneline is a single line starting with c806645.
- The folder shows .venv, remotion-composer/node_modules and the .env file.
If you get stuck: problems specific to this step
- The npm command throws an ERR_INVALID_ARG_TYPE error
The OpenMontage README gives npx --yes npm install for this error on Windows; use it only if this error appears, because it doesn't apply the lock file versions exactly. - Activate.ps1 can't be run (script execution disabled)
The Windows PowerShell execution policy may be blocking activation; ask for support at this step before changing the policy, and don't loosen general security settings at random.
- Step 3 · In the browser
Add the keys for the Turkish voice and stock media to the .env file
What for: Give OpenMontage access to the Google Turkish voice and the stock sources.
!You check this step yourself; the system should not move past it without your approval.
- Create a new project in your Google Cloud account, enable billing and turn on the Text-to-Speech API. Restrict the key so it only allows this API.
- .env.example has no GOOGLE_TTS_API_KEY line; add it as a new line at the end of .env and put the key there. The same file also has a GOOGLE_API_KEY line, and the same Google tool reads it too; fill in only one, don't mix them up.
- Don't put the key in a chat, an email, a screenshot or Git.
- If you like, open Pexels and Pixabay accounts and put their keys in the PEXELS_API_KEY and PIXABAY_API_KEY lines in .env; these lines already exist in the file, don't add them again. Both are optional. The Pixabay API documentation requires you to credit the source when showing results and sets a limit of 100 requests/60 sec; it also expects you to host images on your own server and cache them for 24 hours.
- When using the Pexels API, you're expected to show a visible link to Pexels and credit the photographer where possible; the default limit is 200 requests per hour and 20,000 per month. The free Google allowance is monthly; set up a budget alert in Google Cloud.
.env (single line to add at the end) · iniGOOGLE_TTS_API_KEY=
The value is left empty as an example; write your own key after the equals sign and don't add the file to Git. The PEXELS_API_KEY and PIXABAY_API_KEY lines already come from .env.example.
How you know it worked
- The Text-to-Speech API shows as 'enabled' in Google Cloud.
- The GOOGLE_TTS_API_KEY line in .env has a value and isn't stored anywhere else.
- When you tell OpenMontage 'show the provider menu', Google TTS appears on the 'available' side of the list the assistant shows (if it stays on the unavailable side, the key or API setting is missing).
If you get stuck: problems specific to this step
- You get a permission or API-not-enabled error while generating voice
OpenMontage's voice tool requires the Text-to-Speech API to be enabled for the key; enable the API in Google Cloud and check that the key restrictions allow Text-to-Speech. - You accidentally shared the key or added it to Git
Delete that key in Google Cloud, create a new one and update .env with the new key; just deleting it from the file isn't enough. - Google TTS stays on the 'unavailable' side of the provider list
Check that the key is on the right line in .env, that you saved the file and that you restarted the assistant; then ask it to show the menu again. If that doesn't fix it, ask for support at this step.
- Step 4 · In the terminal
Install the word-timing package for captions
What for: Prepare the transcription component needed so captions appear in sync with the voice.
- OpenMontage's transcription tool requires the faster-whisper package; this package isn't in requirements.txt, and the Google voice tool doesn't produce timestamps either (the code has no such output). Install the package in CPU mode with the command below.
- Make sure the virtual environment is active ((.venv) appears at the start of the line).
- Tell the assistant explicitly that the caption language is Turkish. OpenMontage's transcription tool uses the 'base' model by default and auto-detects the language if none is given; this can produce incorrect text in Turkish. If the text is wrong, you can ask for a larger model (download size and time increase).
- The assistant may download an extra file (model) on the first transcription; before approving the download, ask what it will download. If the caption component doesn't work, word-timed captions may not appear; you check this by watching the video.
Windows · macOS · LinuxFolder: Documents\video-calismasi\OpenMontage› python -m pip install faster-whisper==1.2.1Version pinned (as of October 17, 2026). Check the vendor documentation before moving to a newer version.
How you know it worked
- The command finishes without errors, and python -m pip show faster-whisper shows version 1.2.1.
If you get stuck: problems specific to this step
- The command throws a build or CTranslate2 error
Show the error text to the assistant and ask for support; Python should be 3.10 or later, as OpenMontage requires. Without this package you may not get word-timed captions. - Captions come out out of sync with the voice
Have the assistant fix the caption text and timing; don't share the video until you're sure the captions are correct.
- Step 5 · In a coding agent
Give the assistant the topic, the sources and the target video
What for: Make sure the script is based on the sources you provide and reach the first approval checkpoint.
!You check this step yourself; the system should not move past it without your approval.
- Open the OpenMontage folder in the coding assistant. The assistant reads the instruction files in the repository.
- Provide the following as input: the topic sentence, the target audience, the language (Turkish), vertical format (ask for the 9:16 profile; the aspect ratio is set in the proposal), a voiceover of about 45-60 seconds (this is an acceptance example, not a duration promise), source links, the brand color and the logo file.
- Ask for a Turkish Google voice (example name format: tr-TR-Chirp3-HD-Achernar) and tell it to take footage from licensed stock.
- Read the assistant's research summary, the proposal and the script. If there is an unsourced claim, a made-up figure or a brand that isn't yours, delete it and have it corrected; don't move on to the next stage without giving approval.
How you know it worked
- A research summary and a script document are created in the project folder.
- The assistant waits for your approval of the script and scene plan.
If you get stuck: problems specific to this step
- The assistant asks which provider to use or doesn't show the voice options
Ask the assistant to run OpenMontage's provider menu (provider_menu) and show which tools are ready; the README gives this command for the assistant. - The script contains figures with no source
Remove those sentences or have them written with their source; OpenMontage's research stage is set up to cite sources, but the final check is yours.
- Step 6 · In a coding agent
Approve the scenes, the Turkish voice and the captions by listening
What for: Keep mispronunciations, wrong captions or unlicensed footage out of the render.
!You check this step yourself; the system should not move past it without your approval.
- Review the scene plan and the generated visuals scene by scene; OpenMontage puts a separate approval gate on visuals. Note the source of every stock clip (Pexels or Pixabay).
- Listen to the Turkish voice from start to finish: are proper names, numbers, the Turkish-specific letters and the stress correct?
- Read the captions alongside the voice: are the word timing, Turkish characters and line breaks right?
- Don't leave a scene that doesn't show your real product labeled as 'this is how our product works'; either replace it with a real screen recording (the other path) or write 'illustration' in the caption.
How you know it worked
- You gave the assistant your approval for the scenes, voice and captions in writing.
- If there was a mispronunciation or caption error, you listened to the corrected version again.
If you get stuck: problems specific to this step
- The voice sounds robotic or reads incorrectly
Have it choose another tr-TR voice from the same Google provider and rewrite the text around hard-to-pronounce words; every regeneration counts against your usage allowance. - The offline Piper Turkish voice was suggested
The model card of Piper's tr_TR dfki voice lists the CC BY-NC-SA 4.0 data license (non-commercial use); don't use this voice for a business video.
- Step 7 · In a coding agent
Render on your computer and check the MP4
What for: Turn the plan you approved into a single MP4 locally that can be reproduced.
!You check this step yourself; the system should not move past it without your approval.
- When you approve the render, the assistant runs it on your computer with local Node and FFmpeg; no separate cloud render service is needed.
- The output file is written to the renders folder under the project folder, named final.mp4. Watch the video from start to finish: you check that voice and captions match and that there are no black frames or logo errors.
- To reproduce the same video, keep the project folder and the recorded approvals; ask the assistant to change a scene or the voice in the same project and render again.
- This guide doesn't publish the video. If you want to publish, use a separate publishing guide and give the approval yourself.
How you know it worked
- The file projects/<project-name>/renders/final.mp4 is created and plays.
- You check the file's resolution and aspect ratio in the player or in the ffprobe output: ask for the vertical profile, but the actual ratio depends on the value in the assistant's proposal.
If you get stuck: problems specific to this step
- The HyperFrames render path was chosen and the command is downloading something
OpenMontage calls HyperFrames with npx hyperframes and doesn't pin the version; the npm registry currently lists 0.8.167. If you want a pinned version, don't let it choose this path, or ask for support. - FFmpeg not found error during render
Reopen PowerShell and check that the ffmpeg -version command works; if it doesn't, the FFmpeg folder is not on the system path.
Is the setup working? Check these
- Topic-to-video: projects/<project-name>/renders/final.mp4 plays; you matched the Turkish voice and the captions by listening and reading yourself, and the source of the stock footage is written in your notes.
- Product demo: the exported MP4 shows the real product screen, and the .recordly project file is in the recording folder.
- Real product recordings and scenes generated from text are labeled separately in the file and in the captions.
- Spending alerts are on in Google Cloud and in any generation service accounts, and there is no unexpected spending for this video.
What you pay for
The items are separate, not a total; which ones you need depends on the path you set up. Prices change, so check the source of each item.
- SubscriptionCoding assistant
OpenMontage needs an assistant that can read and run code; the assistant's own plan and price are on the developer's page. The documentation lists no charge for the OpenMontage repository itself. source
- API usageGoogle Text-to-Speech (Turkish Chirp 3 HD voice)
According to Google's pricing page, the first 1 million characters each month are a free allowance, then $30 per million characters; billing must be enabled, and you are charged automatically if you exceed the allowance. (October 17, 2026) source
- API usageGeneration service (optional: AI video and images)
If a generation service is chosen instead of stock, it is billed by usage. OpenMontage shows an estimate before spending; the default total cap is $10, the approval threshold for a single operation is $0.50, and both are adjustable. (October 17, 2026) source
- No costLicensed stock (Pexels, Pixabay)
According to the Pexels license page, use is free and attribution is not required; selling on another stock platform, implying brand endorsement and portraying people negatively are prohibited. When using the Pexels API, however, a visible link to Pexels and, where possible, photographer credit are expected; the default limit is 200 requests per hour and 20,000 per month. For Pixabay, the full license, not the summary, is binding; selling content on its own and misleading use are prohibited. Keep the source of every file. The Pixabay API documentation also requires the source to be credited when results are shown and sets a limit of 100 requests/60 sec. source
- SubscriptionRemotion license
Under the Remotion 4.x license, individuals, for-profit companies with up to 3 employees, non-profit organizations and evaluators not yet using it commercially can use it for free; for-profit organizations of a certain size must get a Company License. LICENSE.md says the license will change in Remotion 5.0. It isn't free for every business; if you're near the threshold, see remotion.pro/license. source
- No costOpenMontage and Recordly licenses
Both are AGPL-3.0 open source. The documentation lists no charge for using them; if you'll modify and distribute their code, read the license terms. Third-party models and media are not under the same license. source
- Setup serviceSetup service
You can do the setup yourself; if you'd like support from DijiKoçum on the steps where you get stuck, the scope is agreed in a call. source
- SubscriptionAutoAE (alternative)
The free plan is listed on the site as 'Non-commercial use only', watermarked, 720p and limited to a one-time 500 credits; for a business video, look at the paid plans. source
Sources
- OpenMontage README (pinned commit) · Source code · read October 17, 2026
- OpenMontage provider guide (docs/PROVIDERS.md) · Source code · read October 17, 2026
- OpenMontage repository commit (AGPL-3.0, no release tag) · Source code · read October 17, 2026
- OpenMontage Google TTS tool (google_tts.py) · Source code · read October 17, 2026
- npm ci docs · Official documentation · read October 17, 2026
- winget FFmpeg package manifest (Gyan.FFmpeg 9.0.2) · Source code · read October 17, 2026
- FFmpeg download page · Vendor page · read October 17, 2026
- Google Cloud Text-to-Speech: voices and types · Official documentation · read October 17, 2026
- Google Cloud Text-to-Speech pricing · Official documentation · read October 17, 2026
- Remotion license (LICENSE.md) · Source code · read October 17, 2026
- HyperFrames (HeyGen) repository and npm registry entry · Source code · read October 17, 2026
- Recordly README · Source code · read October 17, 2026
- Recordly v1.4.0 release and SHA256SUMS.txt · Source code · read October 17, 2026
- Pexels license · Vendor page · read October 17, 2026
- Pixabay content license summary · Vendor page · read October 17, 2026
- Piper tr_TR dfki voice model card · Source code · read October 17, 2026
- Shotbase · Vendor page · read October 17, 2026
- Raylight · Vendor page · read October 17, 2026
- AutoAE · Vendor page · read October 17, 2026
- OpenMontage transcription tool (transcriber.py) · Source code · read October 17, 2026
- OpenMontage .env.example · Source code · read October 17, 2026
- OpenMontage Makefile · Source code · read October 17, 2026
- faster-whisper (PyPI) · Vendor page · read October 17, 2026
- Pexels API docs · Vendor page · read October 17, 2026
- AutoAE pricing · Vendor page · read October 17, 2026
- Recordly language configuration (src/i18n/config.ts) · Source code · read October 17, 2026
- Pixabay API docs · Vendor page · read October 17, 2026
- OpenMontage tool registry (tool_registry.py) · Source code · read October 17, 2026
- OpenMontage requirements.txt · Source code · read October 17, 2026
You can set it up yourself; we can do the step you get stuck on together
Check the steps you want. The request form receives the system name and your selected steps as a visible summary that you can edit. There is no need to share any password or API key.
If you are looking for another route
The guide is free and needs no sign-up; you can follow the steps here yourself. If you’d like professional support at some point, choose the option that fits your needs. This doesn’t affect the rankings in the guide.