使用 oembed 端点获取 Instagram 的视频媒体源

2023-12-27

上下文

我有一段(jQuery)ajax 代码,直到最近几周左右,它已经愉快地工作了大约 9 个月。

此代码使用 Instagram 的嵌入端点 http://instagram.com/developer/embedding/这使我能够从正常的 Instagram 链接中获取媒体源(图像或视频),例如http://instagram.com/p/BUG/无论用户和without需要一个access_token.

简化示例:

var URL = "http://api.instagram.com/oembed?url=http://instagram.com/p/BUG/";
$(document).ready(function () {
    $.ajax({
        url: URL,
        dataType: "jsonp",
        cache: false,
        success: function (response) {
            console.log(response.url);
        },
        error: function () {
            console.log("couldn't process the instagram url");
        }
    });
});

在上面的代码中,response.url将返回完整的媒体 URL 源,例如:

http://photos-a.ak.instagram.com/xxxx/1234_123456123_123456_n.jpg // image or
http://distilleryvesper3-15.ak.instagram.com/b0c957463548362858_101.mp4 // video

然后我可以使用返回的 URL 将媒体文件嵌入到我的网页中。

NOTE :

由于我们的想法是获取任何 Instagram 链接的 URL 源(无论用户是谁),因此使用媒体端点 http://instagram.com/developer/endpoints/media/#不是一个选择。


问题

Instagram oembed 端点允许您获取json响应,直到最近几周为止,其结构如下:

{
    "provider_url" : "http:\/\/instagram.com\/",
    "media_id" : "123456789_123456789",
    "title" : "the title",
    "url" : "http:\/\/photos-a.ak.instagram.com\/hphotos-ak-xfp1\/12345678_123456789012345_1234567890_n.jpg",
    "author_name" : "{the user name}",
    "height" : 640,
    "width" : 640,
    "version" : "1.0",
    "author_url" : "http:\/\/instagram.com\/{the user name}",
    "author_id" : 123456789,
    "type" : "photo",
    "provider_name" : "Instagram"
}

正如您可能注意到的,我的 ajax 代码对属性名称特别感兴趣url,其中包含完整媒体的 URL。

Notice那个这个json响应(和今天一样)对于 Instagram 图片仍然有效,however,如果原来Instagram的链接是视频,我们用一个真实的例子:http://instagram.com/p/mOFsFhAp4f/ http://instagram.com/p/mOFsFhAp4f/(可口可乐(c))json响应不返回任何内容url不再是钥匙了。

看来引进之后网络嵌入 http://blog.instagram.com/post/55095847329/introducing-instagram-web-embedsInstagram 决定更换密钥url by a html仅适用于视频的 (oembed) json 响应中的属性,其中包含要嵌入的 iframe,如下所示:

{
    ...

    "html" : "\u003ciframe src=\"http:\/\/instagram.com\/p\/BUG\/embed\" width=\"616\" height=\"716\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\"\u003e\u003c\/iframe\u003e",

    ...
}

...当然,这破坏了我的代码,因为response.url未定义。


问题

Instagram json 响应发生更改后,如何获取完整视频的 URL?

不幸的是,我在 Instagram 的开发者网站上找不到任何合适的文档或更改日志(他们有很棒的 AP​​I,但文档很差。)

Please notice该问题是关于 Instagram API (v1) 嵌入端点而不是 jQuery 或 ajax 问题。

我正在寻找(可能是未记录的)Instagram 的 API 选项、端点、oembed 或其他(不需要access_token),这使我能够从正常的 Instagram 链接中检索到媒体视频的直接链接(最好是在 json 响应之后),无论用户如何……或者愿意考虑一个不太黑客的解决方法。


这可能不是最好或最佳的答案,但我相信这将暂时解决您的问题,因此您可以考虑解决此问题:

感谢whateverorigin.org服务,我们能够获取跨源json,其中包含您可能请求的所有数据,您所要做的就是将返回的对象转换为字符串,然后使用正则表达式来获取您需要的任何数据。

var myvideourl="http://instagram.com/p/mOFsFhAp4f/"
$.ajaxSetup({
    scriptCharset: "utf-8", //maybe "ISO-8859-1"
    contentType: "application/json; charset=utf-8"
});

$.getJSON('http://whateverorigin.org/get?url=' + 
    encodeURIComponent(myvideourl) + '&callback=?',
    function(data) {

        var xx=data.contents
        var dataindex=xx.search('<meta property="og:video" content=')
        var end=xx.indexOf('/>', dataindex);
        var yy=xx.slice(dataindex,end+2)
        var metaobject=$.parseHTML(yy)
        alert(metaobject[0].content)
        console.log(metaobject[0].content)
});

这是示例:

JS 小提琴演示 http://fiddle.jshell.net/prollygeek/j53sz/1/

