コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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);
                }
            }
        }