2015-07-16 8 views
5

Sto lavorando su YouTube Data API v3.Verifica se un video è disponibile

Voglio sapere come posso controllare se un video è stato disattivato o rimosso da YouTube.

es: 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] 

non riesco a ottenere qualsiasi idea dal 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>" 
} 
} 
] 
} 

Ho provato questo

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

Ma non funziona, ancora dare il risultato.

+0

Questa domanda potrebbe avere quello che stai cercando: http://stackoverflow.com/questions/1591293/programmatically-determine-whether-a-youtube-video-has-been-taken-down – MC10

+2

@ MC10 Tale domanda utilizza la deprecata v2 dell'API di YouTube e non è utile per chi cerca una risposta utilizzando l'API v3. – JAL

risposta

1

C'è un campo status nei risultati che hai postato. Penso che il sottocampo più strettamente correlato a ciò che desideri sia uploadStatus. Quando si esegue una chiamata API per quel video, ottengo:

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

Dal documentation, qui ci sono i possibili valori per uploadStatus:

  • cancellati
  • falliti
  • elaborati
  • respinto
  • caricato

Dopo un video viene caricato ed elaborato con successo, dovrebbe essere accessibile agli utenti (ammesso che sia anche pubblico). Pertanto, dovresti semplicemente controllare se lo stato è "respinto" o "cancellato".

+1

Ho paura che non funzioni per i video cancellati. Questo è ciò che le API restituisce per un video eliminato: { "tipo": "youtube # videoListResponse", "ETAG": "\" iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/q9wh51deRpP1b7X8Nc3D-bdBxqs \ "", "PageInfo": { "totalResults" : 0, "resultsPerPage": 0 }, "articoli": [ ] } –