質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

解決済

Web上から動画をダウンロード

削除済ユーザー
削除済ユーザー

総合スコア0

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1回答

0評価

0クリップ

3828閲覧

投稿2017/01/08 21:33

###前提・実現したいこと
Webページ上にある動画をURLSessionでダウンロードし、
オフラインで動画を閲覧できるようにしたいです。

しかし取得できたデータがhtmlでした。(想定ではXXX.movファイル)

ここからどうやってオフライン再生に持っていくのかがわからず、
ご相談させていただきました。

###現状
試しにyoutubeの動画をダウンロードを試みたところ、
ダウンロードとデータの保存がされたところまでは確認できました。

#####コード

Swift

//非同期でURL先のデータをダウンロード func startDownloadTask\(\) { let sessionConfig = URLSessionConfiguration\.background\(withIdentifier: "myapp-background"\) let session = URLSession\(configuration: sessionConfig, delegate: self, delegateQueue: nil\) let url = URL\(string: self\.video!\.embedded_url!\)! let downloadTask = session\.downloadTask\(with: url\) downloadTask\.resume\(\) } //ドキュメントディレクトリのパスを取得して保存用ファルダを用意 func getSaveDirectory\(\) -> String { let fileManager = Foundation\.FileManager\.default let path = NSSearchPathForDirectoriesInDomains\(Foundation\.FileManager\.SearchPathDirectory\.documentDirectory, Foundation\.FileManager\.SearchPathDomainMask\.userDomainMask, true\)\[0\] \+ "/DownloadFiles/" if !fileManager\.fileExists\(atPath: path\) { createDir\(path: path\) } return path } //ダウンロード完了後の処理 func urlSession\(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL\) { print\("finish download"\) var data: NSData! do { if let data = NSData\(contentsOf: location\) { let fileExtension = location\.pathExtension let filePath = getSaveDirectory\(\) \+ getIdFromDateTime\(\) \+ "\." \+ fileExtension print\(filePath\) try data\.write\(toFile: filePath, options: \.atomic\) } } catch let error as NSError { print\("download error: \\\(error\)"\) } }

#####データ保存先
/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

#####取得データ
![イメージ説明](1c9e3e14aff604e9a036c9df5900ea73.png)
一部のみお見せしていますが、このようにhtmlファイルです。

###質問
Youtubeから動画をダウンロードするアプリがあることは確認しております。
それらのアプリはどうやって動画をダウンロードしているのでしょうか?
1)そもそも取得先のURLが不適切である
2)htmlから動画を抽出、.movに変換する方法がある
3)その他

具体的な実施方法でなくともかまいません
方法論だけでもいいのでもしご存知の方がいましたらご共有いただけると幸いです。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています