Так что мне нужно получить продолжительность каждого видео в плейлисте, проблема в том, что продолжительность не указана, теоретически я могу рассчитать ее по значениям 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 запросов - много.
Любая помощь приветствуется!
Примечание: Мне нужно решение без задержки вручную, если это возможно.