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