Ximalaya Dedao Transcripts
概要
このスキルを使用して、公開された喜馬拉雅(Ximalaya)の音声リンクを、得到(Dedao)のノート用トランスクリプトに変換します。重要なステップ(Ximalayaのマニフェスト抽出、Dedaoトークンの更新、ローカル音声のアップロード/ノート作成、オリジナルトランスクリプトの取得、Markdownエクスポート)には、必ずバンドルされたスクリプトを使用してください。
長いトランスクリプトテキストをチャットに貼り付けないでください。ユーザーに提供するトランスクリプトの成果物は、現在のワークスペースの outputs/ ディレクトリに保存します。
ワークフロー
- 作業ディレクトリを作成します:
mkdir -p work/ximalaya_dedao outputs/ximalaya_dedao
- Dedao認証ファイルを準備します。ユーザーがワークスペースに既存のトークンファイルを持っている場合は、それを読み込みます。トークンをチャットやログに決して表示しないでください。
node <skill>/scripts/dedao_refresh_token.mjs \
--refresh-token-file work/dedao_current_refresh_token.txt \
--token-file work/dedao_current_token.txt \
--out-refresh-token-file work/dedao_current_refresh_token.txt \
--response-file work/ximalaya_dedao/dedao_refresh_response.json
- Ximalayaのマニフェストを構築します:
node <skill>/scripts/ximalaya_manifest.mjs \
--url "https://xima.tv/..." \
--out work/ximalaya_dedao/manifest.json
マニフェストに complete: false と報告があった場合、Dedaoノートを作成する前に references/ximalaya-manifest.md を読み、不足しているページを修正してください。不完全なアルバムを黙って処理しないでください。
- Dedaoのローカル音声ノートを作成します:
node <skill>/scripts/ximalaya_to_dedao_batch.mjs create \
--manifest work/ximalaya_dedao/manifest.json \
--token-file work/dedao_current_token.txt \
--refresh-token-file work/dedao_current_refresh_token.txt \
--out-refresh-token-file work/dedao_current_refresh_token.txt \
--out-dir outputs/ximalaya_dedao
- すべてのノートの
originalトランスクリプトJSONを取得します:
node <skill>/scripts/ximalaya_to_dedao_batch.mjs originals \
--manifest work/ximalaya_dedao/manifest.json \
--token-file work/dedao_current_token.txt \
--refresh-token-file work/dedao_current_refresh_token.txt \
--out-refresh-token-file work/dedao_current_refresh_token.txt \
--out-dir outputs/ximalaya_dedao
- Markdown成果物をエクスポートします:
node <skill>/scripts/export_transcripts.mjs \
--manifest work/ximalaya_dedao/manifest.json \
--notes outputs/ximalaya_dedao/note_ids.json \
--originals outputs/ximalaya_dedao/originals \
--out-dir outputs/ximalaya_dedao_transcripts
- 最終応答の前に確認します:
node -e "const fs=require('fs'); const idx=JSON.parse(fs.readFileSync('outputs/ximalaya_dedao_transcripts/index.json','utf8')); console.log(idx.episode_count, idx.total_text_char_count, idx.missing_files||0)"
find outputs/ximalaya_dedao_transcripts/episodes -maxdepth 1 -name 'p*.md' | wc -l
品質ゲート
- マニフェストのエピソード数、ノートID数、オリジナルJSON数、エクスポートされたMarkdownファイル数を比較します。
- エクスポート前に、空または非常に小さい
originals/pNN.jsonファイルがないか確認します。 - サンドボックス内でXimalayaのDNSやDedao APIの呼び出しが失敗した場合は、ネットワークエスカレーションを行って同じ重要なコマンドを再実行します。
- Ximalayaの
.m4a音声の場合、Dedaoがtype=m4aを拒否する可能性があります。ダウンロードしたバイトをアップロードする際に--upload-type mp3を渡します。これは、検証済みのローカル音声フローと一致します。 stream_on_local_audioがノートID書き込み後にタイムアウトした場合は、ノートIDを保持し、ノートIDでoriginalを取得します。
参照
- Dedaoのアップロード、署名、トークン更新、ノート作成、またはオリジナル取得が失敗した場合、
references/dedao-local-audio.mdを読んでください。 - Ximalayaのアルバム/トラックリンクが完全なマニフェストを生成しない場合、
references/ximalaya-manifest.mdを読んでください。