我正在尝试以编程方式获取 Instagram 视频的嵌入链接。不幸的是,Instagram 的 oEmbed 端点似乎将视频视为照片,并且只返回关键帧图像,而不是提供嵌入链接。
有谁知道无需手动访问该视频页面即可检索 instagram 视频的嵌入链接的方法?
我无法找到检索嵌入 URL 的方法,但是在检查 Instagram 提供的嵌入后,我能够根据 Media API 端点提供的信息确定如何生成它。基本上,您只需要附加/embed/
到该媒体的短网址的末尾即可。所以它在 Django 模板中看起来像这样:
<iframe src="{{ media.short_link }}embed/" width="612" height="710" frameborder="0" scrolling="no" allowtransparency="true"></iframe>
作为一个有趣的附注,我还发现您可以在嵌入代码中更改宽度和高度,并且它可以毫无问题地工作(至少当您将尺寸减半时,我没有尝试其他任何方法)。
根据Instagram 的 API 站点,对视频对象的GET /media/media-id请求会返回一个 JSON 对象,其中包含您在“data.videos.low_resolution.url”中所需的信息。
我成功地将他们的示例请求返回的视频嵌入到带有以下代码的网页中:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Video Embed Test</title>
</head>
<body>
<video width="480" height="480" controls>
<source src="http://distilleryvesper9-13.ak.instagram.com/090d06dad9cd11e2aa0912313817975d_102.mp4"
type="video/mp4"/>
</video>
</body>
</html>
获取 Instagram 视频 URL 的一种简单方法是?__a=1
在您尝试定位的帖子末尾添加(即https://www.instagram.com/p/BqTd8dhFKLN/?__a=1
)。
然后,您可以导航到["graphql"]["shortcode_media"]["video_url"]
或["graphql"]["shortcode_media"]["edge_sidecar_to_children"]["edges"][carousel_number]["node"]["video_url"]
(取决于帖子是否为轮播),这将为您提供视频 URL。