0

Für die Anwendung, die ich entwickle, muss ich die Dauer bestimmter YouTube-Videos kennen. Ich verwende die .NET-Bibliotheken für das YouTube API V3.Die YouTube-API gibt bei der Anforderung von FileDetails null aus

Das Anfordern der Eigenschaft durationMs der FileDetails funktioniert für einige Videos, gibt aber für andere Videos (null) null zurück (alle vollständig verarbeitet). Die Videos sind alle nicht gelistet und sollen auch so bleiben, also würde ich die ID des Videos, das Probleme verursacht, lieber nicht preisgeben.

Was könnte die Ursache dieses Problems sein? Ich bekomme keine Fehler von der API, und ich bekomme den Container (MOV), aber Eigenschaften wie die Dauer sind alle null.

Ich habe das entsprechende Code-Snippet enthalten.

var videosListRequest = youtube.Videos.List("processingDetails,FileDetails"); 
videosListRequest.Id = file.FileName; 

videosListRequest.OauthToken = Authresult.Result.Credential.Token.AccessToken; 
VideoListResponse vlr = videosListRequest.Execute(); 

if (vlr.Items.Count > 0 && vlr.Items[0].ProcessingDetails.ProcessingStatus == "succeeded") 
{ 
    file.IsVideoProcessed = true; 
    int durationInS = (int)(vlr.Items[0].FileDetails.DurationMs/1000.0); 
    UpdateVideoStatus(file.Id, ClientId.Value, MediaStatus.READY, durationInS); 
} 

Antwort

0

Ich glaube, Sie part=contentDetails statt fileDetails verwenden sollten.

Aus dieser SO question wird deutlich, dass part=contentDetails die Dauer enthält. unter Verwendung eines Teils = contentDetails

https://www.googleapis.com/youtube/v3/videos?id=9bZkp7q19f0&part=contentDetails&key={YOUR_API_KEY} 

Weitere Informationen dieses documentation prüfen und dieses damit verbundene SO question

ist hier das Beispiel Anfrage.