我试图从外部网址访问视频元素的网址。
这是我尝试访问的网址示例: https://www.musical.ly/v/MzA4NTExODI2MDI0MjMzNDgxOTEyMzI.html
file_get_contents和curl会返回一个没有视频的HTML代码,我做错了什么?
任何PHP / jQuery解决方案都会很棒!
答案 0 :(得分:1)
似乎MzA4NTExODI2MDI0MjMzNDgxOTEyMzI
- 网址的一部分是视频密钥。
他们正在调用:https://www.musical.ly/rest/v2/musicals/shareInfo?key=MzA4NTExODI2MDI0MjMzNDgxOTEyMzI
以json格式获取视频信息。
您可以这样做,只使用json响应中的videoUri
吗?
为了好玩,我创建了一个如何从初始URL获取它的示例。这当然需要一些验证等等,但这是一个有效的例子:
<?php
$url = 'https://www.musical.ly/v/MzA4NTExODI2MDI0MjMzNDgxOTEyMzI.html';
// Extract the url path and explode the segments
$segments = explode('/', parse_url($url, PHP_URL_PATH));
if (isset($segments[2])) {
// We have the key segment so let's build the URL to fetch the info
$infoUrl = 'https://www.musical.ly/rest/v2/musicals/shareInfo?key=' . rtrim($segments[2], '.html');
$info = file_get_contents($infoUrl);
$info = $info ? json_decode($info, true) : null;
}
if (isset($info['result'], $info['result']['videoUri'])) {
// We have all we need, let's get the video uri
echo $info['result']['videoUri'];
} else {
die('No video URI found');
}