Electronとpuppeteerを用いてRadikoをMP3化するソフトを製作しました
Electronとpuppeteerを用いてRadikoをMP3化するソフトを製作しました。タイムフリーの番組表から番組を選ぶ⇒MP3ダウンロードが可能です。
製作中はノリノリで製作していたんですが、既にRadikoolELの開発が進んでいたんですね。そのことに全く気がつかず、ただの劣化版をリリースするに至りました。
成果物は全く無用なものに終わってしまいましたが、今回の経験で得た知見を以下に記しましたので、どなたかの参考になれば幸いです。
Electron内部でpuppeteerを使うとアプリの容量がとっても大きくなる
1 Electronは容量がばかでかい
Ask HN: Do you think Electron is good for building Desktop Apps? | Hacker News
Electronでリリース用にビルドしてみると、意外と容量が大きくなってしまうことに気づきます。実際、hellow worldするだけのアプリケーションで優に100MBを超えてしまいます。これは、Electronがchromiumをベースしていることに由来します。
これを避ける為の開発も行われていますが、まだ実際のリリースに採用することは推奨されていません。
2 puppeteer
puppeteerはchromiumをベースにしているため、いくつかの点でpuppeteerと異なります。例えば、デフォルトでFLASHが同梱されていない・ライセンス上の問題でHLSがサポートされていない・extentionが使えない等です。
これらの点を解消には、chrome launcher等でユーザが既にダウンロードしているchromeを探すか、地味にchromiumの設定をいじっていくのが妥当かと思います。
また、puppeteerにはchromiumが同梱されていますから、chromium自体の容量も大きいことも気になります。puppeteer同梱のchromiumをelectron内部で使う場合、いよいよ容量が大変なことになってきます。
そんな訳で、Electron内でpuppetterを使うことはベストプラクティスなのかどうか、設計時にちゃんと調べることが、今の時点では必要かと思います。