0

在我的项目中,用户将通过粘贴来自另一个站点的 URL 来上传视频。我尝试嵌入但无法正常工作,因为它为特定网站、YouTube 等提供了嵌入代码。我想做与这个网站完全一样的http://www.myvidster.com/。我尝试cURL为此使用代码:-

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $video_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_VERBOSE, true); // Display communication with server
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json_reply = curl_exec($ch);
curl_close($ch);

和代码file_get_contents是:

$video_url = $_POST['video_url'];
$html = file_get_contents($video_url,true);

但是使用 curl 我也只获得了某些网站的 HTML 部分。我正在尝试 1 周,但仍然没有结果。是否可以从每个站点获取视频的嵌入式代码?或者我做错了什么?

4

5 回答 5

11

对于所有视频流媒体站点,没有单一、通用的方法可以做到这一点——每个站点都有点不同,而且并非所有站点都支持嵌入式视图。

于 2012-09-09T18:39:14.447 回答
4

您应该研究oembed 标准

此协议允许您以标准统一的方式从多个支持它的视频站点接收嵌入代码。点击链接查看实施 oembed 的网站列表

http://oembed.com/#section7

对于不支持该标准的其他网站,您通常可以通过开放图形协议(meta og:...)获取嵌入代码或为每个站点编写html解析规则以提取嵌入

于 2012-09-17T10:32:09.670 回答
1

您可以尝试检索og:video元标记,确保og:video:type元标记是application/x-shockwave-flash

然后,您可以轻松嵌入它。虽然没有完全自动化的方法,但有时您需要针对特定​​网站实施特定方法,因为并非所有视频网站都共享相同的“标准”。

于 2012-09-19T11:08:21.837 回答
0

您需要重新编码视频以确保它们可以在浏览器中查看。一个很棒的命令行软件是FFmpeg。最好的是,它是免费的!

于 2012-09-09T18:36:58.050 回答
0

我的网站www.youtubetutsite.com也有类似的事情要处理。虽然我只用过 YouTube。

从查看 myvidster.com,他们不播放所有视频。他们不能玩的那个,他们有一个屏幕截图,可以作为专有网站播放页面的链接。

我的方法是使用单个嵌入式播放器代码,但从选择中动态注入唯一的视频 ID。这就是我为我的网站所做的。

您需要做的是拥有一个数据库,其中包含(仅作为示例)、、、等字段,VIDEO_ID具体取决于VIDEO_LINK您的需要。根据您的视频,某些选项可能是空白的,因为并非用于每个视频。PLAYER_TO_USEOPTIONAL_URL

困难的部分是仅从您正在处理的站点中获取唯一的视频 ID(您可以让用户选择他们从中上传的站点,以便定位您的代码)。使用 YouTube 相当简单(即http://www.youtube.com/watch?v= HtPpaR3H8d8 &feature=g-user-lss),但我还没有查看所有其他网站以了解它们的索引方式。

从那里,您可以在选择时加载具有所选视频 ID 的相应播放器。不确定这是否对您有帮助,但我希望它会。

于 2012-09-16T19:09:46.020 回答