我正在尝试从外部URL访问视频元素的URL。
这是我尝试访问的网址的一个例子:https://www.musical.ly/v/MzA4NTExODI2MDI0MjMzNDgxOTEyMzI.html
file_get_contents和 curl 返回一个没有视频的 html 代码,我做错了什么?
任何PHP/jQuery解决方案都会很棒!
似乎 url 的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');
}