我有一个机器人,我一直想添加一个功能,用户输入 Instagram 链接,它就会从帖子中返回下载的媒体。问题是我不知道如何获取视频链接来下载它。
我尝试过使用 npm 中的 Instagram 下载包,但它们通常最终不会返回任何内容。我也尝试过获取网页,但该页面不是静态的,因此请求 HTML 不会给我任何有用的数据。我尝试过的另一个选择是查看网站上的检查元素以查找任何有用的内容,但过了一段时间,我最终没有找到任何可以从代码访问的有用内容。
任何帮助或想法都会很好,因为我尝试了我能想到的任何事情。
简短回答:
拥有没有 2FA 的 Instagram 帐户。
安装 gallery-dl:
sudo apt update && sudo snap install gallery-dl
gallery-dl -g -u "<username>" -p "<password>" "https://www.instagram.com/p/CUU9-FFFaE5/"
编写一些 Node.js 代码,它将像这样或以其他方式异步执行该命令:
const command = `gallery-dl -g -u "${user}" -p "${pass}" "${url}"`;
exec(command, async (err, stdout, stderr) => {
if (err) {
// getting the err.message
} else {
// use the downloaded file name/path to do your stuff
}
});
个人想法:
首先我不建议以非官方方式执行此操作,但除此之外,理论上您可以通过两种方式执行此操作:使用 gallery-dl 等工具或您想要使用的其他替代工具获取媒体或者只是自己解析它(大约 3 年前我曾通过 Node.js 片段解析它,在那一刻 Instagram 一直在改变他们的 API 政策或类似的东西,所以我实际上不记得了我就是这样做的)。
实际上在某种程度上,两种方式都是相同的,它们只是获取数据,但无论如何..您可以在 Instagram 上拥有一些帐户,仅用于进行解析无需任何多因素身份验证,并使用 gallery-dl .
您确定您的 API 有问题吗? 你需要知道这个效果吗:Instagram视频下载 我知道如何实现它。
也许这可行? https://developers.facebook.com/docs/instagram-api/reference/ig-media
为此,您必须使用 Instagram Graph API。
也许您可以尝试在rapidapi上搜索“instagram媒体下载器”下的产品之一,然后从那里开始?
我发现这个可能可以帮助你:https://rapidapi.com/arraybobo/api/instagram-media-downloader/