Produkt update3 min čitanja

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

Google traži strašan-zvučni scope. Razlažemo što stvarno radimo, što ne diramo, i kako u dvije sekunde povući pristup.

TJ
Tihomir Jauk
Osnivač Titlomata

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:

  1. channels.list — odmah nakon spajanja, da pročitamo ID, naziv i thumbnail vašeg kanala. Pohranjujemo ih da znamo kako se zovete.
  2. videos.list — kad pokrenete obradu videa, da pročitamo metapodatke (naslov, opis, jezik, duljinu). Ne čitamo komentare, ne čitamo statistiku.
  3. captions.insert — kad je transkript spreman, da uploadamo SRT na vaš video kao novi caption track imenovan „Titlomat (hr)" ili „Titlomat (en)".
  4. 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:

  1. Otvoriti myaccount.google.com/permissions,
  2. Pronaći „Titlomat" u popisu,
  3. 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.

PodijeliteLinkedIn

Povezani članci