Youtube competitor decompose
Skill bokuwalily/claude-code-skills/skills/youtube-competitor-decompose
競合YouTubeチャンネルを韓国大手YouTuber式に要素分解したい時に発火。yt-dlp(APIキー・クォータ不要)でタイトル文字数/動画長/投稿時間帯/タグ/再生分布を機械抽出し、サムネ等のvision次元は別途補完。shukatsu-navi等のSEO競合調査・ジャンル参入前の偵察に使う。From its SKILL.md
npx -y skills add bokuwalily/claude-code-skills --skill youtube-competitor-decomposeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.1 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
YouTube競合分解(yt-dlp / キー不要)
韓国大手YouTuberの「競合10チャンネルを要素分解しろ」を機械化する。 取得できる次元は自動集計、できない次元(サムネ・BGM・フック)は明示して2層で埋める。
Procedure
-
機械抽出(自動)
python3 ~/.claude/skills/auto/youtube-competitor-decompose/scripts/decompose.py "@ChannelHandle" 15- 第1引数:
@ハンドルか フルURL(https://www.youtube.com/@x/videos) - 第2引数: 分析本数(既定15、直近N本をフル抽出→再生数降順)
- 出力: 個別動画テーブル(再生/いいね/長さ/タイトル/タグ数)+集計シグナル (タイトル文字数中央値・動画長中央値・投稿時間帯TOP3・頻出タグTOP15)
- 第1引数:
-
複数チャンネル比較: 同コマンドを各競合に走らせ、出力markdownを並べて差分を読む。 注目点 = タイトル文字数の収束値 / ショートかロングか / 投稿時間帯の集中 / タグ戦略。
-
vision次元の補完(手動・任意): サムネを落としてビジュアル分析する。
yt-dlp --write-thumbnail --skip-download -o "thumb_%(id)s" "https://youtu.be/VIDEO_ID"落としたサムネをReadで読み、明るさ・文字配置・文字数・被写体を比較(韓国式の核心)。
-
自分の設計に落とす: 抽出した収束値(例: タイトル28字前後・夜20時投稿・ロング8時間)を 自チャンネル/記事のテンプレに反映。AIに丸投げせず、癖を上書きする(韓国式11〜14条)。
Pitfalls
--flat-playlistは view_count を返さない(None)。必ずフル抽出してから再生数ソートする。 →本スキルのスクリプトは直近N本をフル抽出する方式で回避済み。- 大手チャンネルは tags非公開(タグ数0表示)。タグ戦略は中小競合でしか読めない。
- 投稿時間帯は実行マシンのローカルTZ(JST)基準。海外チャンネル比較時は時差に注意。
- フル抽出は1本=1 yt-dlpプロセス。本数を増やすと線形に遅くなる。偵察は15本で十分。
- ハンドルが架空/誤記だと無言で0件になる。0件時はハンドルを実在URLで再確認する。
Verification
@MrBeast 4で実行 → 再生数・タイトル文字数中央値・動画長中央値・投稿時間帯が出れば正常。- 0件が出たら: (a) ハンドル実在確認、(b)
yt-dlp --version、(c) ネットワーク/レート制限を疑う。
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.