示例#1
0
        public async Task I_can_download_a_video_by_merging_best_streams_into_a_single_ogg_file()
        {
            // Arrange
            var outputFilePath = Path.ChangeExtension(_tempOutputFixture.GetTempFilePath(), "ogg");
            var converter      = new YoutubeClient().Videos.Streams.GetConverter(_ffmpegFixture.FilePath);

            // Act
            await converter.ConvertStreamsAsync("AI7ULzgf8RU", outputFilePath);

            var fileInfo = new FileInfo(outputFilePath);

            // Assert
            fileInfo.Exists.Should().BeTrue();
            fileInfo.Length.Should().BeGreaterThan(0);
        }
示例#2
0
        public async Task I_can_download_a_video_and_it_reports_progress_correctly()
        {
            // Arrange
            var progressReports = new List <double>();
            var progress        = new Progress <double>(p =>
            {
                _testOutput.WriteLine($"Progress: {p:P2}");
                progressReports.Add(p);
            });

            var outputFilePath = _tempOutputFixture.GetTempFilePath();
            var converter      = new YoutubeClient().Videos.Streams.GetConverter(_ffmpegFixture.FilePath);

            // Act
            await converter.ConvertStreamsAsync("AI7ULzgf8RU", outputFilePath, progress);

            // Assert
            progressReports.Should().NotBeEmpty();
            progressReports.Should().Contain(1.0);
        }
示例#3
0
        public async Task I_can_download_a_video_with_a_custom_target_framerate()
        {
            // Arrange
            var outputFilePath = _tempOutputFixture.GetTempFilePath();
            var converter      = new YoutubeClient().Videos.Streams.GetConverter(_ffmpegFixture.FilePath);

            var options = new ConversionOptionsBuilder(outputFilePath)
                          .SetFormat("mp4")
                          .SetTargetFramerate(new Framerate(15))
                          .SetPreset(EncoderPreset.UltraFast)
                          .Build();

            // Act
            await converter.ConvertStreamsAsync("AI7ULzgf8RU", options);

            var fileInfo = new FileInfo(outputFilePath);

            // Assert
            fileInfo.Exists.Should().BeTrue();
            fileInfo.Length.Should().BeGreaterThan(0);

            // No real way to assert framerate...
        }