【问题标题】:Downloading You tube videos? [closed]下载 Youtube 视频? [关闭]
【发布时间】:2011-01-30 16:47:19
【问题描述】:

我想以编程方式(使用 Java)下载你的视频。我如何将您的视频链接转换为可下载的 URL。

浏览器使用以下代码播放 youtube 视频。

我尝试从 URL http://www.youtube.com/v/OdAE3cWlmHw 下载 但它没有返回视频字节。

谢谢 拉利特

【问题讨论】:

  • 返回的视频为 Flash Video (FLV) 格式。
  • 如果A对你有好处,你能接受吗? Q 仍然开放。

标签: java video download youtube


【解决方案1】:

Youtube API 允许您搜索和列出视频并获取媒体播放器 URL,以便您可以在网页内播放视频

Youtube Data API

Youtube Java Data API - Search and List Videos

Youtube Java Data API - Getting Started

它不允许您下载视频的字节内容 - 因为 Google 正在保护自己的权利和内容创建者的权利。

Google API Terms of Service
禁令:

您的 API 客户端不会,您也不会鼓励或创建 为您的用户或其他第三方提供以下功能:
...

  • 单独推广通过 YouTube API 提供的任何 YouTube 视听内容的音频或视频组件
  • 通过除使用 YouTube 播放器或其他明确的视频播放器以外的任何方式访问任何 YouTube 视听内容的任何部分 由 YouTube 授权;
  • 存储 YouTube 视听内容的副本;
    ...

【讨论】:

  • 我们可以只从这些视频中提取音频吗?
【解决方案2】:

查看有关下载 Flash 视频的 Firefox 扩展程序。 下载助手和 Flash 视频助手。如果您查看源代码,您会发现如何下载视频。 据我所知,它会解析 HTML 页面以获取 id 和 session,并在 url 中使用它来下载视频。

仅在 C# 中发现类似问题。观看源代码,您可以在 java 中重新创建它 C#: Downloading video from YouTube

【讨论】:

  • 这些工具从浏览器的缓存中保存播放的视频。我不想在浏览器中播放视频。我想创建一个 java 程序,它应该能够使用 URL 下载视频。
  • 这是不正确的。对于下载助手:查看 dhYoutubeProbe.js 函数 YTProbe.prototype.handleDocument=function(document,window)。在那里你可以看到它使用正则表达式来提取 video_id 和令牌并使用“youtube.com/…;”
  • 是的,我们可以创建一个链接来下载 youtube 视频。但还是有问题。这是获取 YouTube 视频的链接youtube.com/get_video?video_id=videoId &t=token; VideoId 很简单,我们可以从 url 获取它。但是令牌呢。 You Tube 为每个请求提供一个单独的令牌。表示我是否已从浏览器请求视频。作为回应,我的浏览器将获得一个令牌。通过使用该令牌,我可以制作一个可下载的链接并使用 Java 程序下载视频。但是,如果我想使用程序下载怎么办?我从哪里得到这个令牌?
  • 首先下载网站并解析它,然后使用那里的令牌开始下载。下载和解析 HTML 页面很快就完成了。
  • 现在我可以成功地为视频创建可下载链接(使用 token 和 vidoeId )。我可以通过将此 URL 提交到浏览器来成功下载视频。我编写了一个 java 程序,它使用 HttpURLConnection 从这个 URL 下载文件。它在磁盘上成功下载文件,但问题是我无法播放此文件。错误消息显示“此文件不包含可播放的流”
【解决方案3】:

这个网站有一些东西……满足你的需要!

http://mashable.com/2009/02/13/youtube-toolbox/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 2021-10-06
    • 2017-06-18
    • 2011-05-01
    • 2011-10-31
    • 2012-02-09
    相关资源
    最近更新 更多