L'API ora supporta la possibilità di contrassegnare le trasmissioni
live come "destinate ai bambini" e la risorsa
liveBroadcast ora contiene una
proprietà che identifica lo stato "destinato ai bambini" della trasmissione live. I Termini di servizio dei servizi API di YouTube e le Norme per gli sviluppatori sono stati aggiornati anche il 10 gennaio 2020. Per ulteriori
informazioni, consulta le cronologie delle revisioni del
servizio API YouTube Live Streaming e dei
Termini di servizio dei servizi API di YouTube.
Una risorsa liveBroadcast rappresenta un evento che verrà trasmesso in streaming, utilizzando video in diretta, su YouTube.
Metodi
L'API supporta i seguenti metodi per le risorse liveBroadcasts:
- list
- Restituisce un elenco di trasmissioni di YouTube che corrispondono ai parametri della richiesta API. Prova subito.
- insert
- Crea una trasmissione. Prova subito.
- aggiornamento
- Aggiorna una trasmissione. Ad esempio, puoi modificare le impostazioni di trasmissione definite nell'oggetto
contentDetailsdella risorsaliveBroadcast. Prova subito. - elimina
- Elimina una trasmissione. Prova subito.
- bind
- Collega una trasmissione di YouTube a uno stream o rimuove un collegamento esistente tra una trasmissione e uno stream. Una trasmissione può essere associata a un solo stream video, mentre uno stream video può essere associato a più trasmissioni. Prova subito.
- transizione
- Modifica lo stato di una trasmissione live di YouTube e avvia eventuali processi associati al nuovo stato. Ad esempio, quando imposti lo stato di una trasmissione su
testing, YouTube inizia a trasmettere il video allo stream di monitoraggio della trasmissione. Prima di chiamare questo metodo, devi verificare che il valore della proprietàstatus.streamStatusper lo stream associato alla trasmissione siaactive. Prova subito. - cuepoint
- Inserisce un cue point in una trasmissione live. Il cue point potrebbe attivare un'interruzione pubblicitaria.
Rappresentazione delle risorse
La seguente struttura JSON mostra il formato di una risorsa liveBroadcasts:
{
"kind": "youtube#liveBroadcast",
"etag": etag,
"id": string,
"snippet": {
"publishedAt": datetime,
"channelId": string,
"title": string,
"description": string,
"thumbnails": {
(key): {
"url": string,
"width": unsigned integer,
"height": unsigned integer
}
},
"scheduledStartTime": datetime,
"scheduledEndTime": datetime,
"actualStartTime": datetime,
"actualEndTime": datetime,
"isDefaultBroadcast": boolean,
"liveChatId": string
},
"status": {
"lifeCycleStatus": string,
"privacyStatus": string,
"recordingStatus": string,
"madeForKids": string,
"selfDeclaredMadeForKids": string,
},
"contentDetails": {
"boundStreamId": string,
"boundStreamLastUpdateTimeMs": datetime,
"monitorStream": {
"enableMonitorStream": boolean,
"broadcastStreamDelayMs": unsigned integer,
"embedHtml": string
},
"enableEmbed": boolean,
"enableDvr": boolean,
"recordFromStart": boolean,
"enableClosedCaptions": boolean,
"closedCaptionsType": string,
"projection": string,
"enableLowLatency": boolean,
"latencyPreference": boolean,
"enableAutoStart": boolean,
"enableAutoStop": boolean,
"availabilityConfig": {
"globalConfig": {
"excludedRegionCodes": [
string
],
"interval": {
"startTime": datetime,
"endTime": datetime
}
},
"regionsConfig": {
"regionIntervals": [
{
"regionCode": string,
"interval": {
"startTime": datetime,
"endTime": datetime
}
}
]
}
}
},
"statistics": {
"totalChatCount": unsigned long
},
"monetizationDetails": {
"adsMonetizationStatus": string,
"eligibleForAdsMonetization": boolean,
"cuepointSchedule": {
"enabled": boolean,
"pauseAdsUntil": datetime,
"ytOptimizedCuepointConfig": string,
"creatorCuepointConfig": {
"scheduleStrategy": string,
"repeatIntervalSecs": unsigned integer
}
}
}
}Proprietà
La tabella seguente definisce le proprietà visualizzate in questa risorsa:
| Proprietà | |
|---|---|
kind |
stringIdentifica il tipo di risorsa API. Il valore sarà youtube#liveBroadcast. |
etag |
etagL'ETag di questa risorsa. |
id |
stringL'ID che YouTube assegna per identificare in modo univoco la trasmissione. |
snippet |
objectL'oggetto snippet contiene i dettagli di base dell'evento, tra cui titolo, descrizione, ora di inizio e ora di fine. |
snippet.publishedAt |
datetimeLa data e l'ora in cui la trasmissione live è stata aggiunta alla programmazione delle live di YouTube. Il valore è specificato nel formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
snippet.channelId |
stringL'ID utilizzato da YouTube per identificare in modo univoco il canale che pubblica la trasmissione. |
snippet.title |
stringIl titolo della trasmissione. Tieni presente che la trasmissione rappresenta esattamente un video di YouTube. Puoi impostare questo campo modificando la risorsa di trasmissione o impostando il campo title della risorsa video corrispondente. |
snippet.description |
stringLa descrizione della trasmissione. Come per title, puoi impostare questo campo modificando la risorsa di trasmissione o impostando il campo description della risorsa video corrispondente. |
snippet.thumbnails |
objectUna mappa di immagini in miniatura associate alla trasmissione. Per ogni oggetto nidificato in questo oggetto, la chiave è il nome dell'immagine in miniatura e il valore è un oggetto che contiene altre informazioni sulla miniatura. |
snippet.thumbnails.(key) |
objectI valori chiave validi sono:
|
snippet.thumbnails.(key).url |
stringL'URL dell'immagine. |
snippet.thumbnails.(key).width |
unsigned integerLa larghezza dell'immagine. |
snippet.thumbnails.(key).height |
unsigned integerL'altezza dell'immagine. |
snippet.scheduledStartTime |
datetimeLa data e l'ora in cui è pianificato l'inizio della trasmissione. Il valore è specificato nel formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). Creator Studio supporta la possibilità di creare una trasmissione senza programmare un orario di inizio. In questo caso, la trasmissione inizia ogni volta che il proprietario del canale avvia lo streaming. Per queste trasmissioni, il valore datetime corrisponde all'epoca Unix zero e non può essere modificato utilizzando l'API o in Creator Studio. |
snippet.scheduledEndTime |
datetimeLa data e l'ora in cui è prevista la fine della trasmissione. Il valore è specificato nel formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). Se una risorsa liveBroadcast non specifica un valore per questa proprietà, la trasmissione è pianificata per continuare a tempo indeterminato. Allo stesso modo, se non specifichi un valore per questa proprietà, YouTube considera la trasmissione come se dovesse continuare all'infinito. |
snippet.actualStartTime |
datetimeLa data e l'ora in cui è iniziata effettivamente la trasmissione. Queste informazioni sono disponibili solo quando lo stato della trasmissione è live. Il valore è specificato nel formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). |
snippet.actualEndTime |
datetimeLa data e l'ora in cui è terminata effettivamente la trasmissione. Queste informazioni sono disponibili solo quando lo stato della trasmissione è complete. Il valore è specificato nel formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). |
snippet.isDefaultBroadcast |
boolean
Questa proprietà verrà ritirata a partire dal 1° settembre 2020. A quel punto, YouTube
interromperà la creazione di uno stream e di una trasmissione predefiniti quando un canale viene abilitato per il live
streaming. Per ulteriori dettagli, consulta l'annuncio
sul ritiro.
Questa proprietà indica se questa trasmissione è quella predefinita.Come funzionano le trasmissioni predefinite Quando un canale YouTube viene abilitato per il live streaming, YouTube crea uno stream predefinito e una trasmissione predefinita per il canale. Lo stream definisce il modo in cui il proprietario del canale invia video in diretta a YouTube, mentre la trasmissione è il modo in cui gli spettatori possono vedere lo stream predefinito. Il proprietario di un canale può utilizzare i metodi liveStreams.list e liveBroadcasts.list per identificare queste risorse.Quando un canale inizia a trasmettere video al suo stream predefinito, il video è visibile nella trasmissione predefinita del canale. Al termine dello stream, YouTube converte la trasmissione completata in un video di YouTube e gli assegna un ID video di YouTube. Una volta completata la conversione, il video viene incluso nell'elenco dei video caricati del canale. Il video non è disponibile subito dopo la fine della trasmissione e la durata del ritardo è correlata alla durata effettiva della trasmissione. |
snippet.liveChatId |
stringL'ID della chat live di YouTube della trasmissione. Con questo ID, puoi utilizzare i metodi della risorsa liveChatMessage per recuperare, inserire o eliminare i messaggi di chat. Puoi anche aggiungere o rimuovere moderatori della chat, impedire agli utenti di partecipare alle chat live o rimuovere i ban esistenti. |
status |
objectL'oggetto status contiene informazioni sullo stato dell'evento. |
status.lifeCycleStatus |
stringLo stato della trasmissione. Lo stato può essere aggiornato utilizzando il metodo liveBroadcasts.transition dell'API.I valori validi per questa proprietà sono:
|
status.privacyStatus |
stringLo stato della privacy della trasmissione. Tieni presente che la trasmissione rappresenta esattamente un video di YouTube, pertanto le impostazioni della privacy sono identiche a quelle supportate per i video. Inoltre, puoi impostare questo campo modificando la risorsa di trasmissione o impostando il campo privacyStatus della risorsa video corrispondente.I valori validi per questa proprietà sono:
|
status.recordingStatus |
stringLo stato di registrazione della trasmissione. I valori validi per questa proprietà sono:
|
status.madeForKids |
booleanQuesto valore indica se la trasmissione è designata come rivolta ai minori. Il valore di questa proprietà è di sola lettura. |
status.selfDeclaredMadeForKids |
booleanIn una liveBroadcasts.insert
richiesta, questa proprietà consente al proprietario del canale di designare la trasmissione come rivolta ai minori. In una richiesta liveBroadcasts.list, il valore della proprietà viene restituito solo se il proprietario del canale ha autorizzato la richiesta API. |
contentDetails |
objectL'oggetto contentDetails contiene informazioni sui contenuti video dell'evento, ad esempio se i contenuti possono essere mostrati in un video player incorporato o se verranno archiviati e quindi disponibili per la visualizzazione al termine dell'evento. |
contentDetails.boundStreamId |
stringQuesto valore identifica in modo univoco l' live stream associato alla trasmissione. |
contentDetails.boundStreamLastUpdateTimeMs |
datetimeLa data e l'ora dell'ultimo aggiornamento del live streaming a cui fa riferimento boundStreamId. |
contentDetails.monitorStream |
objectL'oggetto monitorStream contiene informazioni sul flusso di monitoraggio, che l'emittente può utilizzare per esaminare i contenuti dell'evento prima che il flusso di trasmissione venga mostrato pubblicamente. |
contentDetails.monitorStream.enableMonitorStream |
booleanQuesto valore determina se il flusso di monitoraggio è abilitato per la trasmissione. Se lo stream di monitoraggio è attivato, YouTube trasmetterà i contenuti dell'evento su uno stream speciale destinato solo al consumo dell'emittente. L'emittente può utilizzare lo stream per rivedere i contenuti dell'evento e anche per identificare i momenti ottimali per inserire i cue point. Devi impostare questo valore su true se intendi avere una fase testing per la tua trasmissione o se vuoi avere un ritardo di trasmissione per il tuo evento. Inoltre, se il valore di questa proprietà è true, devi impostare la trasmissione sullo stato testing prima di poterla impostare sullo stato live. Se il valore della proprietà è false, la trasmissione non può avere una fase testing, quindi puoi passare direttamente allo stato live.Quando update a broadcast, questa proprietà deve essere impostata se la tua richiesta API include la parte contentDetails nel valore del parametro part. Tuttavia, quando insert a broadcast, la proprietà è facoltativa e ha un valore predefinito di true.Importante: questa proprietà non può essere aggiornata una volta che la trasmissione è nello stato testing o live. |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integerSe hai impostato la proprietà enableMonitorStream su true, questa proprietà determina la durata del ritardo di trasmissione live.Quando update a broadcast, questa proprietà deve essere impostata se la tua richiesta API include la parte contentDetails nel valore del parametro part. Tuttavia, quando insert a broadcast, la proprietà è facoltativa e ha un valore predefinito di 0. Questo valore indica che la trasmissione non ha un ritardo di trasmissione. Nota:questa proprietà non può essere aggiornata una volta che la trasmissione si trova nello stato testing o live. |
contentDetails.monitorStream.embedHtml |
stringCodice HTML che incorpora un player che riproduce lo stream del monitor. |
contentDetails.enableEmbed |
booleanQuesta impostazione indica se il video della trasmissione può essere riprodotto in un player incorporato. Se scegli di archiviare il video (utilizzando la proprietà enableArchive), questa impostazione verrà applicata anche al video archiviato.Quando update a broadcast, questa proprietà deve essere impostata se la tua richiesta API include la parte contentDetails nel valore del parametro part. Tuttavia, quando insert a broadcast, la proprietà è facoltativa e ha un valore predefinito di true.Nota:questa proprietà non può essere aggiornata una volta che la trasmissione si trova nello stato testing o live. |
contentDetails.enableDvr |
booleanQuesta impostazione determina se gli spettatori possono accedere ai controlli DVR durante la visione del video. I controlli DVR consentono allo spettatore di controllare l'esperienza di riproduzione video mettendo in pausa, riavvolgendo o mandando avanti velocemente i contenuti. Il valore predefinito di questa proprietà è true. Quando update a broadcast, questa proprietà deve essere impostata se la tua richiesta API include la parte contentDetails nel valore del parametro part. Tuttavia, quando insert a broadcast, la proprietà è facoltativa e ha un valore predefinito di true.Importante:devi impostare il valore su true e anche il valore della proprietà enableArchive su true se vuoi rendere disponibile la riproduzione immediatamente dopo la fine della trasmissione. Inoltre, questa proprietà non può essere aggiornata una volta che la trasmissione è nello stato testing o live. |
contentDetails.recordFromStart |
booleanQuesta impostazione indica se YouTube avvierà automaticamente la registrazione della trasmissione dopo che lo stato dell'evento cambia in "In diretta". Il valore predefinito di questa proprietà è true e può essere impostato su false solo se il canale di trasmissione può disattivare le registrazioni per le trasmissioni live.Se il tuo canale non dispone dell'autorizzazione per disattivare le registrazioni e tenti di inserire una trasmissione con la proprietà recordFromStart impostata su false, l'API restituirà un errore Forbidden. Inoltre, se il tuo canale non dispone di questa autorizzazione e tenti di aggiornare una trasmissione per impostare la proprietà recordFromStart su false, l'API restituirà un errore modificationNotAllowed.Quando update a broadcast, questa proprietà deve essere impostata se la tua richiesta API include la parte contentDetails nel valore del parametro part. Tuttavia, quando insert a broadcast, la proprietà è facoltativa e ha un valore predefinito di true.Importante:devi anche impostare il valore della proprietà enableDvr su true se vuoi che la riproduzione sia disponibile immediatamente dopo la fine della trasmissione. Se imposti il valore di questa proprietà su true ma non imposti anche la proprietà enableDvr su true, potrebbe verificarsi un ritardo di circa un giorno prima che il video archiviato sia disponibile per la riproduzione.Nota:questa proprietà non può essere aggiornata una volta che la trasmissione si trova nello stato testing o live. |
contentDetails.enableClosedCaptions |
booleanQuesta proprietà è stata ritirata a partire dal 17 dicembre 2015. Utilizza invece la proprietà contentDetails.closedCaptionsType.Questa impostazione indica se i sottotitoli codificati HTTP POST sono attivi per questa trasmissione. Per i client API che utilizzano già questa proprietà:
|
contentDetails.closedCaptionsType |
stringNota: questa proprietà sostituisce la proprietà contentDetails.enableClosedCaptions.Questa proprietà indica se i sottotitoli codificati sono attivi per la trasmissione e, in caso affermativo, il tipo di sottotitoli codificati che stai fornendo:
|
contentDetails.projection |
stringIl formato di proiezione di questa trasmissione. Il valore predefinito della proprietà è rectangular.I valori validi per questa proprietà sono:
|
contentDetails.enableLowLatency |
booleanIndica se questa trasmissione deve essere codificata per lo streaming a bassa latenza. Uno stream a bassa latenza può ridurre il tempo necessario per rendere visibile il video agli utenti che guardano una trasmissione, anche se può influire sulla risoluzione per gli spettatori dello stream. |
contentDetails.latencyPreference |
stringIndica quale impostazione di latenza utilizzare per questa trasmissione. Questa proprietà può essere utilizzata al posto di enableLowLatency, che non supporta ultraLow.Uno stream a bassa latenza può ridurre il tempo necessario per rendere visibile il video agli utenti che guardano una trasmissione, anche se può influire sulla fluidità della riproduzione. Uno stream a latenza molto bassa riduce ulteriormente il tempo necessario per rendere visibile il video agli spettatori, semplificando l'interazione con loro, ma la latenza molto bassa non supporta i sottotitoli codificati o risoluzioni superiori a 1080p. I valori validi per questa proprietà sono:
|
contentDetails.enableAutoStart |
booleanIndica se questa trasmissione deve avviarsi automaticamente quando inizi lo streaming video sul live stream collegato. |
contentDetails.enableAutoStop |
booleanIndica se questa trasmissione deve interrompersi automaticamente circa un minuto dopo che il proprietario del canale interrompe lo streaming video sul flusso video associato. |
contentDetails.availabilityConfig |
objectLa configurazione della disponibilità della trasmissione. Utilizzato per impostare la disponibilità di regioni specifiche o bloccare regioni specifiche. È facoltativo: se non è impostato, non viene applicato. |
contentDetails.availabilityConfig.globalConfig |
objectLa configurazione della disponibilità globale della trasmissione. Il video è disponibile in tutte le regioni, ad eccezione di quelle specificate nell'elenco excludedRegionCodes. |
contentDetails.availabilityConfig.globalConfig.excludedRegionCodes |
list (string)Un elenco delle regioni in cui il video è bloccato. |
contentDetails.availabilityConfig.globalConfig.interval |
objectIl periodo di tempo predefinito in cui il video è disponibile per tutte le regioni non bloccate. Nota:questa proprietà non è supportata per le trasmissioni live imminenti o attive. |
contentDetails.availabilityConfig.globalConfig.interval.startTime |
datetimeLa data e l'ora in cui il video diventa disponibile. Se non specificato, il video è già disponibile. Il valore è specificato nel formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
contentDetails.availabilityConfig.globalConfig.interval.endTime |
datetimeLa data e l'ora in cui il video non sarà più disponibile. Se non specificato, il video è disponibile per sempre. Gli orari di inizio e di fine specificati non possono essere successivi a cinque anni. Il valore è specificato nel formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
contentDetails.availabilityConfig.regionsConfig |
objectLa configurazione della disponibilità regionale della trasmissione. Il video è disponibile solo nelle regioni specificate. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals |
list (object)Un elenco di regioni e finestre temporali in cui il video è disponibile. Se una regione viene specificata più volte, viene utilizzata l'unione di tutti gli intervalli. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.regionCode |
stringLa regione in cui è disponibile il video. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval |
objectLa finestra temporale in cui il video è disponibile per la regione specificata. Nota:questa proprietà non è supportata per le trasmissioni live imminenti o attive. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval.startTime |
datetimeLa data e l'ora in cui il video diventa disponibile nella regione specificata. Se non specificato, il video è già disponibile. Il valore è specificato nel formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval.endTime |
datetimeLa data e l'ora in cui il video non sarà più disponibile nella regione specificata. Se non specificato, il video è disponibile per sempre. Gli orari di inizio e di fine specificati non possono essere successivi a cinque anni. Il valore è specificato nel formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
statistics |
objectL'oggetto statistics contiene statistiche relative a una trasmissione live. I valori di queste statistiche possono cambiare durante la trasmissione e possono essere recuperati solo mentre la trasmissione è in diretta. |
statistics.totalChatCount |
unsigned longIl numero totale di messaggi della chat live associati alla trasmissione. La proprietà e il relativo valore sono presenti se la trasmissione è visibile all'utente, la funzionalità di chat live è attivata e la trasmissione include almeno un messaggio. Tieni presente che questa proprietà non specificherà un valore al termine della trasmissione. Pertanto, questa proprietà non identificherebbe il numero di messaggi della chat per un video archiviato di una trasmissione live completata. |
monetizationDetails |
objectL'oggetto monetizationDetails contiene informazioni sui dettagli di monetizzazione dello stream, ad esempio se l'inserimento automatico degli annunci è attivato o se l'inserimento degli annunci mid-roll è ritardato. |
monetizationDetails.adsMonetizationStatus |
stringQuesta proprietà indica se gli annunci mid-roll sono attivati per una trasmissione video. I valori validi sono on e off. |
monetizationDetails.eligibleForAdsMonetization |
stringQuesta proprietà indica se una trasmissione video è idonea per gli annunci mid-roll. Una trasmissione potrebbe non essere idonea per vari motivi, ad esempio un rivendicazione esistente o un canale non configurato per la monetizzazione. |
monetizationDetails.cuepointSchedule |
objectL'oggetto cuepointSchedule specifica le impostazioni di automazione degli annunci per la
trasmissione. |
monetizationDetails.cuepointSchedule.enabled |
booleanQuesto valore determina se gli annunci vengono inseriti automaticamente nella trasmissione. Se il valore è true, YouTube inserirà automaticamente gli annunci mid-roll nella trasmissione. La pianificazione
per la pubblicazione degli annunci sarà determinata dal valore degli altri campi dell'oggetto
monetizationDetails.cuepointSchedule.
|
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetimeQuesto valore specifica che YouTube non deve inserire annunci mid-roll nella trasmissione fino alla data e all'ora specificate. Il valore è specificato nel formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). Il valore deve essere impostato su una data e ora future per mettere in pausa gli annunci; il valore del campo può anche essere impostato su una data e ora passate o su un valore vuoto per riattivare gli annunci. |
monetizationDetails.cuepointSchedule.ytOptimizedCuepointConfig |
stringQuesto campo specifica l'opzione selezionata per i cue point pubblicitari inseriti automaticamente. Il campo può specificare una delle tre modalità:
|
monetizationDetails.cuepointSchedule.creatorCuepointConfig |
objectL'oggetto creatorCuepointConfig specifica l'opzione di automazione degli annunci, che consente al creator di scegliere la modalità di visualizzazione dei mid-roll. |
monetizationDetails.cuepointSchedule.creatorCuepointConfig.scheduleStrategy |
stringQuesto valore specifica la strategia che YouTube deve seguire per la pianificazione dei cue point. I valori validi sono:
|
monetizationDetails.cuepointSchedule.creatorCuepointConfig.repeatIntervalSecs |
unsigned integerQuesto valore specifica l'intervallo, in secondi, tra l'inserimento automatico degli annunci durante una trasmissione. Ad esempio, se il valore è 360, YouTube può inserire i cue point per gli annunci mid-roll a intervalli di sei minuti.Nota:
|