/// <inheritdoc/> public async Task <IEnumerable <Models.Playlist> > GetMyPlaylists() { var newPlaylist = m_YouTubeService !.Playlists.List("snippet"); // チャンネルIDを指定することでも取得可能 // newPlaylist.ChannelId = "UCpkkP5J-16g3zgfuIihCTrA"; newPlaylist.Mine = true; var list = await newPlaylist.ExecuteAsync(); var resultPlaylists = new List <Models.Playlist>(); foreach (var playlist in list.Items) { resultPlaylists.Add(new Models.Playlist(playlist.Id, playlist.Snippet.Title, playlist.Snippet.Description, playlist.Snippet.Thumbnails.Default__.Url)); } return(resultPlaylists); }
public async Task <List <Playlist> > GetPlaylists() { // auditDetails requires youtubepartner-channel-audit scope // brandingSettings, contentOwnerDetails requires something? // statistics topicDetails // Don't care about: localizations (even though I can get it) var playlistRequest = Playlists.List("contentDetails,id,snippet,status"); playlistRequest.Mine = true; var result = await HandlePagination <Playlist>(playlistRequest); // force-get hardcoded playlist names (liked, liked music, Could be others. Watch later [WL] can't be gotten through the api) playlistRequest = Playlists.List("contentDetails,id,snippet,status"); result.AddRange(await GetAnotherPlaylist(playlistRequest, "LL")); result.AddRange(await GetAnotherPlaylist(playlistRequest, "LM")); return(result); }
/// <inheritdoc/> public async Task <IEnumerable <Models.Playlist> > SearchPlaylistByChannelId(string channelId, int maxResultCount = 50) { // YouTubeサービスに問い合わせ var searchListRequest = m_YouTubeService !.Playlists.List("snippet"); searchListRequest.ChannelId = channelId; searchListRequest.MaxResults = maxResultCount; var searchListResponse = await searchListRequest.ExecuteAsync(); // 取得した結果からプレイリストを取得 var searchPlaylists = searchListResponse.Items; var resultPlaylists = new List <Models.Playlist>(); foreach (var item in searchPlaylists) { resultPlaylists.Add(new Models.Playlist(item.Id, item.Snippet.Title, item.Snippet.Description, item.Snippet.Thumbnails.Default__.Url)); } return(resultPlaylists); }