2015-07-16 3 views
5

Я работаю над API данных YouTube v3.Проверьте, доступно ли видео

Я хочу знать, как я могу проверить, было ли видео отключено или удалено YouTube.

например: https://www.youtube.com/watch?v=dHt_6Z2OaZI

https://www.googleapis.com/youtube/v3/videos?id=dHt_6Z2OaZI 
&part=snippet,contentDetails,player,statistics,status 
&key=[mykey] 

Я не могу получить какие-либо идеи от API.

{ 
"kind": "youtube#videoListResponse", 
"etag": "\"iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/Y7032cCbQSAurzEiVMjdFYzamtg\"", 
"pageInfo": { 
"totalResults": 1, 
"resultsPerPage": 1 
}, 
"items": [ 
{ 
"kind": "youtube#video", 
"etag": "\"iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/2FORRsUGqbS1nvQK3AR1PfmiN7I\"", 
"id": "dHt_6Z2OaZI", 
"snippet": {}, 
"contentDetails": { 
"duration": "PT1H31M1S", 
"dimension": "2d", 
"definition": "sd", 
"caption": "false", 
"licensedContent": false 
}, 
"status": { 
"uploadStatus": "processed", 
"privacyStatus": "public", 
"license": "youtube", 
"embeddable": true, 
"publicStatsViewable": true 
}, 
"statistics": { 
"viewCount": "301", 
"likeCount": "0", 
"dislikeCount": "0", 
"favoriteCount": "0", 
"commentCount": "0" 
}, 
"player": { 
"embedHtml": "<iframe width=\"640\" height=\"360\" src=\"//www.youtube.com/embed/dHt_6Z2OaZI\" frameborder=\"0\" allowfullscreen></iframe>" 
} 
} 
] 
} 

Я попробовал этот

https://www.googleapis.com/youtube/v3/videos 
?part=id 
&key=[mykey] 
&id=dHt_6Z2OaZI 

Но это не работает, до сих пор дают результат.

+0

Этот вопрос может иметь то, что вы ищете: http://stackoverflow.com/questions/1591293/programmatically-determine-whether-a-youtube-video-has-been-taken-down – MC10

+2

@ MC10 Этот вопрос использует устаревший v2 API YouTube и не помогает никому, кто ищет ответ, используя API v3. – JAL

ответ

1

В результатах поиска вы найдете поле status. Я думаю, что подполе, которое наиболее близко относится к тому, что вы хотите, это uploadStatus. Когда я выполнить вызов API для этого видео, я получаю:

"status": { 
    "uploadStatus": "rejected", 
    "rejectionReason": "uploaderAccountSuspended", 
    "privacyStatus": "public", 
    "license": "youtube", 
    "embeddable": true, 
    "publicStatsViewable": true 
    } 

Из documentation, вот возможные значения для uploadStatus:

  • удален
  • не удалось
  • обработаны
  • Отклонено
  • загружено

После видео успешно загружен и обработан, он должен быть доступен для пользователей (при условии, что это также общественности). Поэтому вы должны просто проверять, является ли статус «отклонен» или «удален».

+1

Я боюсь, что это не работает для удаленных видео. Это то, что API возвращает для удаленного видео: { "типа": "YouTube # videoListResponse", "ETAG": "\" iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/q9wh51deRpP1b7X8Nc3D-bdBxqs \ "", "pageInfo": { "totalResults" : 0, "результатыPerPage": 0 }, "items": [] } –

Смежные вопросы