我正在尝试以编程方式获取Instagram视频的嵌入链接。不幸的是,Instagram的oEmbed端点似乎将视频视为照片,只返回关键帧图像,而不是提供嵌入链接。
有没有人知道如何检索Instagram视频的嵌入链接,而无需手动访问该视频的页面?
答案 0 :(得分:9)
根据Instagram's API site,对视频对象的 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>
答案 1 :(得分:5)
我无法找到检索嵌入网址的方法,但是在检查Instagram提供的嵌入时,我能够确定如何生成它关于Media API端点提供的信息。基本上,您只需要将/embed/
附加到该媒体的短网址的末尾。所以它在Django模板中看起来像这样:
<iframe src="{{ media.short_link }}embed/" width="612" height="710" frameborder="0" scrolling="no" allowtransparency="true"></iframe>
作为一个有趣的旁注,我还发现你可以改变嵌入代码中的宽度和高度,并且它没有任何问题(至少当你只是将尺寸减半时,我没有尝试其他任何东西)。
答案 2 :(得分:1)
获取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。