我正在尝试从共享链接播放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()
}
这会打开播放器但不播放视频 任何帮助表示赞赏。
答案 0 :(得分:6)
您正在向AVPlayer提供网页网址,但这不起作用,您必须使用视频本身的网址。
使用Fuzi HTML解析库,您可以从网页上获取视频网址。
诀窍是在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)
}
}
这会从页面获取网址" http://scontent-cdg2-1.cdninstagram.com/t50.2886-16/15872432_382094838793088_926533688240373760_n.mp4",您可以像往常一样使用它来下载或流式传输视频。