コード例 #1
0
ファイル: YouTube.cs プロジェクト: jbautistam/BauPlugStudio
 private YouTubeUri TryFindBestVideoUri(IEnumerable <YouTubeUri> uris, YouTubeUri.YouTubeQuality minQuality, YouTubeUri.YouTubeQuality maxQuality)
 {
     return(uris
            .Where(u => u.HasVideo && u.HasAudio && !u.Is3DVideo && u.VideoQuality >= minQuality && u.VideoQuality <= maxQuality)
            .OrderByDescending(u => u.VideoQuality)
            .FirstOrDefault());
 }
コード例 #2
0
ファイル: YouTube.cs プロジェクト: jbautistam/BauPlugStudio
        /// <summary>Returns the best matching YouTube stream URI which has an audio and video channel and is not 3D. </summary>
        public async Task <YouTubeUri> GetVideoUriAsync(string youTubeId, YouTubeUri.YouTubeQuality minQuality, YouTubeUri.YouTubeQuality maxQuality, CancellationToken token)
        {
            var uris = await GetUrisAsync(youTubeId, token);

            var uri = TryFindBestVideoUri(uris, minQuality, maxQuality);

            if (uri == null)
            {
                throw new YouTubeUriException("No matching YouTube video or audio stream URI could be found. " +
                                              "The video may not be available in your country, " +
                                              "is private or uses RTMPE (protected streaming).");
            }
            return(uri);
        }
コード例 #3
0
ファイル: YouTube.cs プロジェクト: jbautistam/BauPlugStudio
 /// <summary>Returns the best matching YouTube stream URI which has an audio and video channel and is not 3D. </summary>
 public Task <YouTubeUri> GetVideoUriAsync(string youTubeId, YouTubeUri.YouTubeQuality minQuality, YouTubeUri.YouTubeQuality maxQuality)
 {
     return(GetVideoUriAsync(youTubeId, minQuality, maxQuality, CancellationToken.None));
 }
コード例 #4
0
ファイル: YouTube.cs プロジェクト: jbautistam/BauPlugStudio
 /// <summary>Returns the best matching YouTube stream URI which has an audio and video channel and is not 3D. </summary>
 public Task <YouTubeUri> GetVideoUriAsync(string youTubeId, YouTubeUri.YouTubeQuality maxQuality, CancellationToken token)
 {
     return(GetVideoUriAsync(youTubeId, DefaultMinQuality, maxQuality, token));
 }