JSONとHLSと

今年2020年いっぱいでFlash Playerのサポートが終了する1)Adobe Flash Playerサポート終了情報ページということで、各種WebサイトのHTML5対応が進んでいる。
これは、いわゆるアニラジを配信するサイトも例外ではない。
近いところでは、百を超える番組を配信している「音泉」(https://www.onsen.ag/)が7月26日にHTML5対応のメンテナンスを敢行した。

他にアニラジを配信している「アニメイトタイムズ」(https://www.animatetimes.com/radio/)や「響 – HiBiKi Radio Station -」(https://hibiki-radio.jp/)は、とうにHTML5対応を完了させていたから、「音泉」の例はやっとという印象が強い。
ただ、Flash Playerサポートの期限まで5ヶ月の余裕を設けたのはまだしも評価できる。
未だ頑なにHTML5対応の姿勢を見せないのは、放送事業者たる文化放送が運営する「超!A&G」(https://www.agqr.jp/)くらいである。

各サイトは、共通して配信にHLS(HTTP Live Streaming)2)第554回:HLS形式 とは – ケータイ Watch Watchを採用している。
HLSは、Appleが開発したストリーミング配信プロトコルで、上掲サイトに限らず、各種動画配信サイトで採用されている。
「超!A&G」もモバイル向けにはHLSで配信しており、おそらく年末にかけて迫られるHTML5対応では、このモバイル向け配信が拡充されるのだろうと、個人的には見ている。
つまり、技術的には、これらサイトは同じ要領で扱えるということになるのだが、実際はそれほど単純ではない。

ここ1ヶ月ほどの間に、必要に迫られてHLSに対応したアプリケーションを2本新規開発したが、いずれもJavaScriptのコードを解析したり、JSONから情報をバラして来たりと、思考が組み込みに染まっている技術屋には何だかんだ大変だった。
開発の過程で、遅ればせながらPythonの有用性に気付けたのは、日頃あまり変化のない組み込み業界に身を置く技術屋としては僥倖だったと思う。
JSONをバラす場合、型定義のある例えばC#などでは、受け手側のクラス定義をしないと上手くデータを変換できない。データ群が配列になっているものなどは尚更である。
対して、Pythonでは、型定義がないから3)オブジェクトの状態としての型は当然存在する受け手側のデータクラスを定義せずとも変換でき、個々のデータへのアクセスも容易である。
結局、係る新規開発したアプリの1本では、このJSONの取り回し以外にも要因はあるにせよ、UIをC#で、HLS処理側をPythonで実装する格好とせざるを得なかったので、このままもう少しPythonへの理解を深めるというものいい機会だなと捉えている。

サイト処理の過程で、WebBrowserコントロールを使用したのだが、念頭にIE10のサポートが終了したことを考えればEdge対応もしておくべきだろうと、最近WebViewにも手を出した。
WebBrowserと異なり、WebViewにはDOM操作ができるメソッド等が用意されていないというのもあるのだろうが、実装にあたって参考となる技術的な情報はかなり少なかった。それが当初WebBrowserを採用した理由にもなるのだが、先々を考えればそうも言っていられない。
色々調べて、JavaScriptやらDOMやらの知識が必要ということは理解したので、Pythonに加えてこれらも学習する必要がありそうである。
全く、いい機会は続くものだな。

   [ + ]

1. Adobe Flash Playerサポート終了情報ページ
2. 第554回:HLS形式 とは – ケータイ Watch Watch
3. オブジェクトの状態としての型は当然存在する

コメントは停止中ですが、トラックバックとピンバックは受け付けています。