お久しぶりです、桜摩です。
サイトを運営している方で、画像の管理がしにくかったり、無料サーバーを利用している方はサーバーの容量が足りないなどの悩みに直面した方は少なからずいるんじゃないかなと思います。
私もサーバー選びの段階でかなり厳選したつもりでしたが、今後容量不足に直面するかもしれない、WordPressの画像管理って凄くめんどくさいという理由で、Googleフォトやドライブで管理しようと思いツールを自作しました!
この記事ではツール開発の経緯と、使い方や注意点などを書いていきます。
使い方と注意点だけ見たいって方は飛ばしてください。飛ばさないで読んでくれると嬉しいな^^
どうして作ろうと思ったのか
作成の経緯
私が利用しているサーバーは、スターレンタルサーバーのフリープランで、3GBの容量しかないです。その中で運営していくのって割と大変なんじゃないかなとふと思いました。
容量の限界:3GB = 画像3,000枚
あまり意識することがないので気にしたことがないという方も多いと思いますが、FHD(1920×1080)のサイズでpngの場合、1枚で約2~4MBの容量になります。同条件のjpgの場合、1枚で約400KB~1.5MBになります。
間を取って1枚1MBとして、3,000枚アップロードすると3GBはほぼいっぱいになります。しかもWordPressの場合、テーマだったりプラグインを入れるのでそれだけで500MB~1GBくらい使用し、微々たるものかもしれませんが記事の文字等も考慮すると実際にアップロードできるのは2,000枚もないくらいじゃないかなと。
Webでの画像形式とファイルサイズ目安 [2020/5] #PNG – Qiita
表示サイズごとにファイルサイズを比較!画像最適化は、表示サイズと画質調整が重要! – アイデアマンズブログ
著作権とオリジナル画像の重要性
もちろん、Googleなどで画像を探してURLで引用することもできます。ですが、SNSや他のブログで使用されてるオリジナル画像などを使用すると、著作権や許諾が~などの問題が発生しかねません。
それらを考慮すると、出来る限り自分で用意した画像を使用したいですし、Googleはオリジナル要素を評価するので出来る限りオリジナルコンテンツで記事を作成したいですよね。
サーバー容量の圧迫
オリジナル画像を使用する場合、ほとんどは自分で契約したサーバーにアップロードして使用すると思います。3GBが上限のサーバーの場合、単純計算で1記事5枚の画像を使用すると、400記事で容量がいっぱいになってしまいます。つまり、毎日記事を書いた場合1年ちょっと、2日に1記事の場合は2年ちょっとと、長期間のサイト運営を考えると正直しょっぱいです。
容量問題を解決するために
正直プランをアップグレードしたらいいだけですし、最悪乗り換えたらいいだけなんですが、そうじゃない場合は毎回容量を気にしながら記事を書くのはストレスでしかありません。
そこで、私は外部サーバーから画像を引っ張ってくる方法を検討しました。
SNSでの試行錯誤と失敗
手軽に画像の直リンクを取得できるサービスはないかなと考えてた時にふと思い出しました。「Discordなら直リンク出せるじゃん」
しかし現実はそう甘くはなく、実際にDiscordの直リンクを使用して記事を作成したところ、1週間も経たないうちに画像のリンクが切れました。
Discord上では画像が表示されるのに、直リンクは切れる。私の記事は画像が表示されなくてめちゃくちゃ。
Googleフォトとの出会い
そこで自分で試行錯誤しつつ、色々調べて回りました。ですが大抵のサービスは有料で、直リンクの取得もめんどくさかったりでなかなかいいサービスが見つかりませんでした。
そんな時、Googleフォトを紹介してるサイトをみつけ、Googleのサービスなら安心感がありますし、Googleなら普段から使用しているので「これだ!」と思い、Googleフォトを使うことにしました。
悪夢の始まり
私はPythonを少し書けるので、最初はPythonで作ろうかなと思ってました。ただ、PythonでGUIを実装して、都度プログラムを起動してリンクを取得してって正直めんどくさい・・・。今思えばtxtファイルにURLを書いてプログラムにD&Dして結果をtxtに出力してもらうようにすればよかったとは思いますが、当時はそんなアイデアも浮かばず。
なので思い切って「せっかくサイト作ったし、専用のページでも作ろう」と思いました。PHPやJavaScriptもCSSもろくに書けないのに。。。
それでもページ作りを始めた私は、AIに「Googleフォトから画像の直リンクを出すページを作って」と、Microsoft Copilotにお願いしました。しかし、これが大きな間違いだったのです。
Microsoft Copilotとの苦闘
そもそもMicrosoft Copilotはプログラミングに強いわけではありません。具体的な指示、画像の場所などを伝えても上手くいかない。生成してもらったスクリプトをテストし、フィードバックとエラーを理解する為に解説してもらう日々。2日が経過し、このスクリプトでは実現不可能ということがわかりました。
DeepSeekへの期待と裏切り
次に頼ったのはDeepSeek。私が好きなAIで、プログラミングもそこそこ出来る印象でした。最初は順調に進み、突然「Googleドライブにも対応させます」とか言って勝手に機能の追加をしやがりました。完成してないのに・・・。ただでさえキャパオーバーなところに、勝手な行動をされて開発速度は半減。しかもDeepSeekはサーバーがくそ弱いのでさらに時間がかかりました。毎日4~8時間を費やし、乗り換えて2日目以降壁にぶちあたり全く進まず、結果的にDeepSeekで完成させることはできませんでした。
救世主ChatGPT
最終手段として、ChatGPTに引き継ぎました。無料版ユーザーの為、思った通りに進められないと思ってたんですが、杞憂でした。進捗状況とスクリプトの説明を含めた5回のやり取りで、DeepSeekに超えられなかった壁を突破。ChatGPTの優秀さに惚れ直しました。
怒涛のスピードで完成!
そこからは早く、トントン拍子で完成まで行きました。DeepSeekでベースが出来てたとはいえ、Googleフォトの直リンク取得機能を半日で完成させ、難航していたGoogleドライブの直リンク機能も羽陽曲折ありましたが、1日で完成!
ChatGPTに頼ったことで初心者でもトータル1週間で機能の完成までもっていくことが出来ました。
反省と成長
今回の悪夢の原因は、Microsoft Copilot。普段使いする分には凄く優秀なんですが、プログラミングにこの子を選択したのは失敗でした。
曖昧な質問や情報提供不足、そして自分でちゃんと調べなかったのもよくなかったなと反省しました。
ですが、時間をかけてDeepSeekでベースをほぼ完成させ、思い切ってChatGPTに乗り換え、諦めずにやり遂げたからこそ完成にたどり着けました。えらい!
ご褒美にチョコを1粒食べて機能の完成としました。
ここまで読んでくれた方、ありがとう;;
機能紹介・使い方
Googleフォト Googleドライブの画像の共有リンクを直リンクに変換するツールです!使い方の記事を参照してからご利…
機能
① モード変更 ② 共有リンク入力ボックス ③ 変換実行ボタン ④ 直リンク出力ボックス ⑤ 直リンクコピーボタン ⑥ 直リンクの画像プレビュー
使い方
- ①でGoogleフォト or Googleドライブを選択
- ②のボックス内にGoogleフォトかGoogleドライブで取得した共有リンクをペースト
- ③の変換実行ボタンを押す
- 少し待つと④に結果が出力されます。
- 出力ボックスを直接コピーするか、⑤の「URLをコピー」ボタンでURLをコピー
- 完了!!
注意点
- 一通りテストし、エラーも出ないように調整しましたが、素人クオリティであり、PHP, JavaScript, CSSの知識ない上にAIにすべて作ってもらったため、完璧に動くとは限りません。
- またGoogleの仕様上、一般的なアクセスを「リンクを知っている全員」にしないとリンクの取得ができません。
- 当サイトやページの仕様上キャッシュとして保存されることはありますが、それを利用すしたり解読する技術がないので、共有されたリンクをどうこうするということは絶対にありません。安心してご利用ください。
- 突然の仕様変更でいきなり動かなくなる可能性があります。その際はお問い合わせください。Twitter | Mail
お願い
Google Photo / Drive Direct link generatorを使用するにあたって、以下の事を考慮していただけると助かります。
-
- 当サーバーに限らず、大体のサーバーには転送量に限りがあります。(900GB/日) その為、botやスクリプト等の不必要な使用や、使用目的のない画像の変換は控えてください。
- またこのことから、これらを埋め込んだページの公開や自作発言はおやめください。
- この機能は無料で提供しており、作成したことによる報酬等はありません。その為、商用利用はNGでお願いします。
- ただし、GoogleAdsenseやアフィリエイト等の収益のあるサイトは商用利用とはみなしませんが、当サイトの紹介をしていただけるとうれしいです。
- 予告なく変更する場合があります。各自で確認をお願いします。
- この機能は無償で提供し続ける予定ですが、メンテナンスにもコストがかかるためKo-fiやTwitch等で少額で構いませんので、ドネートしてくれると嬉しいです。
最後に
ご不明な点や、対応してほしいサービス、これ以外でこういう機能が欲しい、みたいなのがあればコメントやTwitter等でお知らせください。
ソースを公開することはできませんが、技術的なことでも、わかる範囲で答えられることは答えます。