当前位置: 首页 > 知识库问答 >
问题:

从提取的url流YouTube视频

姜磊
2023-03-14
private string ExtractVideoUrl(string youtubeUrl)
    {
        IEnumerable<VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls(youtubeUrl, false);
        var video = videoInfos.First();
        if (video.RequiresDecryption)
        {
            DownloadUrlResolver.DecryptDownloadUrl(video);
        }

        return video.DownloadUrl;       // videoInfos.First().DownloadUrl;
    }
var request = (HttpWebRequest)WebRequest.Create(this.Video.DownloadUrl);
        if (this.BytesToDownload.HasValue)
        {
            request.AddRange(0, this.BytesToDownload.Value - 1);
        }

        // the following code is alternative, you may implement the function after your needs
        using (WebResponse response = request.GetResponse())
        {
            using (Stream source = response.GetResponseStream())
            {
            **// HOW to Play source stream???**
                using (FileStream target = File.Open(this.SavePath, FileMode.Create, FileAccess.Write))
                {
                    var buffer = new byte[1024];
                    bool cancel = false;
                    int bytes;
                    int copiedBytes = 0;

                    while (!cancel && (bytes = source.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        target.Write(buffer, 0, bytes);
                        .... 

所以一般的问题是如何从开放流中播放视频?例如Chrome、Firefox和KMPlayer都很容易做到这一点。浏览器生成一个带有视频标签的简单页面,因此通过JS来管理播放器将是微不足道的。但是...内部WebBrowser控件不能,它建议下载文件。我尝试了CEFSharp(Chrome嵌入式框架),但没有成功。也许有人知道好的视频播放器WPF库,可以流视频吗?我也尝试了vlc.wpf和Shockwave Flash,但仍然对这个提取出来的URL不满意。搜索了很多,但结果还不够。

共有1个答案

濮阳默
2023-03-14
    null
<xmlns:gecko="clr-namespace:Gecko;assembly=Geckofx-Winforms">
....
<WindowsFormsHost Width="400" Height="300" HorizontalAlignment="Stretch"  VerticalAlignment="Stretch" >
                <gecko:GeckoWebBrowser x:Name="_geckoBrowser"/>
            </WindowsFormsHost>
public void PlayVideo(string videoId)
    {                        
        var url = string.Format("https://www.youtube.com/watch?v={0}", videoId);
        var videoUrl = ExtractVideoUrl(url);

        _geckoBrowser.Navigate(videoUrl);
    }
 类似资料:
  • 问题内容: 我想从JavaScript的YouTube网址中获取(没有jQuery,纯JavaScript)。 YouTube URL格式示例 或网址中包含视频ID的任何其他YouTube格式。 这些格式的结果 问题答案: 您不需要为此使用正则表达式。

  • 问题内容: 此PHP函数在情况1中无法正确获取ID,但在情况2中将无法获取ID。情况1非常常见,其中YouTube ID后面可能包含任何内容。 我在想的是,必须有一种方法可以查找“ v =“,无论它位于URL中的什么位置,然后再取字符。这样,就不需要复杂的RegEx。这是基地吗?对起点有什么想法吗? 问题答案: 这就是我从YouTube网址中提取ID的方法。我认为它在所有情况下都有效。 请注意,最

  • 问题内容: 我正在编写一种功能,允许用户输入Youtube视频URL。我想从这些网址中提取视频ID。 Youtube API是否支持某种函数,我可以通过该函数传递链接,它会返回视频ID。还是我必须自己解析字符串? 我正在使用PHP …在这方面,我将不胜感激任何指针/代码示例。 谢谢 问题答案: 以下是使用正则表达式从URL提取youtube ID的示例函数: 它不是您要查找的API的直接来源,但可

  • 问题内容: 我想使用Java从YouTube网址获取v = id YouTube网址格式示例: &a=GxdCwVVULXctT2lYDEPllDR0LRTutYfW ](http://www.youtube.com/watch?v=u8nQa1cJyX8&a=GxdCwVVULXctT2lYDEPllDR0LRTutYfW) //www.youtube.com/watch?v=u8nQa1cJy

  • 问题内容: 我正在使用视频代码,并且我想使用其中的任何网址 我已经检查过了。将Youtube视频源显示为HTML5视频标签?。这不能解决我的问题 问题答案: [MediaElement YouTubeAPI示例 将YouTube API封装在HTML5 Media API包装器中,以便可以像对HTML5一样对它进行编程。

  • 非常新的初学者。我目前正在做一个项目,用户可以输入一个搜索词,并使用YouTube数据API v3获得一个视频ID。然后这个视频ID被用来组装一个URL,我用它把视频下载到我的电脑上。这是我用来做这件事的。(忽略我已经导入的库,我稍后会清理它们) 因此,对于“Youtube Rewind 2018”的搜索查询,Youtube API将返回以下内容: {'kind': 'youtube#search