When you connect a YouTube channel to Titlomat, Google shows you a screen with this sentence:
"View, edit, and permanently delete your YouTube videos, ratings, comments, and captions."
Most people read that, think "delete my videos?", and click back. It's a reasonable reaction. We wrote this article to show you what we actually ask for. And what we don't.
Why Google asks for this scope
The YouTube Data API has several OAuth scopes. The one that allows uploading captions to your video is the only one named https://www.googleapis.com/auth/youtube.force-ssl. Google groups it with the other "edit" permissions because it technically allows modifying objects on your channel. Including deletion. That's Google's categorization, not our intent.
In short: there's no "captions-upload only" variant. For Titlomat to do what you signed up for. Automatically upload Croatian and English caption tracks to your video. We have to request a scope that formally allows more than that.
What our backend actually does
These are all the calls our code makes to the YouTube Data API, in the order they happen:
channels.list: right after connecting, to read your channel's ID, name, and thumbnail. We store them so we know who you are.videos.list: when you start processing a video, to read metadata (title, description, language, duration). We don't read comments. We don't read analytics.captions.insert: when a transcript is ready, to upload an SRT to your video as a new caption track namedTitlomat (en)for the translated English captions (and a sibling track for the source language, e.g.Titlomat (hr)).captions.update: if you've manually edited a previously published caption in our review UI, we update the existing caption track instead of creating a duplicate.
That's it. Five calls, clear input, clear output.
What we never do
Even though the scope technically permits it, our code never calls the following:
videos.delete: does not exist anywhere in our codebase.videos.update: we don't change your video's title, description, category, or privacy.comments.list/commentThreads.list: we don't read comments under your videos. Ever.subscriptions.list: we don't read who follows you or who you follow.channelSections.update: we don't touch your channel's layout.
As an extra safeguard, our YouTube API client has a method whitelist: if anyone ever accidentally added a call not on the list above, the code would refuse to execute it. That's not an external prohibition. It's an internal guard against regression.
Limited Use: What we commit to
Google has a specific clause called API Services User Data Policy: Limited Use that restricts what apps with access to user data via sensitive scopes can do. We commit to all of it:
These restrictions are a written commitment and mirror our Terms of Service and Privacy Policy.
How to revoke access in two seconds
At any time, with no explanation needed, you can:
- Open myaccount.google.com/permissions,
- Find "Titlomat" in the list,
- Click "Remove access".
Google revokes the refresh token immediately, our system receives a 401 on the next sync attempt and automatically moves the channel to disconnected status. Tokens are deleted from our database within 24 hours.
Alternative: through our UI, Settings → YouTube channels → Disconnect. Same outcome, and it also works when Google's revocation endpoint is having issues.
What's next
If this still isn't transparent enough, the full specification is in our Privacy Policy, section 4.5. There every data category has its retention period, legal basis for processing, and an access list.
We don't have hidden scopes. We don't have background jobs reading comments. We are not a "YouTube companion" that follows you across all of Google. We do one thing. Upload captions. And we ask for exactly the access required to do it.
Connect a channel in 30 seconds
Five API calls, clear input, clear output, two seconds to revoke. Try it free. No card, the first week is on us.



