我們遇到了YouTube數據API未返回某些請求視頻的統計信息的問題。我們使用自定義實現與API進行交互,但是可以使用API瀏覽器來重現問題,我將在整篇文章中使用它。某些視頻ID缺少響應請求部分
首先,我會告訴你一個工作通道ID(UCfDUwK9MPrjxmsTz1pzjkbw
)會發生什麼:
使用channels.List
與part=statistics,contentDetails,snippet
和id=UCfDUwK9MPrjxmsTz1pzjkbw
我們得到了一個有效的響應。對於這種用例,我們感興趣的是contentDetails -> relatedPlaylists -> uploads
,它返回播放列表ID UUfDUwK9MPrjxmsTz1pzjkbw
。
playlistItems.List
與part=contentDetails
和playlistId=UUfDUwK9MPrjxmsTz1pzjkbw
(我們在前面的步驟中找到的播放列表ID)返回屬於播放列表的視頻列表。我們感興趣的是contentDetails -> videoId
。例如vSS9AYF29_U
。
videos.List
與part=id,statistics
和id=vSS9AYF29_U
(前面步驟中的示例視頻ID)我們得到了我們正在查找的響應(此視頻的統計信息)。
現在,與信道ID相同的過程,不能產生所希望的結果(UCpHTv1eQBeSlrdmlh8C6ZxQ
):
channels.List
返回播放列表ID UUpHTv1eQBeSlrdmlh8C6ZxQ
playlistItems.List
返回實例視頻ID OFTib3gUua0
videos.List
確實不是返回請求的統計信息部分。
有沒有人知道爲什麼會發生這種情況?是什麼讓這個頻道如此特別?頻道所有者是否可以禁止通過API檢索公共信息?如果您在瀏覽器中觀看視頻(https://youtu.be/OFTib3gUua0),則可以看到統計信息本身。
我不認爲問題出在我們的實現上,因爲它可以通過API瀏覽器進行復制。另一個奇怪的事情是,這在幾天前針對我們使用的每個頻道ID都有效。
任何想法,高度讚賞。
有一個人注意到這個問題的另一種情況:http://stackoverflow.com/questions/43339723/missing-statistics-from-video-list-response \t 我注意到,統計信息對象缺失的視頻將publicStatsViewable設置爲False(https://developers.google.com/youtube/v3/docs/videos#status.publicStatsViewable)。我無法找到文檔中的任何內容來說明統計對象在這種情況下會丟失,但它似乎是迄今爲止的一對一關聯 - 我相信publicStatsViewable是頻道所有者可以設置的內容。 – user3468054
感謝您的評論@ user3468054!該文檔稱「即使此屬性的值設置爲false,視頻的觀看次數和評分等統計信息仍會公開顯示」。這與此行爲相矛盾,因爲'part = statistics'返回'viewCount,likeCount,dislikeCount,favoriteCount,commentCount' –
我同意它並不真正與文檔所說的一起 - 只是一個經驗觀察(小樣本) ! 另請參閱:https://issuetracker.google.com/issues/37107133 – user3468054