risposta

1

Sì questo è possibile Dal momento che la domanda è aggiornamento, questa soluzione non può che ti dà l'url embed non l'URL HLS, controllare @JAL risposta. con la ressource search.list ei parametri:

* part: id 
* channelId: UCURGpU4lj3dat246rysrWsw 
* eventType: live 
* type: video 

Richiesta:

GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCURGpU4lj3dat246rysrWsw&eventType=live&type=video&key={YOUR_API_KEY} 

Risultato:

"items": [ 
    { 
    "kind": "youtube#searchResult", 
    "etag": "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/enc3-yCp8APGcoiU_KH-mSKr4Yo\"", 
    "id": { 
    "kind": "youtube#video", 
    "videoId": "WVZpCdHq3Qg" 
    } 
    }, 

quindi ottenere il WVZpCdHq3Qg videoID valore per esempio e aggiungere il valore a questo url:

https://www.youtube.com/embed/ + videoID 
https://www.youtube.com/watch?v= + videoID 
+0

Grazie per la risposta, ma sono sicuro di aver capito. Voglio ottenere l'URL del video vero e proprio, non l'URL di incorporamento. Con i video che non sono live stream posso ottenere l'url effettivo di mp4. – casolorz

+0

intendi questo https://www.youtube.com/watch?v = + videoID – mpgn

+0

Questa è la pagina Web per guardare il video, voglio l'indirizzo del video, il video vero e proprio, non la pagina. – casolorz

22

È necessario ottenere i file di playlist di m3u8 HLS dal manifest del video. Ci sono modi per farlo a mano, ma per semplicità userò lo strumento youtube-dl per ottenere queste informazioni. Userò questo flusso in diretta come un esempio: https://www.youtube.com/watch?v=_Gtc-GtLlTk

primo luogo, ottenere i formati del video:

➜ ~ youtube-dl --list-formats https://www.youtube.com/watch\?v\=_Gtc-GtLlTk 
[youtube] _Gtc-GtLlTk: Downloading webpage 
[youtube] _Gtc-GtLlTk: Downloading video info webpage 
[youtube] Downloading multifeed video (_Gtc-GtLlTk, aflWCT1tYL0) - add --no-playlist to just download video _Gtc-GtLlTk 
[download] Downloading playlist: Southwest Florida Eagle Cam 
[youtube] playlist Southwest Florida Eagle Cam: Collected 2 video ids (downloading 2 of them) 
[download] Downloading video 1 of 2 
[youtube] _Gtc-GtLlTk: Downloading webpage 
[youtube] _Gtc-GtLlTk: Downloading video info webpage 
[youtube] _Gtc-GtLlTk: Extracting video information 
[youtube] _Gtc-GtLlTk: Downloading formats manifest 
[youtube] _Gtc-GtLlTk: Downloading DASH manifest 
[info] Available formats for _Gtc-GtLlTk: 
format code extension resolution note 
140   m4a  audio only DASH audio 144k , m4a_dash container, [email protected] (48000Hz) 
160   mp4  256x144 DASH video 124k , avc1.42c00b, 30fps, video only 
133   mp4  426x240 DASH video 258k , avc1.4d4015, 30fps, video only 
134   mp4  640x360 DASH video 646k , avc1.4d401e, 30fps, video only 
135   mp4  854x480 DASH video 1171k , avc1.4d401f, 30fps, video only 
136   mp4  1280x720 DASH video 2326k , avc1.4d401f, 30fps, video only 
137   mp4  1920x1080 DASH video 4347k , avc1.640028, 30fps, video only 
151   mp4  72p  HLS , h264, aac @ 24k 
132   mp4  240p  HLS , h264, aac @ 48k 
92   mp4  240p  HLS , h264, aac @ 48k 
93   mp4  360p  HLS , h264, aac @128k 
94   mp4  480p  HLS , h264, aac @128k 
95   mp4  720p  HLS , h264, aac @256k 
96   mp4  1080p  HLS , h264, aac @256k (best) 
[download] Downloading video 2 of 2 
[youtube] aflWCT1tYL0: Downloading webpage 
[youtube] aflWCT1tYL0: Downloading video info webpage 
[youtube] aflWCT1tYL0: Extracting video information 
[youtube] aflWCT1tYL0: Downloading formats manifest 
[youtube] aflWCT1tYL0: Downloading DASH manifest 
[info] Available formats for aflWCT1tYL0: 
format code extension resolution note 
140   m4a  audio only DASH audio 144k , m4a_dash container, [email protected] (48000Hz) 
160   mp4  256x144 DASH video 124k , avc1.42c00b, 30fps, video only 
133   mp4  426x240 DASH video 258k , avc1.4d4015, 30fps, video only 
134   mp4  640x360 DASH video 646k , avc1.4d401e, 30fps, video only 
135   mp4  854x480 DASH video 1171k , avc1.4d401f, 30fps, video only 
136   mp4  1280x720 DASH video 2326k , avc1.4d401f, 30fps, video only 
151   mp4  72p  HLS , h264, aac @ 24k 
132   mp4  240p  HLS , h264, aac @ 48k 
92   mp4  240p  HLS , h264, aac @ 48k 
93   mp4  360p  HLS , h264, aac @128k 
94   mp4  480p  HLS , h264, aac @128k 
95   mp4  720p  HLS , h264, aac @256k (best) 
[download] Finished downloading playlist: Southwest Florida Eagle Cam 

In questo caso, ci sono due video perché la diretta streaming contiene due telecamere. Da qui, dobbiamo ottenere l'URL HLS per un flusso specifico. Utilizzare -f a passare nel formato che si desidera guardare, e -g per ottenere URL del flusso:

➜ ~ youtube-dl -f 95 -g https://www.youtube.com/watch\?v\=_Gtc-GtLlTk 
https://manifest.googlevideo.com/api/manifest/hls_playlist/id/_Gtc-GtLlTk.2/itag/95/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/cmbypass/yes/gir/yes/dg_shard/X0d0Yy1HdExsVGsuMg.95/hls_chunk_host/r1---sn-ab5l6ne6.googlevideo.com/playlist_type/LIVE/gcr/us/pmbypass/yes/mm/32/mn/sn-ab5l6ne6/ms/lv/mv/m/pl/20/dover/3/sver/3/fexp/9408495,9410706,9416126,9418581,9420452,9422596,9422780,9423059,9423661,9423662,9425349,9425959,9426661,9426720,9427325,9428422,9429306/upn/xmL7zNht848/mt/1456412649/ip/64.125.177.124/ipbits/0/expire/1456434315/sparams/ip,ipbits,expire,id,itag,source,requiressl,ratebypass,live,cmbypass,gir,dg_shard,hls_chunk_host,playlist_type,gcr,pmbypass,mm,mn,ms,mv,pl/signature/7E48A727654105FF82E158154FCBA7569D52521B.1FA117183C664F00B7508DDB81274644F520C27F/key/dg_yt0/playlist/index.m3u8 
https://manifest.googlevideo.com/api/manifest/hls_playlist/id/aflWCT1tYL0.2/itag/95/source/yt_live_broadcast/requiressl/yes/ratebypass/yes/live/1/cmbypass/yes/gir/yes/dg_shard/YWZsV0NUMXRZTDAuMg.95/hls_chunk_host/r13---sn-ab5l6n7y.googlevideo.com/pmbypass/yes/playlist_type/LIVE/gcr/us/mm/32/mn/sn-ab5l6n7y/ms/lv/mv/m/pl/20/dover/3/sver/3/upn/vdBkD9lrq8Q/fexp/9408495,9410706,9416126,9418581,9420452,9422596,9422780,9423059,9423661,9423662,9425349,9425959,9426661,9426720,9427325,9428422,9429306/mt/1456412649/ip/64.125.177.124/ipbits/0/expire/1456434316/sparams/ip,ipbits,expire,id,itag,source,requiressl,ratebypass,live,cmbypass,gir,dg_shard,hls_chunk_host,pmbypass,playlist_type,gcr,mm,mn,ms,mv,pl/signature/4E83CD2DB23C2331CE349CE9AFE806C8293A01ED.880FD2E253FAC8FA56FAA304C78BD1D62F9D22B4/key/dg_yt0/playlist/index.m3u8 

Queste sono le tue playlist HLS M3U8, una per ogni telecamera associata la diretta streaming.

Senza youtube-dl, il flusso potrebbe essere simile a questo:

Prendete il vostro video di id e fare una richiesta GET al get_video_info endpoint:

HTTP GET: https://www.youtube.com/get_video_info?&video_id=_Gtc-GtLlTk&el=info&ps=default&eurl=&gl=US&hl=en 

Nella risposta, il valore hlsvp sarà il link alla playlist M3U8 HLS: ritorno

https://manifest.googlevideo.com/api/manifest/hls_variant/maudio/1/ipbits/0/key/yt6/ip/64.125.177.124/gcr/us/source/yt_live_broadcast/upn/BYS1YGuQtYI/id/_Gtc-GtLlTk.2/fexp/9416126%2C9416984%2C9417367%2C9420452%2C9422596%2C9423039%2C9423661%2C9423662%2C9423923%2C9425346%2C9427672%2C9428946%2C9429162/sparams/gcr%2Cid%2Cip%2Cipbits%2Citag%2Cmaudio%2Cplaylist_type%2Cpmbypass%2Csource%2Cexpire/sver/3/expire/1456449859/pmbypass/yes/playlist_type/LIVE/itag/0/signature/1E6874232CCAC397B601051699A03DC5A32F66D9.1CABCD9BFC87A2A886A29B86CF877077DD1AEEAA/file/index.m3u8 
+2

Mi sembra che non dovremmo dare risposte del genere quando è contrario ai termini e al servizio di YouTube https://developers.google.com/youtube/terms – mpgn

+9

@mpgn Non sapevo che fossi la polizia di YouTube. – JAL

+14

@mpgn Sono qui per rispondere alle domande. Se YouTube ha un problema con il mio post, ne parlerò direttamente con un tecnico di Google. Per ora, sono più interessato a rispondere alla domanda dell'OP e rendere Stack Overflow una buona risorsa per i programmatori. – JAL

0

questo URL per il giocatore video_id attuale

0.123.
https://www.youtube.com/embed/live_stream?channel=UCkA21M22vGK9GtAvq3DvSlA 

Dove UCkA21M22vGK9GtAvq3DvSlA è l'ID del canale. Puoi trovarlo all'interno dell'account YouTube sul link "Il mio canale".

Problemi correlati