Snimak Google OAuth permission ekrana sa istaknutim delovima.
Tehnika3 min čitanja

Šta tačno traži `youtube.force-ssl`. I zašto

Google traži strašno zvučan scope. Razlažemo šta zaista radimo, šta ne diramo, i kako u dve sekunde povući pristup.

Kad povežete YouTube kanal sa Titlomatom, Google vam pokaže ekran sa ovom rečenicom:

"View, edit, and permanently delete your YouTube videos, ratings, comments, and captions."

Većina ljudi tu pomisli „obrisati moje snimke?" i klikne nazad. To je razumna reakcija. Pišemo ovaj članak da vam pokažemo šta zaista tražimo, a šta ne.

Zašto Google traži taj scope

YouTube Data API ima nekoliko OAuth opsega. Onaj koji omogućava upload titlova na vaš video je jedini koji se zove https://www.googleapis.com/auth/youtube.force-ssl. Google ga grupiše sa ostalim „edit" pravima jer tehnički omogućava izmenu objekata na vašem kanalu. Uključujući i brisanje. To je Google-ova kategorizacija, ne naša namera.

Kratko: ne postoji „samo upload titlova" varijanta. Da bi Titlomat radio ono za šta ste se prijavili. Automatski učitao srpski i engleski caption track na vaš video. Moramo tražiti opseg koji formalno može i više od toga.

Šta naš backend zaista radi

Ovo su svi pozivi prema YouTube Data API-ju iz našeg koda, redom kako se dešavaju:

  1. channels.list: odmah nakon povezivanja, da pročitamo ID, naziv i thumbnail vašeg kanala. Čuvamo ih da znamo kako se zovete.
  2. videos.list: kad pokrenete obradu snimka, da pročitamo metapodatke (naslov, opis, jezik, dužinu). Ne čitamo komentare, ne čitamo statistiku.
  3. captions.insert: kad je transkript spreman, da učitamo SRT na vaš snimak kao novi caption track imenovan „Titlomat (sr)" ili „Titlomat (en)".
  4. captions.update: ako ste prethodno objavljen titl ručno menjali u našem review UI-ju, ažuriramo postojeći caption track umesto da napravimo duplikat.

I to je sve. Pet poziva, jasan ulaz, jasan izlaz.

Šta nikad ne radimo

Iako nam scope tehnički dozvoljava, naš kod nikad ne poziva sledeće:

  • videos.delete: ne postoji u našoj kodnoj bazi.
  • videos.update: ne menjamo vaš naslov, opis, kategoriju, niti privatnost snimka.
  • comments.list / commentThreads.list: ne čitamo komentare ispod snimka. Nikad.
  • subscriptions.list: ne čitamo ko vas prati niti koga vi pratite.
  • channelSections.update: ne diramo organizaciju vašeg kanala.

Kao dodatnu sigurnost, naš YouTube API klijent ima spisak dozvoljenih metoda: ako bi se ikad u budućnosti slučajno dodao poziv kojeg nema na spisku iznad, kod bi odbio da se izvrši. To nije zabrana spolja. To je interna zaštita od regresije.

Limited Use: Na šta se obavezujemo

Google ima posebnu klauzulu pod nazivom API Services User Data Policy: Limited Use koja ograničava šta smeju da rade aplikacije sa pristupom korisničkim podacima preko osetljivih opsega. Mi se obavezujemo na sve tačke:

Ova ograničenja su pismena obaveza i preslikavaju se u našim Uslovima korišćenja i Politici privatnosti.

Kako u dve sekunde povući pristup

Bilo kad, bez objašnjenja, možete:

  1. Otvoriti myaccount.google.com/permissions,
  2. Pronaći „Titlomat" u spisku,
  3. Kliknuti „Remove access".

Google istog trenutka opoziva refresh token, naš sistem prima 401 na sledeći pokušaj sinhronizacije i automatski prevodi kanal u status disconnected. Tokeni se brišu iz naše baze u roku od 24 sata.

Drugi način: kroz naš UI, Podešavanja → YouTube kanali → Odspoji. Iste posledice, samo radi i kad Google ima problema sa krajnjom tačkom za opoziv.

Šta sledi

Ako vam ovo nije dovoljno transparentno, ostavili smo punu specifikaciju u Politici privatnosti, poglavlje 4.5. Tamo svaka kategorija podataka ima rok čuvanja, pravni osnov obrade i ko sve ima pristup.

Nemamo skrivenih opsega. Nemamo pozadinskih poslova koji čitaju komentare. Nismo „YouTube companion" koji vas prati po celom Google-u. Radimo jednu stvar. Učitavamo titlove. I tražimo tačno onoliko pristupa koliko je za to potrebno.


Povežite kanal za 30 sekundi

Pet API poziva, jasan ulaz, jasan izlaz, dve sekunde za opoziv. Probajte besplatno. Bez kartice, prvu nedelju plaćamo mi.