public async void DownloadSong(List <string> videoId, string directory) { int index = 0; YourTube yourTube = new YourTube(); var youtube = new YoutubeClient(); foreach (string id in videoId) { string url = "https://www.youtube.com/watch?v=" + id; var vid = await youtube.Videos.GetAsync(url); if (File.Exists(directory + "\\" + vid.Title + ".mp3")) { index++; } else { index++; var streamManifest = await youtube.Videos.Streams.GetManifestAsync(id); var streamInfo = streamManifest.GetAudioOnly().WithHighestBitrate(); if (streamInfo != null) { await youtube.Videos.Streams.GetAsync(streamInfo); await youtube.Videos.Streams.DownloadAsync(streamInfo, vid.Title + ".mp3"); } string data = Directory.GetCurrentDirectory() + "\\"; //AudioConverter audioConverter = new AudioConverter(); //audioConverter.ConvertAudio(data + vid.Title); File.Move(data + vid.Title + ".mp3", directory + "\\" + vid.Title + ".mp3"); progressBar1.Invoke((int)index); } } }
public async void downloadVideoPlaylist(List <string> mas, string directory, int index, string playlistID) { for (int i = index; i < mas.Count; i++) { try { string url = "https://www.youtube.com/watch?v=" + mas[i] + "&list=" + playlistID + "&index=" + index + 1; index++; var youtube = new YoutubeClient(); var vid = await youtube.Videos.GetAsync(url); YourTube yourTube = new YourTube(); if (File.Exists(directory + "\\" + vid.Title + ".mp3")) { progressBar1.Invoke((int)index); } else { var streamManifest = await youtube.Videos.Streams.GetManifestAsync(vid.Id); var streamInfo = streamManifest.GetMuxed().WithHighestVideoQuality(); if (streamInfo != null) { await youtube.Videos.Streams.GetAsync(streamInfo); await youtube.Videos.Streams.DownloadAsync(streamInfo, vid.Title + ".mp4"); } string data = Directory.GetCurrentDirectory() + "\\"; File.Move(data + vid.Title + ".mp4", directory + "\\" + vid.Title + ".mp4"); progressBar1.Invoke((int)index); } if (index == mas.Count) { yourTube.DownloadEn(); } } catch (Exception e) { downloadVideoPlaylist(mas, directory, index - 1, playlistID); } } }