iOSのHLSダウロードとaggregateAssetDownloadTaskのassetTitleのバグについて
こんにちは、iOS エンジニアとして Swift を書いている @kz_morita です。
今回は iOS で動画ダウンロード機能を実装したときにハマったことについて書いていこうと思います。
TL;DR HLS は Apple が提唱した動画配信用のプロトコル HLS の動画もダウンロードすることができる Apple の サンプルコード がある aggregateAssetDownloadTask の assetTitle にマルチバイトを指定するとダウンロードできないケースがある Http Live Streaming 動画を iOS アプリからダウンロードする HLS とはなにか? Http Live Streaming (HLS) とは、Apple から提唱された動画配信の仕組みでその名の通り動画のストリーミング再生に特化した動画配信技術です。
以下のような特徴があります。
HTTP サーバーを利用できる (CDN つかえる) Live 放送 / Ondemand 放送 の両方に対応している 帯域に応じて最適なストリームに切り替えられる HTTPS を使用して暗号化とユーザ認証ができる とくに最初の HTTP サーバーで配信することができるため、手軽に動画を配信することができるのが特徴です。
くわしくは以下のリンクを参照ください
https://developer.apple.com/streaming/ HLS をダウンロードする HLS はストリーミング用のプロトコルで、 .m3u8 という拡張子をもった以下のファイルと、実際の動画をセグメントに分割した .ts ファイルが必要となります。