Mac miniを自動化サーバーにしたら副業が回り始めた|24時間稼働の実態

Mac miniを自動化サーバーにしたら副業が回り始めた|24時間稼働の実態

本記事には広告・アフィリエイトリンクが含まれています(景品表示法に基づくPR表記) Mac miniを自宅サーバーにして半年が経った こんにちは、ぷーたです。副業の自動化を進める中で、「常時稼働するマシンが欲しい」という壁にぶつかりました。VPSも検討しましたが、最終的にMac miniを24時間稼働の自動化サーバーとして使うことにしました。 半年運用してみた実感を、設定方法から電気代まで正直に書きます。 なぜMac miniなのか?VPSとの比較 VPSのメリット・デメリット VPS(さくらVPS、ConoHa等)は月額数百円から借りられて手軽です。ただし、スペックを上げると月額が跳ね上がります。メモリ4GB・2コアで月1,000〜2,000円程度が相場です。 Mac miniを選んだ理由 僕が使っているのはApple Silicon搭載のMac miniです。選んだ理由は3つ。 ローカルにデータを置ける:APIキーや学習データをクラウドに上げなくて済む 十分なスペック:メモリ16GB・高速SSDで複数スクリプトを同時実行できる 消費電力が低い:実測で待機時約5W前後、負荷時でも20〜30W程度 Mac miniの初期費用は決して安くありませんが、1年以上使うなら月額換算でVPSより安くなる計算です。 実際の消費電力と電気代 ワットチェッカーで実測しました。 アイドル時:約5〜7W Pythonスクリプト実行時:約15〜25W 高負荷時(ML学習等):約30〜40W 1日の平均消費を仮に10Wとすると、月の電力量は約7.2kWhです。電気代の単価を30円/kWhとすると月額約216円。VPSの月額料金と比べるとかなり安いです。 ※電気料金は契約プランや地域によって異なります。上記は目安です。 launchdでスクリプトを自動実行する方法 macOSにはcronの代わりにlaunchdというジョブスケジューラが標準搭載されています。これが非常に便利です。 plistファイルの作成 ~/Library/LaunchAgents/ にplistファイルを置きます。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.example.my-script</string> <key>ProgramArguments</key> <array> <string>/usr/bin/python3</string> <string>/Users/you/scripts/my_script.py</string> </array> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>9</integer> <key>Minute</key> <integer>0</integer> </dict> <key>StandardOutPath</key> <string>/tmp/my_script.log</string> <key>StandardErrorPath</key> <string>/tmp/my_script_error.log</string> </dict> </plist> 登録と確認 launchctl load ~/Library/LaunchAgents/com.example.my-script.plist launchctl list | grep my-script これで毎朝9時にPythonスクリプトが自動実行されます。ログも指定したパスに出力されるので、問題があればすぐに確認できます。 ...

February 22, 2026 · 1 分 · ぷーた
YouTube Shorts 自動投稿パイプラインの作り方|AIで台本から動画生成まで

YouTube Shorts 自動投稿パイプラインの作り方|AIで台本から動画生成まで

本記事には広告・アフィリエイトリンクが含まれています(景品表示法に基づくPR表記) YouTube Shortsの投稿を半自動化してみた こんにちは、ぷーたです。副業でYouTube Shortsに動画を投稿しているのですが、毎回手作業で台本を書いて、録音して、編集して…とやるのは本業のあるサラリーマンには正直キツいです。 そこで台本生成から動画出力までを半自動化するパイプラインを作りました。完全自動ではなく、要所で人間が確認を入れる「半自動」です。この記事では実際に使っているツールと手順を紹介します。 パイプラインの全体像 僕のパイプラインは以下の4ステップです。 台本生成:Claude Codeでスクリプトを作成 音声合成:VOICEVOXでナレーション生成 動画編集:FFmpegで素材を結合 アップロード:YouTube Studio(ここは手動) それぞれ詳しく説明します。 ステップ1:Claude Codeで台本を生成 台本のテンプレートを事前に用意しておき、Claude Codeに「このテーマで台本を書いて」と指示します。 僕が使っているテンプレート構成はこうです。 フック(1.5秒):視聴者の注意を引く一言 本体(6〜8文):具体的な情報を伝える エンドカード(2秒):フォローやチャンネル登録のCTA Claude Codeはプロジェクト内のテンプレートファイルを読み込めるので、「前回の台本と同じトーンで」といった指示も通ります。 注意点:AIが生成した台本はそのまま使わず、必ず自分で読み返して修正します。事実確認が不十分な内容や、誇張表現が含まれていることがあるためです。 ステップ2:VOICEVOXで音声合成 台本が確定したら、VOICEVOXでナレーション音声を生成します。VOICEVOXは無料で使えるテキスト音声合成ソフトで、商用利用も可能です(キャラクターごとの利用規約を要確認)。 僕はVOICEVOXのAPIを叩くPythonスクリプトを作っています。 import requests import json def generate_voice(text, speaker_id=3, output_path="output.wav"): # 音声合成クエリの作成 query_res = requests.post( "http://localhost:50021/audio_query", params={"text": text, "speaker": speaker_id} ) query = query_res.json() # 音声合成の実行 synth_res = requests.post( "http://localhost:50021/synthesis", params={"speaker": speaker_id}, data=json.dumps(query) ) with open(output_path, "wb") as f: f.write(synth_res.content) VOICEVOXをローカルで起動しておけば、このスクリプトで一発で音声ファイルが生成されます。 ...

February 22, 2026 · 1 分 · ぷーた