LiveBroadcasts

L'API ora supporta la possibilità di contrassegnare le trasmissioni dal vivo come "destinate ai bambini" e la risorsa liveBroadcast ora contiene una proprietà che identifica lo stato "destinato ai bambini" della trasmissione dal vivo. Il 10 gennaio 2020 sono stati aggiornati anche i Termini di servizio dei servizi API di YouTube e le Norme per gli sviluppatori. Per ulteriori informazioni, consulta le cronologie delle revisioni del servizio API YouTube Live Streaming e i Termini di servizio dei servizi API di YouTube.

Una risorsa liveBroadcast rappresenta un evento che verrà trasmesso in streaming, tramite video dal vivo, 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.
inserisci
Crea una trasmissione. Prova subito.
update
Aggiorna una trasmissione. Ad esempio, puoi modificare le impostazioni di trasmissione definite nell'oggetto contentDetails della risorsa liveBroadcast. Prova subito.
elimina
Elimina una trasmissione. Prova subito.
associare
Associa una trasmissione di YouTube a uno stream o rimuove un'associazione 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.
transition
Modifica lo stato di una trasmissione in diretta di YouTube e avvia le eventuali procedure associate 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.streamStatus per lo stream associato alla tua trasmissione sia active. Prova subito.
cuepoint
Inserisce un cue point in una trasmissione dal vivo. Il cue point potrebbe attivare un'interruzione pubblicitaria.

Rappresentazione della risorsa

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
  },
  "statistics": {
    "totalChatCount": unsigned long
  },
  "monetizationDetails": {
      "cuepointSchedule": {
        "enabled": boolean,
        "pauseAdsUntil": datetime,
        "scheduleStrategy": string,
        "repeatIntervalSecs": unsigned integer,
      }
    }
  }
}

Proprietà

La tabella seguente definisce le proprietà visualizzate in questa risorsa:

Proprietà
kind string
Identifica il tipo di risorsa API. Il valore sarà youtube#liveBroadcast.
etag etag
L'Etag di questa risorsa.
id string
L'ID assegnato da YouTube per identificare in modo univoco la trasmissione.
snippet object
L'oggetto snippet contiene i dettagli di base dell'evento, tra cui titolo, descrizione, ora di inizio e ora di fine.
snippet.publishedAt datetime
La data e l'ora in cui la trasmissione è stata aggiunta alla programmazione delle live di YouTube. Il valore è specificato nel formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.channelId string
L'ID utilizzato da YouTube per identificare in modo univoco il canale che pubblica la trasmissione.
snippet.title string
Il 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 string
La 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 object
Una mappa di miniature associate alla trasmissione. Per ogni oggetto nidificato in questo oggetto, la chiave è il nome dell'immagine in miniatura, mentre il valore è un oggetto che contiene altre informazioni sulla miniatura.
snippet.thumbnails.(key) object
Le coppie chiave-valore valide sono:
  • default - L'immagine in miniatura predefinita. La miniatura predefinita di un video, o una risorsa che fa riferimento a un video, come un elemento della playlist o un risultato di ricerca, è larga 120 px e alta 90 px. La miniatura predefinita di un canale è larga 88 px e alta 88 px.
  • medium: una versione dell'immagine in miniatura con una risoluzione più elevata. Per un video (o una risorsa che fa riferimento a un video), l'immagine deve avere una larghezza di 320 pixel e un'altezza di 180 pixel. Per un canale, l'immagine deve avere una larghezza di 240 pixel e un'altezza di 240 pixel.
  • high: una versione ad alta risoluzione dell'immagine in miniatura. Per un video (o una risorsa che fa riferimento a un video), questa immagine è larga 480 px e alta 360 px. Per un canale, l'immagine deve avere una larghezza di 800 pixel e un'altezza di 800 pixel.
