从外部 URL 抓取视频 URL

Grab video URL from external URL

我正在尝试从外部 URL 访问视频元素的 URL。

这是我正在尝试访问的 url 的示例: https://www.musical.ly/v/MzA4NTExODI2MDI0MjMzNDgxOTEyMzI.html

file_get_contents 和 curl return 一个没有视频的 html 代码,我做错了什么?

任何 PHP/jQuery 解决方案都很棒!

url 的 MzA4NTExODI2MDI0MjMzNDgxOTEyMzI 部分似乎是视频密钥。

他们正在调用:https://www.musical.ly/rest/v2/musicals/shareInfo?key=MzA4NT‌​ExODI2MDI0MjMzNDgxOT‌​EyMzI 以 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');
}