i-fil○erというフィルタリングが導入されて閲覧できるサイトが一気に減ってしまった(禁止されてるサイトを開くと「端末管理者に報告しました」という脅迫文じみたものが表示される)。
校内でスマホの使用は原則禁止なので、配布されるタブレットを使うしかない。
部活が音楽系なのでyoutubeの音源を部活で使用したい時に不便になる(決して授業中にワイヤレスイヤホンをつけて動画を見たいとかではないのである)。
youtubeをダウンロードできるサイトはたくさんあるが、フィルタリングのせいで有名どころは対策されてしまっていて使えない。
プロキシサイトはyoutubeが見れるものが残っていたが、動画が開始されるまでに40秒くらいかかり、しかも音が途切れるので使い物にならない。
ということで、Node.js + express で簡易的にyoutubeの動画をダウンロードできるapiを作成することにした。
自分で使う用なのでフロントエンドがない
家のサーバーはマイクラでいっぱいなので、外部サービスを組み合わせて無料で構築した。
(今回の記事で使用するのはここまで)
① expressを使ってサイトを作る。
② 動画を取得して、ダウンロードする。
これで動画ファイルをダウンロードすることができる。
③起動したらウィンドウが出てくるのでボックスにあるURLをコピー(赤部分)
④UptimerRobotを開いて、+Monitor
を押す。
⑤Monitor Type
をHTTP(s)
にして③のURLを貼る。
Create Monitor
を押して完了!
⑥https://リポジトリ名.ユーザー名.repl.co/api/ytdl/動画のID
でダウンロードできる。(初回のダウンロードには少々時間がかかる)
今回はmp4形式でYoutubeの動画を取得するapiを作った。
このままだとreplitのストレージ上限を超えてしまうので次回はその対策と、ダウンロードされるときのファイル名がIDのままなので動画のタイトルに変更する。 後半はこちら