snippet.thumbnails.(key).url string
L'URL dell'immagine.
snippet.thumbnails.(key).width unsigned integer
La larghezza dell'immagine.
snippet.thumbnails.(key).height unsigned integer
L'altezza dell'immagine.
snippet.scheduledStartTime datetime
La data e l'ora programmate per 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 programmarne la data e l'ora 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'ora UNIX zero e non può essere modificato tramite l'API o in Creator Studio.
snippet.scheduledEndTime datetime
La data e l'ora di fine della trasmissione programmata. 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 è programmata per continuare a tempo indeterminato. Analogamente, se non specifichi un valore per questa proprietà, YouTube considera la trasmissione come se dovesse continuare a tempo indeterminato.
snippet.actualStartTime datetime
La data e l'ora effettive di inizio della 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 datetime
La data e l'ora in cui è effettivamente terminata 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 sarà abilitato al live streaming. Per ulteriori dettagli, consulta l'annuncio sul ritiro.
Questa proprietà indica se questa è la trasmissione predefinita.

Come funzionano le trasmissioni predefinite

Quando un canale YouTube è abilitato al live streaming, YouTube crea uno stream e una trasmissione predefiniti per il canale. Lo stream definisce il modo in cui il proprietario del canale invia il video in diretta a YouTube, mentre la trasmissione indica in che modo 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 avvia lo streaming di un video nel 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 assegna al video un ID video di YouTube.

Al termine della conversione, il video viene incluso nell'elenco dei video caricati del canale. Il video non è disponibile immediatamente al termine della trasmissione e la durata del ritardo è correlata alla durata effettiva della trasmissione.
snippet.liveChatId string
L'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 della chat. Puoi anche aggiungere o rimuovere moderatori della chat, vietare agli utenti di partecipare alle chat live o rimuovere i divieti esistenti.
status object
L'oggetto status contiene informazioni sullo stato dell'evento.
status.lifeCycleStatus string
Lo stato della trasmissione. Lo stato può essere aggiornato utilizzando il metodo liveBroadcasts.transition dell'API.

I valori validi per questa proprietà sono:
  • complete - La trasmissione è terminata.
  • created: la trasmissione ha impostazioni incomplete, quindi non è pronta per la transizione a uno stato live o testing, ma è stata creata ed è valida.
  • live: la trasmissione è attiva.
  • liveStarting: la trasmissione è in fase di transizione allo stato live.
  • ready: le impostazioni di trasmissione sono complete e la trasmissione può passare a uno stato live o testing.
  • revoked: questa trasmissione è stata rimossa da un'azione di amministrazione.
  • testStarting: la trasmissione è in fase di transizione allo stato testing.
  • testing: la trasmissione è visibile solo al partner.
status.privacyStatus string
Lo 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 broadcast o impostando il campo privacyStatus della risorsa video corrispondente.

I valori validi per questa proprietà sono:
  • private
  • public
  • unlisted
status.recordingStatus string
Lo stato della registrazione della trasmissione.

I valori validi per questa proprietà sono:
  • notRecording
  • recorded
  • recording
