【小学生でもわかる】Claude Code 超初心者向け始め方ガイド
最近XでClaude Codeの記事めちゃくちゃ流れてきますよね。
でも正直どれもめちゃくちゃ難しくないですか?
・初心者向けとか言ってるくせにどの記事も専門用語だらけ。...
mkdir -p ~/Documents/video-edit/input ~/Documents/video-edit/output && cd ~/Documents/video-edit && claude --dangerously-skip-permissions/login以下の手順を最初から最後まで全部自動で実行してください。途中で止まらず、全て完了してから報告してください。日本語で応答してください。
【重要ルール】
- どのステップでエラーが出ても、自分で原因を分析して修正し、そのステップをやり直してから次に進んでください。絶対に途中で止まらないでください。
- Pythonを実行するときは必ず ./venv/bin/python3 または ./venv/bin/pip を使ってください(venvのフルパス指定)。source venv/bin/activate は効かない場合があります。
- 全ステップ完了後に「環境構築が完了しました」と報告してください。途中報告は不要です。
■ 1. システムツールの確認とインストール
1a. Homebrew:
which brew で確認。なければ以下でインストール:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
インストール後、Apple Silicon Macの場合は以下を実行してPATHを通してください:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
1b. Python 3:
python3 --version で確認。なければ brew install python3
1c. ffmpeg:
which ffmpeg で確認。なければ brew install ffmpeg
1d. Node.js:
node --version で確認。バージョン18以上がすでに入っていればスキップ。なければ brew install node
(Claude Codeをインストール済みならNode.jsは入っているはずです)
■ 2. Python仮想環境の作成とパッケージインストール
python3 -m venv venv
./venv/bin/pip install --upgrade pip
./venv/bin/pip install openai-whisper torch torchaudio silero-vad budoux
インストール後、以下でインポート確認:
./venv/bin/python3 -c "import whisper; import torch; import budoux; from silero_vad import load_silero_vad; print('OK')"
エラーが出た場合は ./venv/bin/pip install をやり直してください。
■ 3. Whisperモデルの事前ダウンロード(約3GB、時間がかかります)
./venv/bin/python3 -c "import whisper; whisper.load_model('large-v3'); print('Whisper model downloaded')"
メモリ不足エラーが出た場合は large-v3 の代わりに medium を使ってください:
./venv/bin/python3 -c "import whisper; whisper.load_model('medium'); print('Whisper medium model downloaded')"
■ 4. Remotionプロジェクトのセットアップ
以下を実行してRemotionプロジェクトを作成してください:
npx create-video@latest
対話形式で質問が出ます:
- プロジェクト名を聞かれたら「remotion-project」と入力
- テンプレートを聞かれたら「Blank」を選択
- パッケージマネージャーを聞かれたら「npm」を選択
- その他の質問はデフォルト(Enter)で進めてください
作成後:
cd remotion-project
npm install budoux @remotion/google-fonts
npx remotion upgrade
npx skills add remotion-dev/skills
(Agent Skillsの質問が出たら全てデフォルトで進めてください。これによりClaude Codeが正しいRemotionコードを生成できるようになります)
cd ..
セットアップ後、remotion-project/node_modules/ が存在することを確認してください。
■ 5. 最終確認
以下を全て確認してください:
- ~/Documents/video-edit/input/ フォルダが存在する
- ~/Documents/video-edit/output/ フォルダが存在する
- ./venv/bin/python3 -c "import whisper; import torch; import budoux; from silero_vad import load_silero_vad; print('ALL OK')" が成功する
- which ffmpeg が成功する
- remotion-project/node_modules/@remotion/google-fonts が存在する
- remotion-project/.claude/skills/ または remotion-project/skills/ が存在する(Agent Skills)
全て問題なければ「環境構築が完了しました」と報告してください。
問題がある場合は自分で修正してから報告してください。
/exitエラーが出ています。原因を分析して、失敗したステップからやり直してください。最後まで完了してから報告してください。/clearcd ~/Documents/video-edit && claude --dangerously-skip-permissions
以下の手順を最初から最後まで全部自動で実行してください。途中で止まらず、全て完了してから報告してください。日本語で応答してください。
【重要ルール】
- どのステップでエラーが出ても、自分で原因を分析して修正し、そのステップをやり直してから次に進んでください。絶対に途中で止まらないでください。
- Pythonを実行するときは必ず ./venv/bin/python3 を使ってください。source venv/bin/activate ではなく、フルパスで実行してください。
- 全ステップ完了後に「完了しました」と報告してください。途中報告は不要です。
入力動画: input/ai_video_edit.mov
■ Step 1: 音声抽出
ffmpegで入力動画から音声を抽出してください。
mkdir -p temp output
ffmpeg -y -i "input/ai_video_edit.mov" -ar 16000 -ac 1 temp/audio_16k.wav
ffmpeg -y -i "input/ai_video_edit.mov" -ar 44100 -ac 1 temp/voice_audio.wav
■ Step 2: 無音カット(ジェットカット)
./venv/bin/python3 でPythonスクリプトを作成・実行してください。
Silero VADで音声区間を検出:
import torch; torch.set_num_threads(1)
from silero_vad import load_silero_vad, read_audio, get_speech_timestamps
model = load_silero_vad()
wav = read_audio('temp/audio_16k.wav', sampling_rate=16000)
speech_timestamps = get_speech_timestamps(wav, model, threshold=0.5, min_silence_duration_ms=400, speech_pad_ms=150, min_speech_duration_ms=250, sampling_rate=16000)
検出した音声区間をffmpegのfilter_complexで結合して、無音部分をカットした動画を作ってください。
出力: temp/cut_video.mp4
セグメントが多い場合(50個以上)はチャンク方式(10個ずつ結合→最終結合)にフォールバックしてください。
カット前後の秒数とカット率をログに出力してください。
■ Step 3: カット済み動画から音声を再抽出
ffmpeg -y -i temp/cut_video.mp4 -ar 44100 -ac 1 temp/voice_audio.wav
■ Step 4: Whisper文字起こし
./venv/bin/python3 で実行してください。
Whisper large-v3で文字起こし(メモリ不足時はmediumにフォールバック)。
word_timestamps=Trueで単語レベルのタイムスタンプを取得。
import whisper
model = whisper.load_model("large-v3")
result = model.transcribe("temp/voice_audio.wav", language="ja", word_timestamps=True)
結果をtemp/whisper_result.jsonに保存。文字数と単語数をログに出力。
■ Step 5: BudouXテロップ分割
./venv/bin/python3 で実行してください。
Whisperのセグメントを、BudouXで日本語の文節境界に基づいて分割してください。
重要ルール(厳守):
- 1つのテロップに表示する文字数は最大30文字。30文字を超えるセグメントは、読点や文節境界で複数のテロップに分割すること
- 分割後の各テロップについて: 18文字以下は1行表示、19〜30文字はBudouXで文節分割→均等2行(最大2行厳守)
- フォントサイズは最長行の文字数で自動決定: 8文字以下→72px / 9〜12→64px / 13〜18→56px / 19〜24→48px / 25以上→42px
- 分割時、各テロップのstart/endは元セグメントの時間を文字数比で按分する
処理手順:
1. Whisperの各セグメントに対して、テキストが30文字を超えている場合はBudouXで文節分割し、30文字以下の複数テロップに分ける
2. 各テロップが19文字以上の場合はBudouXで均等2行に分割してlinesに入れる
3. 最終チェック: 全テロップのlines内の各行が30文字以下であることを確認する。超えていたら再分割する
結果をtemp/subtitles.jsonに保存。フォーマット:
[{"id":0,"start":0.5,"end":2.3,"lines":["1行目","2行目"],"fontSize":56,"color":"main"}]
テロップの件数をログに出力。
■ Step 6: 動画情報の取得と変換
ffprobeでtemp/cut_video.mp4の解像度・コーデック・ビット深度・フレームレートを確認してください。
以下のいずれかに該当する場合は、H.264(8bit) yuv420p 30fpsに変換してtemp/cut_video.mp4を上書きしてください:
- HEVC(H.265)またはAV1コーデック
- 10bitの色深度
- 30fps以外のフレームレート(60fpsなど)
変換コマンド: ffmpeg -y -i temp/cut_video.mp4 -c:v libx264 -pix_fmt yuv420p -r 30 -preset fast -crf 18 -c:a aac -b:a 192k temp/cut_video_converted.mp4 && mv temp/cut_video_converted.mp4 temp/cut_video.mp4
H.264で8bitで30fpsなら変換不要です。
■ Step 7: Remotionコンポーネント自動生成
remotion-project/src/ に以下のファイルを自動生成してください。
コードは以下の仕様に厳密に従ってください。
【Root.tsx】
tsx
import React from "react";
import { Composition } from "remotion";
import { MainVideo } from "./MainVideo";
export const RemotionRoot: React.FC = () => {
return (
<Composition
id="MainVideo"
component={MainVideo}
durationInFrames={/* カット済み動画の秒数 × 30 */}
fps={30}
width={/* Step 6で取得したwidth */}
height={/* Step 6で取得したheight */}
/>
);
};
【Subtitle.tsx】 propsは lines: string[] と fontSize: number。 位置は必ず bottom: 40 で画面最下部に固定。topやtranslateYは絶対に使わないこと。
import React from "react";
import { useCurrentFrame, interpolate } from "remotion";
import { loadFont } from "@remotion/google-fonts/NotoSansJP";
const { fontFamily } = loadFont();
interface SubtitleProps {
lines: string[];
fontSize: number;
}
export const Subtitle: React.FC<SubtitleProps> = ({ lines, fontSize }) => {
const frame = useCurrentFrame();
const opacity = interpolate(frame, [0, 3], [0, 1], { extrapolateRight: "clamp" });
return (
<div style={{
position: "absolute",
bottom: 40,
left: 0,
right: 0,
display: "flex",
flexDirection: "column",
alignItems: "center",
pointerEvents: "none",
opacity,
}}>
{lines.map((line, i) => (
<div key={i} style={{
color: "#FFFFFF",
fontSize,
fontWeight: 900,
fontFamily,
textShadow: [
"3px 0 0 #6B21A8", "-3px 0 0 #6B21A8",
"0 3px 0 #6B21A8", "0 -3px 0 #6B21A8",
"3px 3px 0 #6B21A8", "-3px -3px 0 #6B21A8",
"3px -3px 0 #6B21A8", "-3px 3px 0 #6B21A8",
"2px 2px 4px rgba(0,0,0,0.8)",
].join(", "),
lineHeight: 1.4,
whiteSpace: "nowrap",
textAlign: "center",
}}>
{line}
</div>
))}
</div>
);
};
【MainVideo.tsx】 動画はOffthreadVideoを使うこと(Videoではなく)。テロップデータはrequireで同期読み込みすること(fetchは使わないこと)。
import React from "react";
import { AbsoluteFill, Sequence, Audio, OffthreadVideo, staticFile } from "remotion";
import { Subtitle } from "./Subtitle";
const subtitles = require("../../public/subtitles.json");
export const MainVideo: React.FC = () => {
return (
<AbsoluteFill style={{ backgroundColor: "#000" }}>
<Audio src={staticFile("voice_audio.wav")} volume={1} />
<OffthreadVideo
src={staticFile("cut_video.mp4")}
style={{ width: "100%", height: "100%", objectFit: "contain" }}
muted
/>
{subtitles.map((sub: any, idx: number) => {
const from = Math.round(sub.start * 30);
const dur = Math.max(1, Math.round((sub.end - sub.start) * 30));
return (
<Sequence key={idx} from={from} durationInFrames={dur}>
<Subtitle lines={sub.lines} fontSize={sub.fontSize} />
</Sequence>
);
})}
</AbsoluteFill>
);
};
上記3ファイルをそのまま使ってください。durationInFrames、width、heightの数値だけ実際の値に置き換えてください。
■ Step 8: 静的ファイルを配置 cp temp/cut_video.mp4 remotion-project/public/ cp temp/voice_audio.wav remotion-project/public/ cp temp/subtitles.json remotion-project/public/
■ Step 9: Remotionレンダリング cd remotion-project && npx remotion render MainVideo ../output/final.mp4 --timeout=120000 レンダリングでエラーが出た場合は、エラー内容を分析してソースコードを修正し、再度レンダリングしてください。タイムアウトの場合は npx remotion upgrade を実行してから再度レンダリングしてください。
■ Step 10: 完成ファイルを開く cd .. && open output/final.mp4
全ステップを自動実行して、最後に以下を報告してください:
カット前後の秒数とカット率
テロップの件数
出力ファイルのパス
cd ~/Documents/video-edit && claude --dangerously-skip-permissions エラーが出ています。原因を分析して、失敗したステップからやり直してください。最後まで完了してから報告してください。