Получить все Youtube видео в плейлисте YouTube, включая продолжительность его - PullRequest
0 голосов
/ 24 ноября 2018

Так что мне нужно получить продолжительность каждого видео в плейлисте, проблема в том, что продолжительность не указана, теоретически я могу рассчитать ее по значениям EndAt и StartAt, но они больше не заполняются данными и всегда будутnull (см. документацию).

Так что все это сделано до сих пор с Google.Apis.YouTube.v3.Код, который у меня сейчас есть:

        var PlaylistItemRequest = YouTubeService.PlaylistItems.List("snippet,contentDetails");
        PlaylistItemRequest.PlaylistId = Find;
        PlaylistItemRequest.MaxResults = 50;

        List<Song> PlaylistItems = new List<Song>();

        while (true)
        {
            var PlaylistItemResponse = await PlaylistItemRequest.ExecuteAsync();

            foreach (var playlistitem in PlaylistItemResponse.Items)
                PlaylistItems.Add(new Song(playlistitem.Snippet.Title, playlistitem.ContentDetails.EndAt, playlistitem.ContentDetails.StartAt, $"https://www.youtube.com/watch?v={playlistitem.Id}", playlistitem.Snippet.Thumbnails.Default__.Url, DateTime.UtcNow, null, user.Id));

            if (PlaylistItemResponse.NextPageToken == null) break;

            PlaylistItemRequest.PageToken = PlaylistItemResponse.NextPageToken;
        }

Тогда я подумал, что могу сделать что-то подобное, потому что это даст мне продолжительность видео:

var request = YouTubeService.Videos.List("snippet,contentDetails,statistics");

Проблема в том, что мне нужно будет отправить это для каждой песни в плейлисте, и я не хочу рисковать, чтобы нарушить ограничения по ставкам Google API.Поскольку 200 запросов - много.

Любая помощь приветствуется!

Примечание: Мне нужно решение без задержки вручную, если это возможно.

...