Automatically Add Video Captions with n8n and Google Drive
By Jessica B
· 5 minutes read
If your team collects videos in Google Drive, a captioning workflow can turn that folder into a queue: a new clip arrives, ZapCap renders its captions, and the finished video returns to a delivery folder. You can keep reviewing the final result while automating the transfer and processing steps.
The starting point is the existing ZapCap and Google Drive workflow on n8n. It connects a Drive trigger, caption processing, status checks and delivery back to Drive. This guide explains how to configure that pattern and avoid common problems before using it for ongoing client work.
What you need
Have an n8n instance, a Google Drive account connected to n8n, and a ZapCap account with API access and enough rendering credit for your test. A workflow template being free to import does not make the connected services free to run. Check your n8n plan and ZapCap pricing before processing a folder of videos.
Create two Drive folders: one for source clips and another for captioned output. Give them unambiguous names, such as “Caption input” and “Caption output.” Separating them prevents a finished video from entering the same input queue again.
Choose a short sample clip with clear speech, a proper name and one longer sentence. That gives you something useful to inspect for transcription, timing and line wrapping after the workflow runs.
1. Import the workflow and connect your accounts
Open the template and import it into your n8n instance. Keep the workflow inactive while you configure it. Review each node's credentials and any example folder or file values: an imported workflow still needs access to your accounts.
Connect Google Drive through n8n's credential flow. Configure the ZapCap requests with your own API credentials, following the ZapCap API documentation. Store the key in credentials rather than a visible text field that could be copied into a shared workflow.
n8n's HTTP Request node supports header authentication, JSON bodies and file uploads. These are separate settings: a correct key will not fix a request that sends the wrong kind of file data.
2. Point the trigger at your input folder
Select the source folder in the Google Drive trigger, then run a manual test using the sample clip. Inspect the trigger output to confirm that it refers to the file you intended to process.
Keep the source file's identifier and filename available throughout the workflow. Those values make it easier to associate a completed video with the original upload and to avoid processing the same source twice.
For a team workflow, decide what counts as ready for captioning. A dedicated folder is often easier to operate than watching every upload in a shared drive. A colleague can move an approved clip into that folder when editing is complete.
3. Send usable video data to ZapCap
Check how the imported template transfers the source video. A browser sharing page and a downloadable media file are different inputs. If a request expects a video URL, confirm that the service can retrieve the actual video from that URL. Do not assume a Drive link works simply because it opens while you are signed in.
For private-file workflows, n8n's Google Drive file operations support downloading a file into a binary field. An HTTP upload can then send that binary data using the upload format required by the API. Preserve the binary field name when mapping between nodes.
Keep the template's upload and caption-task steps separate. Save the video and task identifiers returned by the API so that subsequent status checks refer to the work already submitted. See the subtitle API overview for the video-to-captioned-video workflow.
4. Wait for the existing task to finish
Caption rendering is asynchronous. Accepting a request does not mean the finished video is ready to download.
The template uses a wait-and-check pattern. Configure its branches around the actual task response: continue waiting while processing is underway, download after completion, and stop with a useful error when the task fails. n8n's Wait node can pause execution between checks.
Set a maximum wait or attempt count for your workflow. A job should not poll forever. If the check reaches that limit, retain the task ID for investigation instead of automatically creating another captioning task. Repeated submission can create duplicate outputs and additional processing charges.
5. Save and review the captioned video
Download the completed result as a file and send it to the output folder. In n8n, the HTTP response can be returned as a file; map that output field into the Drive upload node.
Use a filename that keeps the source recognisable, such as the original name plus a captioned suffix. For regular production, record the source ID, task ID and output file ID together. This is a suggested workflow record, not a setting the template necessarily adds for you.
Watch the output before enabling unattended processing. Check the first and last captions, proper names, punctuation and any line that approaches the edge of the frame. Confirm that the visual style suits the intended destination. A successful automation run only proves that the steps completed; it does not replace an editorial check.
Troubleshooting your first run
If the trigger sees no file, check the selected folder and Drive credentials. If the upload fails, inspect whether you passed video data or a sharing-page URL. If a download step runs too early, inspect the completion branch. If output files appear twice, inspect repeated triggers and retries before changing caption settings.
When a request times out, first check the saved task. The original job may still be processing. Recovering its result is usually a better next step than submitting the same source again.
Move from a sample to a repeatable workflow
After one clip works, test a small group with different filenames and durations. Confirm that every output maps to the correct source, that failures stop cleanly, and that the output folder is not watched by the input trigger. Then activate the workflow at a volume your accounts can support.
For a workflow that receives completion events instead of polling, explore ZapCap webhook captioning. That is a separate implementation choice from the template's wait-and-check flow.
Ready to build? Open the ZapCap API dashboard, confirm your access and credits, and start with one representative clip. Once the output meets your requirements, the same pattern can support your recurring video queue.

Jessica B
Jessica is the owner of Videolize and a seasoned video editor with 11 years of experience. She shares actionable insights on ZapCap, helping creators boost engagement with AI tools.

