iPhone 充電ケーブル 2M 3本セット 高耐久 あいふぉん コード USB Lightning Apple iPhone 14 13 12 11 Pro Max X/Xs Max/Xr/8 Plus/8/7 Plus/7/6s Plus/6s/6 Plus/6/iPad Air/iPad mini
¥1,189 (2025年4月28日 13:11 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)
Youtubeから需要のある動画のみを取得できるアプリケーションを作ったので、開発背景や気づき、今後の展望等色々書いていこうと思います。
自分の所属しているコミュニティの代表の方がYoutubeでReactやNext.jsを用いたハンズオン動画を定期的に投稿されており、Youtubeから需要のある動画を検索できるツールが欲しいとのことで少し調べたところ、Youtube Data API V3で最低限の部分は比較的すぐに作れそうだと思い開発に至りました。すでに似たようなツールはあるのですが、月額5万くらいするみたいです。
そもそも需要のある動画とは?
Youtubeではチャンネル登録者数の3倍以上の再生数を持つ動画は需要のある動画と言われています。
ちなみにコミュニティのYoutubeチャンネルはこちらです
需要のある動画を検索できる
検索するとチャンネル登録者数の3倍以上の再生数を持つ動画のみが表示されます。これにより需要のある動画を探すことができます。
並べ替え機能
需要のある動画の中から目的にあった動画を効率的に探せるよう倍率(再生数/登録者数)やいいね順などで動画をソートできます。
CSVダウンロードできる機能
画像にも少し写ってますがCSVでダウンロードできます。動画の情報を保存しておいて後で見返したい時に使えると思います。ダウンロードすると以下のような形式のファイルを取得できます。
その他
ちなみにこのような調査は隙間時間にやることが多いそうなので、スマホサイズにも対応してあります。またYoutube apiの仕様上一度に検索できる動画の数は決まっているので「もっと見る」で追加検索できるようにもしています。
なるべく早く形にしたかったので、route hundlerでapiも作れるNext.jsをメインに開発しました。youtubeのapiは初めて使ったのですが、ドキュメントが整ってるのとググれば使い方がたくさん出てくるので使いやすいと思いました。今回は使ってませんがreact-youtubeというライブラリを使えばいい感じに動画を表示できるみたいです。
- next.js
- daisyui
- motion
- papaparse
- vercel
- github actions
- youtube data api v3
YoutubeのAPIはデフォルトで1日に10000ユニットと叩ける量が決まっており、1回の検索につき100ユニット、1つの動画とチャンネル情報を取得するごとにそれぞれ1ユニット消費します。最初に自分が行っていた実装では検索キーワードから全ての動画を取得した後に、動画を1つ1つループしながら動画idとチャンネルのidを渡してリクエストを送っていたので、1回の検索につき最大200のユニットを消費する状態になっていました。(1回の検索で取得できる動画の最大値が50件なので100(検索)+50(動画情報)+50(チャンネル情報)=200)
これだと1日に最大50回しか検索できない状態だったので少し調べたところ、リクエストの際は取得した動画のidとチャンネルidをまとめて送れることがわかったのでこれらをあらかじめ取得してまとめてリクエストを送ることで、1回の検索につき固定で102のユニットのみ消費されるようにすることができました。(100(検索)+1(動画情報をまとめて取得)+1(チャンネル情報をまとめて取得)=102)
これで1日あたり100回近く検索できるようになり、元の実装の半分ほどのユニット消費に抑えることができました。
ドメイン知識大事
今回は少額の報酬をいただき実際にフィードバックをもらいながら開発を行ったのですが、やはりアプリを使うタイミングや必要な機能、欲しい情報や競合等を把握していないと使ってもらえるものを作るのは難しいと感じました。今回は詳しい方からフィードバックをもらえる環境があったので良かったですが、作ろうとしている物のドメインキャッチアップは必須だと感じました。
作り続ける
自分は割とまとまった時間で一気に作業するタイプなのですが、今回は定期的にフィードバックをいただいていたのもあり1日最低1コミットを目安に改善し続けるのを意識しました。素早くリリースすることで素早く反応をもらえて改善できるで毎日少しでも進捗を出すのが大事だと思いました。
コミュニティの方に実際に使ってもらい、ちゃんと作ればマネタイズもできそうとのことだったので今後はそこを目指して作っていきたいです。また字幕テキストの取得や動画の手動フィルタリング等実装できてない部分がまだあるのでその辺りの機能追加も行っていきます。ちなみにYoutube Data APIの利用枠はGoogleに上限申請できるみたいなので開発と並行して申請予定です。
実際に誰かに使ってもらってフィードバック得て開発するのは初めてだったのでとても良い経験になりました。今後は時間だけでなく価値を提供して対価を得られるエンジニアにもなっていきたいです。
プログラミングコーチングJISOUではメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
気になる方はぜひHPからライン登録お願いします