status.madeForKids boolean
Questo valore indica se la trasmissione è destinata ai minori. Il valore di questa proprietà è di sola lettura.
status.selfDeclaredMadeForKids boolean
In una richiesta liveBroadcasts.insert, questa proprietà consente al proprietario del canale di indicare che la trasmissione è rivolta ai minori. In una richiesta liveBroadcasts.list, il valore della proprietà viene restituito solo se il proprietario del canale ha autorizzato la richiesta dell'API.
contentDetails object
L'oggetto contentDetails contiene informazioni sui contenuti video dell'evento, ad esempio se i contenuti possono essere mostrati in un video player incorporato o se saranno archiviati e quindi disponibili per la visualizzazione al termine dell'evento.
contentDetails.boundStreamId string
Questo valore identifica in modo univoco il live stream associato alla trasmissione.
contentDetails.boundStreamLastUpdateTimeMs datetime
La data e l'ora dell'ultimo aggiornamento del live streaming a cui fa riferimento boundStreamId.
contentDetails.monitorStream object
L'oggetto monitorStream contiene informazioni sullo stream di monitoraggio, che l'emittente può utilizzare per esaminare i contenuti dell'evento prima che lo stream di trasmissione venga mostrato pubblicamente.
contentDetails.monitorStream.enableMonitorStream boolean
Questo valore determina se lo stream del monitor è abilitato per la trasmissione. Se lo stream di monitoraggio è attivo, YouTube trasmette i contenuti dell'evento su uno stream speciale destinato solo al consumo del programmatore. L'emittente può utilizzare lo stream per esaminare 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 trasmissione o se vuoi avere un ritardo di trasmissione per l'evento. Inoltre, se il valore di questa proprietà è true, devi eseguire la transizione della trasmissione allo stato testing prima di poter passare allo 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 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 quando la trasmissione è nello stato testing o live.
contentDetails.monitorStream.broadcastStreamDelayMs unsigned integer
Se hai impostato la proprietà enableMonitorStream su true, questa determina la durata del ritardo della trasmissione in diretta.

Quando update a broadcast, questa proprietà deve essere impostata se la 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 è nello stato testing o live.
contentDetails.monitorStream.embedHtml string
Codice HTML che incorpora un player che riproduce lo stream del monitor.
contentDetails.enableEmbed boolean
Questa 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 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 è nello stato testing o live.
contentDetails.enableDvr boolean
Questa impostazione determina se gli spettatori possono accedere ai controlli del DVR durante la visione del video. I controlli DVR consentono allo spettatore di controllare l'esperienza di riproduzione dei video mettendoli in pausa, riavvolgendoli o mandandoli avanti velocemente. Il valore predefinito di questa proprietà è true.

Quando update a broadcast, questa proprietà deve essere impostata se la 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 subito dopo la fine della trasmissione. Inoltre, questa proprietà non può essere aggiornata una volta che la trasmissione è nello stato testing o live.
contentDetails.recordFromStart boolean
Questa impostazione indica se YouTube deve avviare automaticamente la registrazione della trasmissione dopo che lo stato dell'evento diventa In diretta.

Il valore predefinito di questa proprietà è true e può essere impostato su false solo se il canale di trasmissione è autorizzato a disattivare le registrazioni per le trasmissioni in diretta.

Se il tuo canale non dispone dell'autorizzazione per disattivare le registrazioni e provi a 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 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 al termine della trasmissione. Se imposti il valore di questa proprietà su true, ma non imposti anche la proprietà enableDvr su true, potrebbe essere necessario attendere 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 è nello stato testing o live.
contentDetails.enableClosedCaptions boolean
Questa proprietà è stata ritirata a partire dal 17 dicembre 2015. Utilizza invece la proprietà contentDetails.closedCaptionsType.

Questa impostazione indica se i sottotitoli codificati POST HTTP sono abilitati per questa trasmissione. Per i client API che utilizzano già questa proprietà:
  • Impostare il valore della proprietà su true è equivalente a impostare la proprietà contentDetails.closedCaptionsType su closedCaptionsHttpPost.
  • Impostare il valore della proprietà su false è equivalente a impostare la proprietà contentDetails.closedCaptionsType su closedCaptionsDisabled.
contentDetails.closedCaptionsType string
Nota: questa proprietà sostituisce la proprietà contentDetails.enableClosedCaptions.

Questa proprietà indica se è abilitato il sottotitolaggio codificato per la trasmissione e, in questo caso, che tipo di sottotitoli stai fornendo:
  • closedCaptionsDisabled: i sottotitoli codificati sono disattivati per la trasmissione in diretta.
  • closedCaptionsHttpPost: invierai i sottotitoli codificati tramite HTTP POST a un URL di importazione associato al tuo live streaming.
  • closedCaptionsEmbedded: i sottotitoli codificati verranno codificati nello stream video utilizzando i formati EIA-608 e/o CEA-708.
