はじめに
はじめまして!
会社員やりつつ、趣味で個人開発を行っております。
フロントエンジニアのふぁると申します。
【Twitterリンク】
https://twitter.com/@fal_engineer
Remixについて
Remixとは、2021/11/23にOSSとしてリリースされたばかりの、Reactをベースにした新しいフルスタックフレームワークです。
Reactベースのフレームワークというと、Next.jsがスタンダードですが、RemixはNext.jsやGatsbyとは一線を画す設計思想となっています。
具体的には、SSG(静的HTMLを予めジェネレートし、ブラウザにはHTMLを配信する形式)を撤廃し、SSR(サーバーにレンダリングの責務を持たせる方式)、ブラウザのFetchAPI等のエコシステムを利用し処理・描画速度の向上を図っています。
作ったアプリ
動画を「探す」のではなく、「見つける」サービス
テキストボックスに八文字の文字を入力し、「動画を見つける」をクリックすることで、Youtubeから適当な動画を一つ拾ってくるというアプリです。
YouTubeAPIv3を利用しています。
入力された文字と、ヒットする動画に関連性はないのですが、ヒットする動画はランダムではありません。
入力された八文字を全て文字コードにコンバートし、文字コード同士の四則演算を行い、最終的に五文字の「サーチワード」を生成しています。
動画がヒットした場合は、取得した動画のVideoIdというパラメータをiframeにセットし再生ウィンドウを生成します。
設計思想
imgurという画像のアップローダがあります。
imgurは某掲示板ではデファクトスタンダードとして利用されていたのですが、アップロードされているファイルのimgur内でのURLのid部分に適当な文字を入れて、「一番面白い画像出てきた奴の勝ちな!」みたいなゲームが盛り上がっていたことを思い出しました。
あれをやりたかったんです。
なぜクソアプリとなったのか。作り込まなかったのか。
YoutubeAPIv3は、APIキーをgoogleアカウントに紐づけて利用するのですが、
APIを利用するにあたり、週あたりの利用限度が設けられています。
利用限度が週では10,000クォーターで、チャンネルの情報の取得や、idから動画を見つける、といったAPIは1クォーター程度しか使われません。
しかし、このTubeMixで使っているAPIは検索ワードを元にsearchするもので、それだけなんと100クォーターも消費されてしまうのです。
TubeMixは、動画がヒットするとも限らないのに、100回使えば一週間誰も使えなくなるという仕様なのです。
本当はランキング機能を実装してみたり、イベントを開催したりして遊びたかったのですが、これではいけません。
そもそもの仕様に問題があるのです。
タイトルの意味
Remixの話を最初に挙げましたが、もちろんこのアプリもRemixで作り始めました。
Remixの開発サーバーではきちんと動いたのですが、なんと、Netlifyにデプロイしようとすると何度やり直してもコケるのです。
Vercelや別のサーバーにデプロイ等も考えはしたのですが、収益化も大して望んでいない(YoutubeAPIの利用規約では、動画がメインのコンテンツであるサービスでの商用利用は出来ない事になっています)小規模アプリですし、結局そんなことするくらいならReactにコンバートしてさっさと安全にNetlifyにデプロイしてしまおうと思いました。
結局、「imgurスレみたいに皆で面白い動画見つける遊びやりたい」、「Remixでサービスをローンチまで持っていきたい」の片方すら叶わなかったのです。
クォーター上限を引き上げる申請プラットフォームもあるにはあるのですが、中々承認されにくいと聞きますし、そこまで育てたいサービスでも無いので、クソアプリアドベントカレンダーのネタとして供養しようと思いました。
以上です。お目汚し失礼しました!