0

개발중인 애플리케이션의 경우 특정 YouTube 동영상의 재생 시간을 알아야합니다. YouTube API V3에 .NET 라이브러리를 사용하고 있습니다.FileDetails를 요청할 때 YouTube API가 null을 반환합니다.

FileDetails의 durationMs 속성을 요청하면 일부 비디오에서는 작동하지만 다른 비디오에서는 모두 null로 반환됩니다 (모두 완전히 처리됨). 동영상은 모두 미등록 상태이므로 계속해서 문제가되는 동영상의 ID를 공개하고 싶지는 않습니다.

이 문제의 원인은 무엇입니까? API에서 오류가 발생하지 않으며 컨테이너 (MOV)를 얻지 만 기간과 같은 속성은 모두 null입니다.

관련 코드 스 니펫을 포함 시켰습니다.

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); 
} 

답변

0

fileDetails 대신 part=contentDetails을 사용해야합니다.

SO question에서, part=contentDetails에는 기간이 포함되어 있음이 분명하게 명시되어 있습니다. 여기

자세한 내용이 documentation이 관련 SO question을 확인

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

부품 = 모든 contentDetails를 사용하여 예를 요청한다.

관련 문제