# instinct: yt-dlpパスをハードコードする前に環境変数またはwhichコマンドで実在パスを確認する

yt-dlpのパスをコード内にハードコードする前に、`which yt-dlp`や環境変数で実際のインストールパスを確認する必要がある。`vvv/venv/bin/yt-dlp`とハードコードされていたが実際は`~/.local/bin/yt-dlp`にインストールされており、YouTube検索が0件になる障害が発生した。パスは環境によって異なるため、`shutil.which('yt-dlp')`やサブプロセスの`which`コマンドで動的に解決するか、設定ファイルで外部化するのが正しいアプローチ。

## ポイント
- yt-dlpのパスは仮想環境外(`~/.local/bin/`等)にインストールされる場合がある
- `shutil.which('yt-dlp')` または `subprocess(['which', 'yt-dlp'])` で動的にパスを取得する
- パスをハードコードすると環境差異でサイレント障害(検索0件)が発生し気づきにくい
- 外部ツールのパスは設定ファイルや環境変数で管理し、コードに埋め込まない

## 関連ページ
[[MCP vs CLI 選択基準]] [[Scraplingを使う前に、対象サイトがSPAかどうかを確認し、JSレンダリングが必要ならPlaywrightFetcherを明示的に指定する]] [[URLパターンマッチを修正する前に、実際のリンク構造(/sees/数字 vs /sees/detail/数字)をcurlまたはブラウザで検証する]] [[Pythonインポートエラー対処前に依存関係(SQLAlchemy等)のインストール状態を確認する]]

## 関連概念(未作成)
`外部ツールパスの動的解決パターン(shutil.which)` `仮想環境とグローバルインストールのパス競合` `設定ファイルによる外部コマンドパス管理`