Utilizza gli ID canale

Jeff Posnick, YouTube Developer Relations – Giugno 2013

Da più di un anno è possibile collegare i profili Google+ ai canali YouTube e abbiamo scritto un post del blog su come alcune delle risposte dell'API YouTube Data v2 sono cambiate in seguito a questo collegamento. Di recente è diventato possibile creare nuovi canali YouTube a cui non è associato un nome utente di YouTube tradizionale, ma che sono identificati esclusivamente dal profilo Google+. Molte delle informazioni contenute in quel post del blog sono ancora valide, ma questa complicazione aggiuntiva invalida alcune supposizioni fondamentali sui canali YouTube, ad esempio che ognuno sarà sempre associato a un nome utente YouTube univoco. Per questo motivo, abbiamo deciso di condividere alcune best practice aggiuntive per scrivere codice che funzioni con tutti i tipi di canali.

ID canale nell'API Data v3

Tutte le operazioni della versione 3 che funzionano con i canali utilizzano gli ID canale esclusivamente come mezzo per identificare i canali. L'ID del canale di un utente YouTube specifico è identico sia nella versione 2 che nella versione 3 dell'API, il che semplifica le migrazioni tra le versioni. Questa dipendenza completa dagli ID canale potrebbe creare confusione per gli sviluppatori che in precedenza erano abituati a passare i nomi utente di YouTube ai metodi dell'API, ma la versione 3 è stata progettata per trattare in modo identico i canali con e senza nomi utente precedenti, il che significa utilizzare gli ID canale ovunque.

Se utilizzi la versione 3 e vuoi recuperare l'ID canale corrispondente all'utente attualmente autorizzato, puoi chiamare il metodo channels.list(part="id", mine=true). Ciò equivale a chiedere il profilo del canale dell'utente default nella versione 2.

Se ti trovi a dover tradurre un nome utente di YouTube precedente arbitrario in un ID canale utilizzando la versione 3 dell'API, puoi effettuare una chiamata channels.list(part="id", forUsername="username") all'API.

Se conosci solo un nome visualizzato e vuoi trovare il canale corrispondente, il metodo search.list(part="snippet", type="channel", q="display name") ti sarà utile. Devi essere preparato a gestire la possibilità che la chiamata restituisca più di un elemento nella risposta, poiché i nomi visualizzati non sono univoci.

ID canale nell'API Data v2

Nota: l'API YouTube Data (v2) è stata ritirata il 26 febbraio 2014 e l'API è stata disattivata. Le applicazioni che utilizzano ancora l'API v2 devono eseguire immediatamente la migrazione all'API v3.

L'aspetto più importante da tenere presente per gli sviluppatori che utilizzano la precedente API Data v2 è che non tutti i canali YouTube hanno un nome utente univoco. Fortunatamente, a ogni canale YouTube è associato un ID canale univoco, rappresentato dal valore nel tag <yt:channelId>. È questo il valore che consigliamo agli sviluppatori di utilizzare al posto dei nomi utente. Ad esempio, se hai un database che mappa gli username di YouTube alle informazioni relative al canale, le voci precedenti dovrebbero continuare a funzionare. I canali esistenti non perderanno i propri nomi utente. Tuttavia, con il passare del tempo, sarà sempre più probabile che tu debba lavorare con canali che non possono essere identificati in modo univoco da un nome utente.

Esistono diversi fattori che semplificano la transizione dai nomi utente agli ID canale. Innanzitutto, l'API Data v2 accetta gli ID canale negli URL delle richieste ovunque accetti i nomi utente di YouTube, il che significa che puoi sostituire facilmente un ID canale nel codice esistente. Ad esempio, poiché UC_x5XG1OV2P6uZZ5FSM9Ttw è l'ID del canale con il nome utente precedente GoogleDevelopers, i seguenti due URL sono richieste API equivalenti:

https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1
https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1

Un'altra cosa da tenere presente è che, ogni volta che effettui richieste v2 autenticate, non devi mai includere il nome utente del canale autorizzato durante la creazione degli URL delle richieste. Puoi sempre utilizzare il valore default al posto di un nome utente (o dell'ID canale). Ad esempio, se vuoi recuperare il feed dei caricamenti video per l'utente attualmente autorizzato, puoi farlo all'indirizzo https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1.