如何使用AVPlayer播放instagram视频

vis*_*kar 2 xcode ios instagram swift instagram-api

我正在尝试从共享链接播放Instagram视频,我使用了以下代码,但它没有流,是否需要任何额外的步骤?任何能在Facebook上获得图形API的源视频网址的API?

网址如下https://instagram.com/p/BOzamYMA-vb/

let videoURL = NSURL(string: "https://instagram.com/p/BOzamYMA-vb/")
    let player = AVPlayer(url: videoURL! as URL)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player
    self.present(playerViewController, animated: true) {
        playerViewController.player!.play()
    }
Run Code Online (Sandbox Code Playgroud)

这会打开播放器,但不播放视频任何帮助表示赞赏.

aya*_*aio 6

您正在向AVPlayer提供网页URL,这不起作用,您必须使用视频本身的URL.

使用Fuzi HTML解析库,您可以从网页获取视频URL.

诀窍是在HTML中找到URL.

对于instagram,我们可以使用此xpath找到它:"//meta[@property='og:video']/@content".

例:

import Fuzi

let link = "https://instagram.com/p/BOzamYMA-vb/"
if let pageURL = URL(string: link),
    let data = try? Data(contentsOf: pageURL),
    let doc = try? HTMLDocument(data: data)
{
    let items = doc.xpath("//meta[@property='og:video']/@content")
    if let item = items.first,
        let url = URL(string: item.stringValue)
    {
        print(url)
    }
}
Run Code Online (Sandbox Code Playgroud)

这将从页面获取URL" http://scontent-cdg2-1.cdninstagram.com/t50.2886-16/15872432_382094838793088_926533688240373760_n.mp4 ",您可以像往常一样使用它来下载或流式传输视频.