contentDetails.projection string
Il formato di proiezione di questa trasmissione. Il valore predefinito della proprietà è rectangular.

I valori validi per questa proprietà sono:
  • 360
  • rectangular
contentDetails.enableLowLatency boolean
Indica se questa trasmissione deve essere codificata per lo streaming a bassa latenza. Uno stream a bassa latenza può ridurre il tempo necessario per la visualizzazione del video da parte degli utenti che guardano una trasmissione, ma può anche influire sulla risoluzione per gli spettatori dello stream.
contentDetails.latencyPreference string
Indica 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 la visualizzazione del video agli utenti che stanno guardando una trasmissione, ma può anche influire sulla fluidità della riproduzione.

Uno stream a latenza molto bassa riduce ulteriormente il tempo necessario perché il video sia visibile agli spettatori, rendendo più facile l'interazione con gli spettatori, mentre
    la latenza molto bassa non supporta i sottotitoli codificati0 più alti di questa proprietà
    0:
  • normal
  • low
  • ultraLow
contentDetails.enableAutoStart boolean
Indica se la trasmissione deve iniziare automaticamente quando avvii lo streaming del video nell'oggetto live stream vincolato.
contentDetails.enableAutoStop boolean
Indica se questa trasmissione deve interrompersi automaticamente circa un minuto dopo che il proprietario del canale ha interrotto lo streaming video nello stream video associato.
statistics object
L'oggetto statistics contiene le statistiche relative a una trasmissione in diretta. I valori di queste statistiche possono cambiare durante la trasmissione e possono essere recuperati solo mentre la trasmissione è in diretta.
statistics.totalChatCount unsigned long
Il 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 contiene almeno un messaggio. Tieni presente che questa proprietà non specifica un valore al termine della trasmissione. Pertanto, questa proprietà non identifica il numero di messaggi della chat per un video archiviato di una trasmissione dal vivo completata.
monetizationDetails object
L'oggetto monetizationDetails contiene informazioni sui dettagli della monetizzazione dello stream, ad esempio se l'automazione degli annunci è attivata o se l'inserimento degli annunci mid-roll è in ritardo.

monetizationDetails.cuepointSchedule object
L'oggetto cuepointSchedule specifica le impostazioni di automazione degli annunci per la trasmissione.
monetizationDetails.cuepointSchedule.enabled boolean
Questo valore determina se gli annunci vengono inseriti automaticamente nella trasmissione. Se il valore è true, YouTube inserirà automaticamente gli annunci mid-roll nella trasmissione. La programmazione della pubblicazione degli annunci verrà determinata dal valore degli altri campi dell'oggetto monetizationDetails.cuepointSchedule.
monetizationDetails.cuepointSchedule.pauseAdsUntil datetime
Questo 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 futura per mettere in pausa gli annunci. Il valore del campo può anche essere impostato su una data e ora futura imminente per riattivare gli annunci con il passare del tempo.
monetizationDetails.cuepointSchedule.scheduleStrategy string
Questo valore specifica la strategia che YouTube deve seguire per programmare i cue point. I valori validi sono:
  • CONCURRENT: i cue point sono programmati alla stessa ora per tutti gli spettatori
  • NON_CONCURRENT: i cue point sono programmati in momenti diversi per spettatori differenti. Questo approccio consente di mostrare gli annunci a una frequenza maggiore, consentendo agli spettatori di ricevere cue point se idonei.
monetizationDetails.cuepointSchedule.repeatIntervalSecs unsigned integer
Questo valore specifica l'intervallo, in secondi, tra l'inserimento automatico degli annunci durante una trasmissione. Ad esempio, se il valore è 300, YouTube può inserire cue point per gli annunci mid-roll a intervalli di cinque minuti.

Tieni presente che il valore specifica il tempo tra l'inizio di cue point successivi. In altre parole, l'intervallo non viene misurato dalla fine di un cue point all'inizio del successivo.