Kad spojite YouTube kanal s Titlomatom, Google vam pokaže ekran s ovom rečenicom:
"View, edit, and permanently delete your YouTube videos, ratings, comments, and captions."
Većina ljudi tu pomisli „obrisati moje videe?" i klikne natrag. To je razumna reakcija. Pišemo ovaj članak da vam pokažemo što doista tražimo, a što ne.
Zašto Google traži taj scope
YouTube Data API ima nekoliko OAuth scope-ova. Onaj koji omogućuje upload titlova na vaš video je jedini koji se zove https://www.googleapis.com/auth/youtube.force-ssl. Google ga grupira s ostalim "edit" pravima jer tehnički omogućuje izmjenu objekata u vašem kanalu — uključujući i brisanje. To je Googleova kategorizacija, ne naša namjera.
Kratko: nema „samo upload titlova" varijante. Da bi Titlomat radio ono za što ste se prijavili — automatski uploadati hrvatski + engleski caption track na vaš video — moramo tražiti scope koji formalno može i više od toga.
Što naš backend zaista radi
Ovo su svi pozivi prema YouTube Data API-ju iz našeg koda, redom kako se događaju:
channels.list— odmah nakon spajanja, da pročitamo ID, naziv i thumbnail vašeg kanala. Pohranjujemo ih da znamo kako se zovete.videos.list— kad pokrenete obradu videa, da pročitamo metapodatke (naslov, opis, jezik, duljinu). Ne čitamo komentare, ne čitamo statistiku.captions.insert— kad je transkript spreman, da uploadamo SRT na vaš video kao novi caption track imenovan „Titlomat (hr)" ili „Titlomat (en)".captions.update— ako ste prethodno objavljen titl ručno editirali u našem review UI-u, ažuriramo postojeći caption track umjesto da napravimo duplikat.
I to je sve. Pet poziva, jasan ulaz, jasan izlaz.
Što nikad ne radimo
Iako nam scope tehnički dopušta, naš kod nikad ne poziva sljedeće:
videos.delete— ne postoji u našoj kodnoj bazi.videos.update— ne mijenjamo vaš naslov, opis, kategoriju, niti privatnost videa.comments.list/commentThreads.list— ne čitamo komentare ispod videa. Nikad.subscriptions.list— ne čitamo tko vas prati niti koga vi pratite.channelSections.update— ne diramo organizaciju vašeg kanala.
Kao dodatnu sigurnost, naš YouTube API klijent ima whitelistu metoda: ako bi se ikad u budućnosti slučajno dodao poziv kojeg nema na popisu iznad, kod bi se odbio izvršiti. To nije zabrana izvana — to je interni guard koji štiti od regresije.
Limited Use — što obvezujemo na to
Google ima posebnu klauzulu pod nazivom API Services User Data Policy — Limited Use koja ograničava što smiju raditi aplikacije s pristupom korisničkim podacima preko sensitive scope-ova. Mi se obvezujemo na sve točke:
Ova ograničenja su pismena obveza i preslikavaju se u našim Uvjetima korištenja i Pravilima privatnosti.
Kako u dvije sekunde povući pristup
Bilo kad, bez objašnjenja, možete:
- Otvoriti myaccount.google.com/permissions,
- Pronaći „Titlomat" u popisu,
- Kliknuti „Remove access".
Google trenutno revocira refresh token, naš sustav prima 401 na sljedeći pokušaj sinkronizacije i automatski prelazi kanal u status disconnected. Tokeni se brišu iz naše baze unutar 24 sata.
Drugi put: kroz naš UI, Postavke → YouTube kanali → Odspoji. Iste posljedice, samo radi i kad Google ima problema s revocation endpointom.
Što slijedi
Ako vam ovo nije dovoljno transparentno, ostavili smo punu specifikaciju u Pravilima privatnosti, poglavlje 4.5. Tamo svaka kategorija podataka ima razdoblje čuvanja, pravnu osnovu obrade i tko sve ima pristup.
Nemamo skrivenih scope-ova. Nemamo background jobova koji čitaju komentare. Nismo „YouTube companion" koji vas prati po cijelom Googleu. Radimo jednu stvar — uploadamo titlove — i tražimo točno onoliko pristupa koliko je za to potrebno.


