2015-08-18 37 views
8

Kullanıcı yüklemelerinden 10 yeni videoyu yakalamaya çalışıyorum.Youtube API 3 En son videoları alın

Şimdi tek sorun olduğunu istek video yüklendiği tarih olan publishedAtolduğunu playlistitems görünür tek tarih - değil kamu yapıldığı tarihi, büyük bir fark yaratıyor .

video isteği aracılığıyla doğru tarihi yakalayabildiğimi fark ettim, ancak bunu yapmak için en iyi yer görünmüyor.

Size neyle uğraştığımın bir örneğini göstereyim.

Maroon5 kanalını kullanalım.

forUserName: Maroon5VEVO

GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=Maroon5VEVO&key= {YOUR_API_KEY} biz kapmak nereye

https://developers.google.com/youtube/v3/docs/channels/list#try-it İşte

geçerli:

uploadsId: UUN1hnUccO4FD5WfM7ithXaw

https://developers.google.com/youtube/v3/docs/playlistItems/list#try-it

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UUN1hnUccO4FD5WfM7ithXaw&maxResults=50&key= {YOUR_API_KEY} GET ve sonra biz bazı videolarına bakabilirsiniz:Bu yüzden sorgulayabilir.

En yenisini ele geçirelim.

"title": "Maroon 5 - Bu Summer'ın Gonna gibi A Hurt ... (Açık)", "VideoId": Benim için bu biridir "Wa64gOwuIyE"

Ve en önemlisi:

"publishedAt": "2015-06-01T17: 41: 58.000Z",

Şimdi

en, bu sorguyu çalıştırarak bu videonun daha fazla ayrıntı kapmak bakalım:

https://www.googleapis.com/youtube/v3/videos?part=snippet&id=Wa64gOwuIyE&key= {YOUR_API_KEY GET İşte}

https://developers.google.com/youtube/v3/docs/videos/list#try-it

biz ... farklı bir tarihle daha ayrıntılı bir görünüm olsun!

"publishedAt": "2015-06-01T20: 00: 01.000Z",

oynatma listelerinde publishedAt tarih yükleme tarihi aslında demektir - Video kamu yapıldığı zaman değil .

En son 10 öğeden oluşan listemizde, LATEST tarafından yayınlanan en son yayınlanan videoları değil, en son yayınlanan videoları istiyoruz.

Bir yaklaşıma nasıl yaklaşacağınızı biliyorsanız, lütfen paylaşın.

İşte sana/arama bitiş noktası kullanabilirsiniz inanıyoruz şimdi

$.get(
     "https://www.googleapis.com/youtube/v3/playlistItems",{ 
     part : 'snippet', 
     maxResults : 10, 
     playlistId : UPLOADS_PID, 
     key: YOUR_API_KEY}, 
     function(data) { 

      $.each(data.items, function(i, item) {     

       (...) 

      }); 
     } 
    ); 
+0

Kullanım durumunuz nedir? PlaylistItems için yayınlanmışAt tarihi, video oynatma listesine eklendiğinde, video yüklendiğinde de doğru olur. Ancak, videoların çok büyük bir anlaşma yapacağına dair yayınlanmadan önce şimdiye kadar yükleneceğinden şüpheliyim. En kötü durum, son 15-20 videolarını alabilir, videos.list kullanabilir ve her biri için "broadcastAt" değerini alabilir, sonra bu şekilde sıralayabilirsiniz. –

+0

Maalesef kullanım durumumda, dahili olarak incelenen ve daha sonra kamuya açık hale getirilen birçok özel videonun bulunduğu bir kanalla uğraşıyoruz (maalesef aynı çalma listesinde yer alıyor). Örneğin, 5 ay önce yüklenen, ancak şu anda herkese açık hale getirilmiş bir videomız var. Bu nedenle, playlistItem isteği ile ilk 10 sonucun yakınında olmadığını hayal edebilirsiniz. Videos.list işleyecektir, fakat sorun şu ki, 1000 video yüklendiğinde bunu yapmanın en iyi yolu değil, çünkü 1000 ID'leri queryParam'a aktarmanız ve ardından tüm şeyi tarihe göre sıralamanız gerekecek. – Proqb

cevap

15

(yanlış publishedAt tarih ile çalışan) benim pasajıdır. Kullanıcı yüklemelerinden en son 10 videoyu almak istediğinizde, oynatma listesi kimliği yerine kanal kimliğini kullanabilirsiniz.

İstek:

GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=10&order=date&type=video&key={YOUR_API_KEY} 
+0

Mükemmel. Tam olarak aradığım şey bu. Kudos. – Proqb

+0

Video Listesinde bazı sorunlarla karşılaşıyorum. Herhangi bir fikir?? http://stackoverflow.com/questions/43950504/youtube-get-uploaded-video-list-filenotfound-error – Krishnakant

İlgili konular