对我来说效果很好,但只在可口可乐视频上尝试过,没有在其他链接上尝试过。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 oembed 端点获取 Instagram 的视频媒体源 的相关文章

  • 优雅地处理没有数据的 amcharts

    我想知道我的 dataProvider 是否为空 amCharts绘制时默认为null 我怎样才能动态地处理它 var chart AmCharts makeChart chartdiv theme none type serial dat
  • 通过 JavaScript 检测浏览器换行

    我需要 javascript 来检测每个浏览器包装的文本行并将其包装到 span class line 我读过一些关于测量每个单词的 y 轴的文章 但还没有看到可靠的解决方案 这是我到目前为止所拥有的 看到它Jsfiddle http js
  • 正则表达式以任何顺序匹配查询中的所有单词

    我正在尝试为一个项目构建一个搜索功能 该功能根据用户搜索输入以及它是否与针对项目列出的关键字匹配来缩小项目范围 为此 我将项目关键字保存在data属性并使用 RegExp 模式将查询与这些关键字进行匹配 我目前正在使用这个表达式 我知道它不
  • 暂时禁用提交按钮

    我有一个将大文件上传到服务器的表单 像这样的事情
  • Jquery:选择器找不到类?

    我正在尝试推进 Jquery autcomplete 功能 我希望 Jquery 自动完成在表中创建新行 到目前为止 这有效 但我希望 Jquery 添加一个删除按钮 因此用户可以删除他添加的项目之一 document ready func
  • Prototype 和 jQuery 一起?

    我注意到我使用的某个脚本依赖于原型 Lightbox 2 它会与 jQuery 在同一页面上一起工作吗 有没有办法确保它们不发生冲突 你可以 但你需要采取特殊步骤 http docs jquery com Using jQuery with
  • jquery验证-等待远程检查完成

    当我打电话时 form valid 我连接了远程验证检查 一切正常 但是如果所有其他字段都有效 则表单会通过验证 因为远程检查没有 足够快 返回响应 有没有办法强制 jquery 验证等待任何远程检查完成或挂钩远程检查调用的完成事件 我目前
  • 选择变量的嵌套元素 - jQuery

    我希望将变量传递给函数并让函数选择该变量中的元素 我不熟悉这种情况的语法 但是有人可以建议吗 例如 当在容器内单击按钮时 我希望将该容器存储在变量中 好吧 我有那部分 但后来我希望选择该容器中的某个元素 例如 container div e
  • Rails 4 可安装引擎,找不到文件“jquery”

    我正在创建一个 Rails 可安装引擎插件 它使用 gem jquery rails 我在 gemspec 文件中添加了这段代码 s add dependency jquery rails gt 3 0 1 and run bundle i
  • 删除数据表列中的额外填充

    你好 我创建了 JQuery DataTables 如下所示 所以我的问题是如何删除 图片 列中过多的填充 这就是我初始化表的方式 violators tbl DataTable aoColumnDefs bSortable false a
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • 如何在 jQuery 中获取 ul 列表中 li 的第一个 href 链接

    我有以下清单 ul class tabs li a href testlink php First link a li li a href testlink2 php Second link a li ul 我想获取第一个链接的 href
  • Android 深度链接至 Instagram 应用

    Instagram 已经发布了 iOS 深层链接的 url 方案 但尚未为 Android 创建文档 有没有办法深入链接到 Android 上的 Instagram 应用程序 以转到 Instagram 应用程序中的特定位置 例如 Inst
  • 如何以编程方式处理 JqGrid 事件?

    我正在使用JqG rid 的 ASP NET 包装器 http www trirand net demoaspnet aspx 我想以编程方式连接一些网格的处理程序events http www trirand com jqgridwiki
  • jQuery Mobile 表单验证

    我有一个移动网站 除了验证之外一切都工作正常 基本上我希望从用户那里获取值 然后在单独的页面 process php 上处理它们 但是 在这样做之前 我需要检查以确保字段已填充 我已经研究了几种方法来做到这一点 但似乎没有一种有效 我现在有
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • ajax4jsf死了吗?还有哪些其他适用于 JSF 的 AJAX 库?

    我目前正在使用JBoss RichFaces http www jboss org jbossrichfaces 我正在从事的项目的 JSF 组件库 一般来说 它工作得很好 特别是 ajax4jsf A4J 提供的 AJAX 支持 但我发现
  • Jquery 验证不能正确验证数字?

    我在使用 jquery 非侵入式验证验证数字时遇到问题 我使用的版本是 ASP NET MVC 3 jQuery 1 9 1 jQuery 用户界面 1 10 1 JQuery 验证 1 11 0 我试图验证的输入是
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro

