开发者社区 问答 正文

从SWIFT中的LINK下载Facebook视频

我正在开发一个快速应用程序,在这个应用程序中,用户有一个像facebook等视频的链接,如果用户想下载,他可以在UITextfield然后下载。我试过的代码是

func downloadAndSaveVideo(videoUrl:String?,videoName:String) {
    DispatchQueue.global(qos: .background).async {
        guard let myUrl = videoUrl else {
            print("Invalid Url")
            return
        }
        Alamofire.request(myUrl).downloadProgress(closure: { (Progress) in
            print(Progress)
            self.progress_view.progress = Float(Progress.fractionCompleted)
        }).responseData(completionHandler: { (responce) in
            if let data = responce.result.value{
                print(data)
                let documentUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
                let videoUrl = documentUrl.appendingPathComponent(videoName)
                do {
                    try data.write(to: videoUrl)
                    print("done")

                }catch
                {
                    print("error")
                }
            }
        })
    }
}

如果我使用一个可播放的链接(如这...但是如果试着把facebook链接https://www.facebook.com/pagename/videos/962353737470453/ 或者YouTube,我无法下载那个视频,有人能帮我下载这样的视频,或者把Facebook视频分享链接转换成观看或下载链接,这样我就可以直接从我的应用程序下载视频了。

展开
收起
游客5akardh5cojhg 2019-12-12 10:34:31 339 分享 版权
阿里云 AI 助理回答

下载Facebook或YouTube视频直接通过它们的分享链接是不被官方API支持的,因为这可能违反了它们的服务条款。这些平台通常要求用户通过它们的应用或者网站来观看视频,并不提供直接的下载链接。

对于Facebook,它确实有API可以获取到视频的信息,但并不直接提供下载链接。你需要通过复杂的步骤和可能需要特定权限来间接实现下载功能,但这依然可能违反Facebook的使用政策。

至于YouTube,它提供了API(如YouTube Data API)来获取视频元数据,包括视频的播放URL,但直接下载同样受限,且YouTube明确禁止任何规避其播放器直接下载视频的行为。

如果你的应用程序需要让用户能够下载来自这些平台的视频,建议引导用户通过合法途径,比如使用这些平台提供的下载选项(如果有的话,例如某些YouTube视频作者可能会允许下载),而不是直接从你的应用内下载。

如果你的应用场景确实需要处理视频内容,考虑以下替代方案: 1. 集成第三方服务:有些第三方服务可能提供合法合规的方式帮助用户下载并保存在线视频,但请确保这些服务遵守相关平台的使用条款。 2. 鼓励上传原创内容:构建一个鼓励用户上传自己原创视频的平台,这样你可以完全控制视频的分发和下载。 3. 使用云存储服务:利用阿里云的对象存储OSS(Object Storage Service)来存储用户上传或经过合法授权的视频内容。这样,你可以在合法范围内管理视频的下载和分发。

在开发过程中,确保所有操作都符合相关法律法规及平台政策,避免侵犯版权或违反用户协议。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: