Stiamo aggiornando l'API Data in modo che corrisponda al modo in cui YouTube conteggia le visualizzazioni di Shorts.
Scopri di più
Utilizza gli ID canale
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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
.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-11-23 UTC.
[null,null,["Ultimo aggiornamento 2024-11-23 UTC."],[[["\u003cp\u003eYouTube channels can now be identified solely by their Google+ profile, without a traditional YouTube username.\u003c/p\u003e\n"],["\u003cp\u003eThe YouTube Data API v3 exclusively uses channel IDs to identify channels, offering consistency for channels with or without legacy usernames.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can use the \u003ccode\u003echannels.list\u003c/code\u003e method in v3 to retrieve a channel ID based on the authorized user or a legacy username.\u003c/p\u003e\n"],["\u003cp\u003eIn v2, it's crucial to recognize that not every YouTube channel has a unique username, but all have a unique channel ID, which is the recommended identifier.\u003c/p\u003e\n"],["\u003cp\u003eThe deprecated Data API v2 can use channel IDs in place of usernames in request URLs, and \u003ccode\u003edefault\u003c/code\u003e can be used instead of usernames for authenticated v2 requests.\u003c/p\u003e\n"]]],["YouTube introduced channels solely identified by Google+ profiles, lacking traditional usernames. Data API v3 exclusively uses channel IDs to identify channels, simplifying the process for developers. To get the authorized user's channel ID, use `channels.list(part=\"id\", mine=true)`. To translate a username to a channel ID, use `channels.list(part=\"id\", forUsername=\"username\")`. For display names, use `search.list(part=\"snippet\", type=\"channel\", q=\"display name\")`. Data API v2, now deprecated, also utilizes channel IDs, allowing them to replace usernames in requests.\n"],null,["# Work with Channel IDs\n\n*Jeff Posnick, YouTube Developer Relations -- June 2013*\nFor more than a year, it's been possible to link Google+ profiles with YouTube channels, and we've [blogged](http://apiblog.youtube.com/2012/03/youtube-google-api-and-you.html) about how some of the Data API v2 responses have changed as a result of that profile link. More recently, it has become possible to create new YouTube channels that don't have a traditional YouTube username associated with them and, instead, are [solely identified by their Google+ profile](http://youtubecreator.blogspot.com/2013/04/using-google-page-identity-on-youtube.html). Much of the information from that blog post still applies, but this extra wrinkle does invalidate some fundamental assumptions about YouTube channels -- like that each one will always be associated with a unique YouTube username -- and we wanted to follow up with some additional best practices to write code that works with all flavors of channels.\n\nChannel IDs in the Data API v3\n------------------------------\n\nAll v3 operations that work with channels use [channel IDs](/youtube/v3/docs/channels#id) exclusively as a means of identifying those channels. The ID for a specific YouTube user's channel is identical in both v2 and v3 of the API, simplifying migrations between versions. This complete reliance on channel IDs might be perplexing for developers who were previously used to passing YouTube usernames to API methods, but v3 was designed to treat channels with and without legacy usernames identically, and that means using channel IDs everywhere.\n\nIf you are using v3 and want to retrieve the channel ID that corresponds to the currently authorized user, you can call the [channels.list(part=\"id\", mine=true)](https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=id&mine=true) method. This is equivalent to asking for the channel profile of the `default` user in v2.\n\nIf you ever do find yourself with an arbitrary legacy YouTube username that you need to translate into a channel ID using v3 of the API, you can make a [channels.list(part=\"id\", forUsername=\"\u003cvar class=\"apiparam\" translate=\"no\"\u003eusername\u003c/var\u003e\")](https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=id&forUsername=YouTubeDev) call to the API.\n\nIf you only know a display name and are looking to find the corresponding channel, the [search.list(part=\"snippet\", type=\"channel\", q=\"\u003cvar class=\"apiparam\" translate=\"no\"\u003edisplay name\u003c/var\u003e\")](https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet&q=YouTube+for+Developers&type=channel) method will come in handy. You should be prepared to deal with the possibility of the call returning more than one item in the response, since display names are not unique.\n\nChannel IDs in the Data API v2\n------------------------------\n\n**Note:** The YouTube Data API (v2) has been deprecated since February 26, 2014, and the API has been [turned down](http://youtube-eng.blogspot.com/2015/04/bye-bye-youtube-data-api-v2.html). Applications still using the v2 API should migrate to the v3 API immediately.\n\nThe biggest takeaway for developers using the older [Data API v2](/youtube/2.0/developers_guide_protocol_audience) is that you must be aware that **not every YouTube channel has a unique username** . Fortunately, every YouTube channel is guaranteed to have a unique channel ID associated with it, represented by the value in the [`\u003cyt:channelId\u003e` tag](/youtube/2.0/reference#youtube_data_api_tag_yt:channelId), and that's the value that we recommend developers use instead of usernames. For instance, if you have a database that maps YouTube usernames to information about that channel, your older entries should continue to work. (Existing channels won't lose their usernames.) However, as time goes on, it will become more and more likely that you'll have to work with channels that can't be uniquely identified by a username.\n\nA couple of factors simplify the transition from usernames to channel IDs. First, the Data API v2 accepts channel IDs in request URLs wherever it accepts YouTube usernames, meaning that you can seamlessly swap a channel ID into your existing code. For example, since `UC_x5XG1OV2P6uZZ5FSM9Ttw` is the channel ID for the channel with the legacy username `GoogleDevelopers`, the following two URLs are equivalent API requests: \n\n https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1\n https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1\n\nAnother thing to keep in mind is that whenever you're making [authenticated](/youtube/2.0/developers_guide_protocol_authentication) v2 requests, you never need to include the authorized channel's username when constructing request URLs. You can always use the value `default` in place of a username (or channel ID). So if you want to retrieve the video uploads feed for the currently authorized user, for instance, you can do so at `https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1`."]]