随机推荐

  • 使用箭头键进行 Angular2 导航

    我正在开发一个 Angular2 项目 其中有一个项目列表 单击任何项 目都会使用项目详细信息组件显示其详细信息页面 我正在尝试找到一种方法 允许用户使用左右箭头键导航项目 因此 我有一个项目列表 例如 当用户单击列表中的第一个项目时 它会
  • 使用 Numpy 数组进行 Pandas MultiIndex 查找

    我正在使用代表图形的 pandas DataFrame 数据帧由指示节点端点的 MultiIndex 进行索引 Setup import pandas as pd import numpy as np import itertools as
  • Ruby 中的 base64 编码字符串中的奇怪 \n

    Ruby 中内置的 Base64 库添加了一些 n 我无法找出原因 对于这个特殊的例子 irb main 001 0 gt require rubygems gt true irb main 002 0 gt require base64
  • 为什么通过同一 COM 对象的不同接口检索的 IUnknown* 指针具有相同的值?

    我有以下 COM 接口层次结构和实现它们的类 interface IX public IUnknown interface IY public IUnknown class CA public IX public IY Here class
  • 在 Shopify 中选中自定义复选框时更改产品价格

    当选择自定义复选框时 我需要能够更改产品价格 我想为一种产品添加 10 00 美元的雕刻费用 为其他产品的雕刻费用添加 20 美元 我无法将其添加为 Shopify 中的变体 因为它们根据变体处理库存 我正在使用 Debut 主题 我有在液
  • 动态添加/覆盖property属性的setter和getter

    我需要使用 模仿语法糖语法在子类中动态装饰 getter 和 setter 对方法 我正在努力解决 setter 的实现问题 class A def init self x print init self x x property def
  • Loopj Android 异步 Http - onFailure 未触发

    我正在使用来自loopj的很棒的异步http库 但是我遇到了一个小障碍 如果用户没有互联网连接或失去连接 应用程序将不会返回任何内容 这部分是预期的 但它也不会触发 onFailure 方法 另外 我在有互联网连接时使用的代码确实有效 因此
  • Xcode 8 在 Interface Builder 中扭曲和拉伸图像

    在 Xcode 图像资源文件夹中添加了 3 个 PNG 文件 1x 2x 3x 使用图像向 Interface Builder 添加按钮时 它看起来扭曲仅在界面生成器中 这在 Xcode 7 中工作得很好 有谁知道我需要做什么来解决这个问题
  • Nodejs Passport - 使用多种 Google 策略

    我不确定这是否可行 但我想使用多个 Google 策略 以便根据链接 用户使用一组不同的范围 我创建了两个单独的护照变量 passport require passport passport2 require passport 我将它们设置
  • 使用字母数字子集生成 1M 个唯一随机密钥

    我想生成 1M 个随机 出现的 唯一字母数字密钥并将它们存储在数据库中 每个密钥的长度为 8 个字符 并且仅使用子集 abcdefghijk n pqrstuvxyz 和 0 9 字母 l m o 和 w 被丢弃 由于印刷空间有限 m 和
  • javascript/jquery 中是否有等效的 PHP date() ? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试计算一年中的某一天 无论是今天还是其他日期 在 PHP 中 我可以使用 date 函数并做任
  • 编写库(而不是应用程序)时如何处理异常 - Java

    我目前正在为 RESTful Web 服务 API 编写 Java 包装器 我现在正在尝试清理一些异常处理 但不确定采取什么方法 这是一个供 Java 程序员使用的工具 因此我无法像处理最终用户应用程序那样真正处理它 如果我有一个方法 连接
  • 如何替换元胞数组中的元素?

    我有一个元胞数组 A NaN k m n 我想用 NaN 替换除 A 的第三个元素之外的所有元素以获得 B NaN NaN m NaN 请对我如何解决这个问题有任何帮助 建议吗 另外 是否可以通过一行代码来完成此操作 您可以创建一个所有 N
  • 使用Random.range生成级别no而不重复

    我尝试使用递归来解决手头的问题 如下所示 int newlevelgen int exampleno Random Range 1 4 if exampleno lastlevelno lastlevelno exampleno retur
  • Sling 重写器的工作原理说明

    我想了解 sling url 重写是如何工作的 我正在关注这个网址 http www cognifide com blogs cq multidomain cq mappings and apache configuration http
  • 自托管 WCF 服务无法通过 WCFTestClient 进行测试

    我正在尝试使用 WCFTestClient 测试我的自托管 wcf 服务 我收到这样的错误 错误 无法从中获取元数据http localhost 2303 MyService http localhost 2303 MyService如果这
  • Django 模型字段。自定义字段值设置器

    有没有办法在 django 自定义属性设置器中执行这样的操作 class MyModel models Model myfield models CharField length 250 myfield setter def set pas
  • 读取 COBOL 中的 STDIN (SYSIN)

    我想从 COBOL 中的 STDIN 又名 SYSIN 中读取行 现在我只想把它们打印出来 这样我就知道我已经拿到了它们 从我读到的所有内容看来 这应该有效 IDENTIFICATION DIVISION PROGRAM ID APP EN
  • 无法解析 ApplicationModule 的参数:(?)

    对 Angular 来说还很陌生 我的应用程序包含 1 个服务和 3 个组件 编译成功 我收到此错误 但不知道出了什么问题 未捕获的错误 无法解析 ApplicationModule 的所有参数 Debugging gave me very
  • 使用 oembed 端点获取 Instagram 的视频媒体源

    上下文 我有一段 jQuery ajax 代码 直到最近几周左右 它已经愉快地工作了大约 9 个月 此代码使用 Instagram 的嵌入端点 http instagram com developer embedding 这使我能够从正常的