###前提・実現したいこと
Webページ上にある動画をURLSessionでダウンロードし、
オフラインで動画を閲覧できるようにしたいです。
しかし取得できたデータがhtmlでした。(想定ではXXX.movファイル)
ここからどうやってオフライン再生に持っていくのかがわからず、
ご相談させていただきました。
###現状
試しにyoutubeの動画をダウンロードを試みたところ、
ダウンロードとデータの保存がされたところまでは確認できました。
#####コード
Swift
1//非同期でURL先のデータをダウンロード 2func startDownloadTask() { 3 4 let sessionConfig = URLSessionConfiguration.background(withIdentifier: "myapp-background") 5 let session = URLSession(configuration: sessionConfig, delegate: self, delegateQueue: nil) 6 7 let url = URL(string: self.video!.embedded_url!)! 8 9 let downloadTask = session.downloadTask(with: url) 10 downloadTask.resume() 11 12} 13 14//ドキュメントディレクトリのパスを取得して保存用ファルダを用意 15func getSaveDirectory() -> String { 16 17 let fileManager = Foundation.FileManager.default 18 19 let path = NSSearchPathForDirectoriesInDomains(Foundation.FileManager.SearchPathDirectory.documentDirectory, Foundation.FileManager.SearchPathDomainMask.userDomainMask, true)[0] + "/DownloadFiles/" 20 21 if !fileManager.fileExists(atPath: path) { 22 createDir(path: path) 23 } 24 25 return path 26 } 27 28//ダウンロード完了後の処理 29func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) { 30 31 print("finish download") 32 33 var data: NSData! 34 35 do { 36 if let data = NSData(contentsOf: location) { 37 38 let fileExtension = location.pathExtension 39 let filePath = getSaveDirectory() + getIdFromDateTime() + "." + fileExtension 40 41 print(filePath) 42 43 try data.write(toFile: filePath, options: .atomic) 44 45 } 46 } catch let error as NSError { 47 print("download error: \(error)") 48 } 49 50 }
#####データ保存先
/Users/yuri/Library/Developer/CoreSimulator/Devices/7B592E3E-52FC-4013-90CA-5FC379C028A6/data/Containers/Data/Application/2669F6B6-10E0-41E6-B594-BF85CA04C702/Documents/DownloadFiles/2017-01-09-05-37-15.tmp
#####取得データ
一部のみお見せしていますが、このようにhtmlファイルです。
###質問
Youtubeから動画をダウンロードするアプリがあることは確認しております。
それらのアプリはどうやって動画をダウンロードしているのでしょうか?
1)そもそも取得先のURLが不適切である
2)htmlから動画を抽出、.movに変換する方法がある
3)その他
具体的な実施方法でなくともかまいません
方法論だけでもいいのでもしご存知の方がいましたらご共有いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/01/08 21:57