toutiao-publisher について
toutiao-publisher は、Chrome で Toutiao の記事を準備・公開するスキルです。入力検証、手動レビュー、明示的な許可を得た自動公開に対応し、認証状態と公開結果も確認します。
主な機能
- 01Chrome 起動前の記事入力検証
- 02下書き入力と手動レビュー
- 03明示的な許可後の自動公開
- 04Toutiao 認証状態の確認と管理
- 05Markdown とローカル画像への対応
活用シーン
- 01Markdown ファイルから Toutiao 記事を準備
- 02入力済み下書きを確認してから公開
- 03共有 Toutiao セッションの認証状態を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ guanyang/ super-publisher --skill toutiao-publisherインストール後、Claude Code で/toutiao-publisherを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdrequirements.txtscripts/auth_manager.pybrowser_utils.pycli_utils.pyconfig.pymd2html.pypublisher.pyrun.pysetup_environment.pytests/test_auth_manager.pytest_browser_utils.pytest_config.pytest_md2html.pytest_publisher_cli.pytest_publisher_cover_policy.pytest_publisher_debug.pytest_run.pytest_setup_environment.py詳細
Toutiao Publisher
この Skill ディレクトリ内のスクリプトを使用してください。まずこの SKILL.md を含むディレクトリを解決し、その絶対パスを SKILL_DIR に設定してください。呼び出し元の作業ディレクトリが Skill ディレクトリであると仮定しないでください。
安全ルール
- デフォルトでは
--mode manualを使用します。Chrome を開いたままにして、ユーザーが確認し、Publish をクリックできるようにします。 --mode autoは、ユーザーが最終的な公開を明示的に許可した場合にのみ使用してください。clear --yesまたはreauth --yesを実行するのは、ローカルのすべてのエージェントが共有 Toutiao セッションを失う可能性があることをユーザーが確認した後だけにしてください。- 入力バリデーションを回避したり、確認されていない公開クリックを成功とみなしたりしないでください。
事前認証
ユーザーに QR コードのスキャンを求める前に、保護された Toutiao ページを確認してください:
python3 "$SKILL_DIR/scripts/run.py" auth_manager.py status --verify --json
結果のステータスが not_authenticated の場合は、対話型ログインフローを開きます:
python3 "$SKILL_DIR/scripts/run.py" auth_manager.py setup --json
共有プロファイルはデフォルトで ~/.super-publisher/toutiao-publisher/ の下にあります。Codex、Kiro、Antigravity、および同じシステムユーザーによる直接の CLI 実行は、これを再利用します。場所を上書きするには SUPER_PUBLISHER_DATA_DIR を設定してください。相対値はユーザーのホームディレクトリから解決されます。
記事の準備と公開
Chrome を開かずに入力を検証します:
python3 "$SKILL_DIR/scripts/run.py" publisher.py \
--mode validate \
--title "AI Trends 2026" \
--content-file "/absolute/path/article.md" \
--cover "/absolute/path/cover.jpg" \
--json
検証が成功したら、下書きを入力し、手動レビューを待ちます:
python3 "$SKILL_DIR/scripts/run.py" publisher.py \
--mode manual \
--title "AI Trends 2026" \
--content-file "/absolute/path/article.md" \
--cover "/absolute/path/cover.jpg" \
--json
直接テキストは --content-text を通じてのみ使用してください。--content は --content-file のエイリアスのままであり、パスが存在しない場合は記事のリテラルテキストではなくエラーになります。
Markdown は見出し、リンク、順序付きおよび順序なしリスト、引用ブロック、テーブル、フェンス付きコード、インラインコード、強調、およびローカルのインライン画像をサポートします。相対画像パスは Markdown ファイルから解決してください。本文に画像が含まれている場合は、明示的なカバー画像のアップロードをスキップしてください。--no-cover は、本文に画像がなく、カバーも指定されていない場合にのみ使用してください。
明示的に許可された自動公開の場合:
python3 "$SKILL_DIR/scripts/run.py" publisher.py \
--mode auto \
--title "AI Trends 2026" \
--content-file "/absolute/path/article.md" \
--headless \
--json
自動公開は、Toutiao が認識可能な成功インジケーターを表示した後にのみ成功します。確認なしの最終ボタンのクリックは publish_unconfirmed を返します。
結果の契約
--json を指定すると、認証コマンドは 1 つの JSON 結果を stdout に書き込みます。Publisher コマンドは改行区切りの JSON イベントを書き込みます。手動モードでは、ユーザーを待つ前に awaiting_manual_review を出力します。
- 終了コード
0:認証済み、入力が有効、手動レビュー完了、または公開が確認済み。 - 終了コード
1:ランタイム、ブラウザ操作、下書き、アップロード、または公開の失敗。 - 終了コード
2:無効な入力、認証の欠如、またはクリアの確認が必要。
stderr は人間が読める診断情報として扱ってください。成功を判断するために絵文字や文章を解析しないでください。
セッション管理
# Read local state only
python3 "$SKILL_DIR/scripts/run.py" auth_manager.py status --json
# Verify against Toutiao and refresh state
python3 "$SKILL_DIR/scripts/run.py" auth_manager.py validate --json
# Destructive: require explicit user confirmation first
python3 "$SKILL_DIR/scripts/run.py" auth_manager.py clear --yes --json
環境
Python 3.9+、Google Chrome、およびローカルネットワークアクセスが必要です。scripts/run.py は scripts/setup_environment.py をブートストラップし、要件のフィンガープリントを検証し、Skill ローカルの .venv Python でターゲットを実行します。共有状態ディレクトリは所有者のみの権限を使用します。同じ永続 Chrome Profile に対して同時にブラウザ操作を開始することは避けてください。
--debug-screenshots はトラブルシューティング時のみ有効にしてください。スクリーンショットはデフォルトで output/toutiao-publisher-debug/ の下に書き込まれます。