public async Task <List <PlayableBase> > GetTracks(ProgressDialogController controller) { var currentPlaylist = this; var resultList = new List <PlayableBase>(); for (int i = 0; i < (int)Math.Ceiling((double)TotalTracks / 50); i++) { var tracks = YouTubeApi.GetPlaylistTracks(await YouTubeApi.GetPlaylist(PlaylistId, currentPlaylist.nextPageToken, 50)); for (int j = 0; j < tracks.Count; j++) { var track = tracks[j]; if (LoadingTracksProcessChanged != null) { LoadingTracksProcessChanged(this, new LoadingTracksEventArgs(i * 50 + j, TotalTracks, track.Title)); } resultList.Add(track.ToPlayable()); if (controller.IsCanceled) { return(null); } } } return(resultList); }
static void Run(CommandLineOptions options) { var youTubeApi = new YouTubeApi(options.YouTubeKey); var playlist = youTubeApi.GetPlaylist(options.YouTubePlaylistID); foreach (var p in playlist) { Console.WriteLine(p.Title); } }