@tikomni/skills 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.skill-package-allowlist.txt +4 -0
- package/LICENSE +21 -0
- package/README.md +167 -0
- package/README.zh-CN.md +167 -0
- package/bin/tikomni-skills.js +127 -0
- package/env.example +160 -0
- package/lib/installer.js +176 -0
- package/package.json +44 -0
- package/skills/creator-analysis/SKILL.md +71 -0
- package/skills/creator-analysis/agents/openai.yaml +4 -0
- package/skills/creator-analysis/env.example +36 -0
- package/skills/creator-analysis/references/api-capability-index.md +92 -0
- package/skills/creator-analysis/references/api-contracts/asr-api.md +130 -0
- package/skills/creator-analysis/references/api-contracts/bilibili-app-api.md +776 -0
- package/skills/creator-analysis/references/api-contracts/bilibili-web-api.md +2017 -0
- package/skills/creator-analysis/references/api-contracts/demo-api.md +717 -0
- package/skills/creator-analysis/references/api-contracts/douyin-app-v3-api.md +3594 -0
- package/skills/creator-analysis/references/api-contracts/douyin-billboard-api.md +2274 -0
- package/skills/creator-analysis/references/api-contracts/douyin-creator-api.md +1575 -0
- package/skills/creator-analysis/references/api-contracts/douyin-creator-v2-api.md +3254 -0
- package/skills/creator-analysis/references/api-contracts/douyin-search-api.md +4118 -0
- package/skills/creator-analysis/references/api-contracts/douyin-web-api.md +5544 -0
- package/skills/creator-analysis/references/api-contracts/douyin-xingtu-api.md +1916 -0
- package/skills/creator-analysis/references/api-contracts/douyin-xingtu-v2-api.md +1540 -0
- package/skills/creator-analysis/references/api-contracts/health-check.md +69 -0
- package/skills/creator-analysis/references/api-contracts/hybrid-parsing.md +78 -0
- package/skills/creator-analysis/references/api-contracts/instagram-v1-api.md +2256 -0
- package/skills/creator-analysis/references/api-contracts/instagram-v2-api.md +2011 -0
- package/skills/creator-analysis/references/api-contracts/instagram-v3-api.md +2630 -0
- package/skills/creator-analysis/references/api-contracts/ios-shortcut.md +44 -0
- package/skills/creator-analysis/references/api-contracts/kuaishou-app-api.md +1518 -0
- package/skills/creator-analysis/references/api-contracts/kuaishou-web-api.md +1242 -0
- package/skills/creator-analysis/references/api-contracts/lemon8-app-api.md +1088 -0
- package/skills/creator-analysis/references/api-contracts/linkedin-web-api.md +1949 -0
- package/skills/creator-analysis/references/api-contracts/media-ingest-api.md +126 -0
- package/skills/creator-analysis/references/api-contracts/pipixia-app-api.md +1142 -0
- package/skills/creator-analysis/references/api-contracts/reddit-app-api.md +2025 -0
- package/skills/creator-analysis/references/api-contracts/sora2-api.md +2266 -0
- package/skills/creator-analysis/references/api-contracts/temp-mail-api.md +208 -0
- package/skills/creator-analysis/references/api-contracts/threads-web-api.md +897 -0
- package/skills/creator-analysis/references/api-contracts/tikhub-downloader-api.md +134 -0
- package/skills/creator-analysis/references/api-contracts/tikhub-user-api.md +494 -0
- package/skills/creator-analysis/references/api-contracts/tiktok-ads-api.md +5947 -0
- package/skills/creator-analysis/references/api-contracts/tiktok-analytics-api.md +968 -0
- package/skills/creator-analysis/references/api-contracts/tiktok-app-v3-api.md +5735 -0
- package/skills/creator-analysis/references/api-contracts/tiktok-creator-api.md +1951 -0
- package/skills/creator-analysis/references/api-contracts/tiktok-interaction-api.md +742 -0
- package/skills/creator-analysis/references/api-contracts/tiktok-shop-web-api.md +1890 -0
- package/skills/creator-analysis/references/api-contracts/tiktok-web-api.md +4448 -0
- package/skills/creator-analysis/references/api-contracts/toutiao-app-api.md +342 -0
- package/skills/creator-analysis/references/api-contracts/toutiao-web-api.md +143 -0
- package/skills/creator-analysis/references/api-contracts/twitter-web-api.md +989 -0
- package/skills/creator-analysis/references/api-contracts/wechat-channels-api.md +809 -0
- package/skills/creator-analysis/references/api-contracts/wechat-media-platform-web-api.md +677 -0
- package/skills/creator-analysis/references/api-contracts/weibo-app-api.md +1547 -0
- package/skills/creator-analysis/references/api-contracts/weibo-web-api.md +798 -0
- package/skills/creator-analysis/references/api-contracts/weibo-web-v2-api.md +2459 -0
- package/skills/creator-analysis/references/api-contracts/xiaohongshu-app-api.md +1291 -0
- package/skills/creator-analysis/references/api-contracts/xiaohongshu-app-v2-api.md +1683 -0
- package/skills/creator-analysis/references/api-contracts/xiaohongshu-web-api.md +1324 -0
- package/skills/creator-analysis/references/api-contracts/xiaohongshu-web-v2-api.md +1209 -0
- package/skills/creator-analysis/references/api-contracts/xigua-app-v2-api.md +489 -0
- package/skills/creator-analysis/references/api-contracts/youtube-web-api.md +2636 -0
- package/skills/creator-analysis/references/api-contracts/youtube-web-v2-api.md +2660 -0
- package/skills/creator-analysis/references/api-contracts/zhihu-web-api.md +2315 -0
- package/skills/creator-analysis/references/api-tags/asr-api.md +100 -0
- package/skills/creator-analysis/references/api-tags/bilibili-app-api.md +482 -0
- package/skills/creator-analysis/references/api-tags/bilibili-web-api.md +1267 -0
- package/skills/creator-analysis/references/api-tags/demo-api.md +365 -0
- package/skills/creator-analysis/references/api-tags/douyin-app-v3-api.md +2012 -0
- package/skills/creator-analysis/references/api-tags/douyin-billboard-api.md +1428 -0
- package/skills/creator-analysis/references/api-tags/douyin-creator-api.md +694 -0
- package/skills/creator-analysis/references/api-tags/douyin-creator-v2-api.md +694 -0
- package/skills/creator-analysis/references/api-tags/douyin-search-api.md +1059 -0
- package/skills/creator-analysis/references/api-tags/douyin-web-api.md +3314 -0
- package/skills/creator-analysis/references/api-tags/douyin-xingtu-api.md +935 -0
- package/skills/creator-analysis/references/api-tags/douyin-xingtu-v2-api.md +925 -0
- package/skills/creator-analysis/references/api-tags/health-check.md +40 -0
- package/skills/creator-analysis/references/api-tags/hybrid-parsing.md +57 -0
- package/skills/creator-analysis/references/api-tags/instagram-v1-api.md +1224 -0
- package/skills/creator-analysis/references/api-tags/instagram-v2-api.md +1147 -0
- package/skills/creator-analysis/references/api-tags/instagram-v3-api.md +1123 -0
- package/skills/creator-analysis/references/api-tags/ios-shortcut.md +45 -0
- package/skills/creator-analysis/references/api-tags/kuaishou-app-api.md +846 -0
- package/skills/creator-analysis/references/api-tags/kuaishou-web-api.md +551 -0
- package/skills/creator-analysis/references/api-tags/lemon8-app-api.md +687 -0
- package/skills/creator-analysis/references/api-tags/linkedin-web-api.md +1105 -0
- package/skills/creator-analysis/references/api-tags/media-ingest-api.md +112 -0
- package/skills/creator-analysis/references/api-tags/pipixia-app-api.md +721 -0
- package/skills/creator-analysis/references/api-tags/reddit-app-api.md +1057 -0
- package/skills/creator-analysis/references/api-tags/sora2-api.md +737 -0
- package/skills/creator-analysis/references/api-tags/temp-mail-api.md +136 -0
- package/skills/creator-analysis/references/api-tags/threads-web-api.md +472 -0
- package/skills/creator-analysis/references/api-tags/tikhub-downloader-api.md +65 -0
- package/skills/creator-analysis/references/api-tags/tikhub-user-api.md +253 -0
- package/skills/creator-analysis/references/api-tags/tiktok-ads-api.md +1393 -0
- package/skills/creator-analysis/references/api-tags/tiktok-analytics-api.md +179 -0
- package/skills/creator-analysis/references/api-tags/tiktok-app-v3-api.md +3264 -0
- package/skills/creator-analysis/references/api-tags/tiktok-creator-api.md +709 -0
- package/skills/creator-analysis/references/api-tags/tiktok-interaction-api.md +366 -0
- package/skills/creator-analysis/references/api-tags/tiktok-shop-web-api.md +663 -0
- package/skills/creator-analysis/references/api-tags/tiktok-web-api.md +2516 -0
- package/skills/creator-analysis/references/api-tags/toutiao-app-api.md +220 -0
- package/skills/creator-analysis/references/api-tags/toutiao-web-api.md +96 -0
- package/skills/creator-analysis/references/api-tags/twitter-web-api.md +562 -0
- package/skills/creator-analysis/references/api-tags/wechat-channels-api.md +405 -0
- package/skills/creator-analysis/references/api-tags/wechat-media-platform-web-api.md +431 -0
- package/skills/creator-analysis/references/api-tags/weibo-app-api.md +851 -0
- package/skills/creator-analysis/references/api-tags/weibo-web-api.md +470 -0
- package/skills/creator-analysis/references/api-tags/weibo-web-v2-api.md +1405 -0
- package/skills/creator-analysis/references/api-tags/xiaohongshu-app-api.md +534 -0
- package/skills/creator-analysis/references/api-tags/xiaohongshu-app-v2-api.md +934 -0
- package/skills/creator-analysis/references/api-tags/xiaohongshu-web-api.md +757 -0
- package/skills/creator-analysis/references/api-tags/xiaohongshu-web-v2-api.md +762 -0
- package/skills/creator-analysis/references/api-tags/xigua-app-v2-api.md +308 -0
- package/skills/creator-analysis/references/api-tags/youtube-web-api.md +934 -0
- package/skills/creator-analysis/references/api-tags/youtube-web-v2-api.md +717 -0
- package/skills/creator-analysis/references/api-tags/zhihu-web-api.md +1384 -0
- package/skills/creator-analysis/references/asr-orchestration.md +33 -0
- package/skills/creator-analysis/references/config-templates/defaults.yaml +60 -0
- package/skills/creator-analysis/references/contracts/creator-card-fields.md +23 -0
- package/skills/creator-analysis/references/contracts/work-card-fields.md +32 -0
- package/skills/creator-analysis/references/platform-guides/douyin.md +49 -0
- package/skills/creator-analysis/references/platform-guides/generic.md +46 -0
- package/skills/creator-analysis/references/platform-guides/xiaohongshu.md +54 -0
- package/skills/creator-analysis/references/prompt-contracts/asr-clean.md +28 -0
- package/skills/creator-analysis/references/prompt-contracts/author-analysis-v2.md +46 -0
- package/skills/creator-analysis/references/prompt-contracts/author-analysis.md +49 -0
- package/skills/creator-analysis/references/prompt-contracts/cta.md +24 -0
- package/skills/creator-analysis/references/prompt-contracts/hook.md +25 -0
- package/skills/creator-analysis/references/prompt-contracts/insight.md +47 -0
- package/skills/creator-analysis/references/prompt-contracts/sampled-work-batch-explanations.md +30 -0
- package/skills/creator-analysis/references/prompt-contracts/structure.md +25 -0
- package/skills/creator-analysis/references/prompt-contracts/style.md +27 -0
- package/skills/creator-analysis/references/prompt-contracts/summary.md +29 -0
- package/skills/creator-analysis/references/prompt-contracts/topic.md +29 -0
- package/skills/creator-analysis/references/schemas/author-analysis-input-v1.schema.json +325 -0
- package/skills/creator-analysis/references/schemas/author-analysis-v2.schema.json +158 -0
- package/skills/creator-analysis/references/schemas/sampled-work-batch-explanations.schema.json +41 -0
- package/skills/creator-analysis/references/service-guides/asr-u2-u3-fallback.md +75 -0
- package/skills/creator-analysis/references/workflow.md +18 -0
- package/skills/creator-analysis/scripts/__init__.py +0 -0
- package/skills/creator-analysis/scripts/author_home/__init__.py +0 -0
- package/skills/creator-analysis/scripts/author_home/adapters/__init__.py +0 -0
- package/skills/creator-analysis/scripts/author_home/adapters/platform_adapters.py +299 -0
- package/skills/creator-analysis/scripts/author_home/analyzers/__init__.py +0 -0
- package/skills/creator-analysis/scripts/author_home/analyzers/author_analysis_v2_support.py +1122 -0
- package/skills/creator-analysis/scripts/author_home/analyzers/prompt_first_analyzers.py +260 -0
- package/skills/creator-analysis/scripts/author_home/analyzers/sampled_work_batch_explainer.py +260 -0
- package/skills/creator-analysis/scripts/author_home/asr/__init__.py +5 -0
- package/skills/creator-analysis/scripts/author_home/asr/home_asr.py +961 -0
- package/skills/creator-analysis/scripts/author_home/builders/__init__.py +0 -0
- package/skills/creator-analysis/scripts/author_home/builders/home_builders.py +149 -0
- package/skills/creator-analysis/scripts/author_home/collectors/__init__.py +0 -0
- package/skills/creator-analysis/scripts/author_home/collectors/homepage_collectors.py +636 -0
- package/skills/creator-analysis/scripts/author_home/orchestrator/__init__.py +0 -0
- package/skills/creator-analysis/scripts/author_home/orchestrator/run_author_analysis.py +491 -0
- package/skills/creator-analysis/scripts/author_home/orchestrator/work_analysis_artifacts.py +553 -0
- package/skills/creator-analysis/scripts/author_home/schema.py +417 -0
- package/skills/creator-analysis/scripts/core/__init__.py +0 -0
- package/skills/creator-analysis/scripts/core/analysis_pipeline.py +133 -0
- package/skills/creator-analysis/scripts/core/bootstrap_env.py +35 -0
- package/skills/creator-analysis/scripts/core/config_loader.py +418 -0
- package/skills/creator-analysis/scripts/core/extract_pipeline.py +173 -0
- package/skills/creator-analysis/scripts/core/progress_report.py +111 -0
- package/skills/creator-analysis/scripts/core/storage_router.py +253 -0
- package/skills/creator-analysis/scripts/core/tikomni_common.py +588 -0
- package/skills/creator-analysis/scripts/pipeline/__init__.py +0 -0
- package/skills/creator-analysis/scripts/pipeline/asr/__init__.py +0 -0
- package/skills/creator-analysis/scripts/pipeline/asr/asr_pipeline.py +1189 -0
- package/skills/creator-analysis/scripts/pipeline/asr/poll_u2_task.py +95 -0
- package/skills/creator-analysis/scripts/platform/__init__.py +0 -0
- package/skills/creator-analysis/scripts/platform/douyin/__init__.py +0 -0
- package/skills/creator-analysis/scripts/platform/douyin/douyin_video_type_matrix.py +224 -0
- package/skills/creator-analysis/scripts/platform/douyin/run_douyin_single_video.py +1208 -0
- package/skills/creator-analysis/scripts/platform/douyin/select_low_quality_video_url.py +200 -0
- package/skills/creator-analysis/scripts/platform/xiaohongshu/__init__.py +0 -0
- package/skills/creator-analysis/scripts/platform/xiaohongshu/run_xiaohongshu_extract.py +2128 -0
- package/skills/creator-analysis/scripts/writers/__init__.py +0 -0
- package/skills/creator-analysis/scripts/writers/write_author_homepage_samples.py +106 -0
- package/skills/creator-analysis/scripts/writers/write_benchmark_card.py +1402 -0
- package/skills/meta-capability/SKILL.md +69 -0
- package/skills/meta-capability/agents/openai.yaml +4 -0
- package/skills/meta-capability/env.example +42 -0
- package/skills/meta-capability/references/api-capability-index.md +92 -0
- package/skills/meta-capability/references/api-contracts/asr-api.md +130 -0
- package/skills/meta-capability/references/api-contracts/bilibili-app-api.md +776 -0
- package/skills/meta-capability/references/api-contracts/bilibili-web-api.md +2017 -0
- package/skills/meta-capability/references/api-contracts/demo-api.md +717 -0
- package/skills/meta-capability/references/api-contracts/douyin-app-v3-api.md +3594 -0
- package/skills/meta-capability/references/api-contracts/douyin-billboard-api.md +2274 -0
- package/skills/meta-capability/references/api-contracts/douyin-creator-api.md +1575 -0
- package/skills/meta-capability/references/api-contracts/douyin-creator-v2-api.md +3254 -0
- package/skills/meta-capability/references/api-contracts/douyin-search-api.md +4118 -0
- package/skills/meta-capability/references/api-contracts/douyin-web-api.md +5544 -0
- package/skills/meta-capability/references/api-contracts/douyin-xingtu-api.md +1916 -0
- package/skills/meta-capability/references/api-contracts/douyin-xingtu-v2-api.md +1540 -0
- package/skills/meta-capability/references/api-contracts/health-check.md +69 -0
- package/skills/meta-capability/references/api-contracts/hybrid-parsing.md +78 -0
- package/skills/meta-capability/references/api-contracts/instagram-v1-api.md +2256 -0
- package/skills/meta-capability/references/api-contracts/instagram-v2-api.md +2011 -0
- package/skills/meta-capability/references/api-contracts/instagram-v3-api.md +2630 -0
- package/skills/meta-capability/references/api-contracts/ios-shortcut.md +44 -0
- package/skills/meta-capability/references/api-contracts/kuaishou-app-api.md +1518 -0
- package/skills/meta-capability/references/api-contracts/kuaishou-web-api.md +1242 -0
- package/skills/meta-capability/references/api-contracts/lemon8-app-api.md +1088 -0
- package/skills/meta-capability/references/api-contracts/linkedin-web-api.md +1949 -0
- package/skills/meta-capability/references/api-contracts/media-ingest-api.md +126 -0
- package/skills/meta-capability/references/api-contracts/pipixia-app-api.md +1142 -0
- package/skills/meta-capability/references/api-contracts/reddit-app-api.md +2025 -0
- package/skills/meta-capability/references/api-contracts/sora2-api.md +2266 -0
- package/skills/meta-capability/references/api-contracts/temp-mail-api.md +208 -0
- package/skills/meta-capability/references/api-contracts/threads-web-api.md +897 -0
- package/skills/meta-capability/references/api-contracts/tikhub-downloader-api.md +134 -0
- package/skills/meta-capability/references/api-contracts/tikhub-user-api.md +494 -0
- package/skills/meta-capability/references/api-contracts/tiktok-ads-api.md +5947 -0
- package/skills/meta-capability/references/api-contracts/tiktok-analytics-api.md +968 -0
- package/skills/meta-capability/references/api-contracts/tiktok-app-v3-api.md +5735 -0
- package/skills/meta-capability/references/api-contracts/tiktok-creator-api.md +1951 -0
- package/skills/meta-capability/references/api-contracts/tiktok-interaction-api.md +742 -0
- package/skills/meta-capability/references/api-contracts/tiktok-shop-web-api.md +1890 -0
- package/skills/meta-capability/references/api-contracts/tiktok-web-api.md +4448 -0
- package/skills/meta-capability/references/api-contracts/toutiao-app-api.md +342 -0
- package/skills/meta-capability/references/api-contracts/toutiao-web-api.md +143 -0
- package/skills/meta-capability/references/api-contracts/twitter-web-api.md +989 -0
- package/skills/meta-capability/references/api-contracts/wechat-channels-api.md +809 -0
- package/skills/meta-capability/references/api-contracts/wechat-media-platform-web-api.md +677 -0
- package/skills/meta-capability/references/api-contracts/weibo-app-api.md +1547 -0
- package/skills/meta-capability/references/api-contracts/weibo-web-api.md +798 -0
- package/skills/meta-capability/references/api-contracts/weibo-web-v2-api.md +2459 -0
- package/skills/meta-capability/references/api-contracts/xiaohongshu-app-api.md +1291 -0
- package/skills/meta-capability/references/api-contracts/xiaohongshu-app-v2-api.md +1683 -0
- package/skills/meta-capability/references/api-contracts/xiaohongshu-web-api.md +1324 -0
- package/skills/meta-capability/references/api-contracts/xiaohongshu-web-v2-api.md +1209 -0
- package/skills/meta-capability/references/api-contracts/xigua-app-v2-api.md +489 -0
- package/skills/meta-capability/references/api-contracts/youtube-web-api.md +2636 -0
- package/skills/meta-capability/references/api-contracts/youtube-web-v2-api.md +2660 -0
- package/skills/meta-capability/references/api-contracts/zhihu-web-api.md +2315 -0
- package/skills/meta-capability/references/api-tags/asr-api.md +100 -0
- package/skills/meta-capability/references/api-tags/bilibili-app-api.md +482 -0
- package/skills/meta-capability/references/api-tags/bilibili-web-api.md +1267 -0
- package/skills/meta-capability/references/api-tags/demo-api.md +365 -0
- package/skills/meta-capability/references/api-tags/douyin-app-v3-api.md +2012 -0
- package/skills/meta-capability/references/api-tags/douyin-billboard-api.md +1428 -0
- package/skills/meta-capability/references/api-tags/douyin-creator-api.md +694 -0
- package/skills/meta-capability/references/api-tags/douyin-creator-v2-api.md +694 -0
- package/skills/meta-capability/references/api-tags/douyin-search-api.md +1059 -0
- package/skills/meta-capability/references/api-tags/douyin-web-api.md +3314 -0
- package/skills/meta-capability/references/api-tags/douyin-xingtu-api.md +935 -0
- package/skills/meta-capability/references/api-tags/douyin-xingtu-v2-api.md +925 -0
- package/skills/meta-capability/references/api-tags/health-check.md +40 -0
- package/skills/meta-capability/references/api-tags/hybrid-parsing.md +57 -0
- package/skills/meta-capability/references/api-tags/instagram-v1-api.md +1224 -0
- package/skills/meta-capability/references/api-tags/instagram-v2-api.md +1147 -0
- package/skills/meta-capability/references/api-tags/instagram-v3-api.md +1123 -0
- package/skills/meta-capability/references/api-tags/ios-shortcut.md +45 -0
- package/skills/meta-capability/references/api-tags/kuaishou-app-api.md +846 -0
- package/skills/meta-capability/references/api-tags/kuaishou-web-api.md +551 -0
- package/skills/meta-capability/references/api-tags/lemon8-app-api.md +687 -0
- package/skills/meta-capability/references/api-tags/linkedin-web-api.md +1105 -0
- package/skills/meta-capability/references/api-tags/media-ingest-api.md +112 -0
- package/skills/meta-capability/references/api-tags/pipixia-app-api.md +721 -0
- package/skills/meta-capability/references/api-tags/reddit-app-api.md +1057 -0
- package/skills/meta-capability/references/api-tags/sora2-api.md +737 -0
- package/skills/meta-capability/references/api-tags/temp-mail-api.md +136 -0
- package/skills/meta-capability/references/api-tags/threads-web-api.md +472 -0
- package/skills/meta-capability/references/api-tags/tikhub-downloader-api.md +65 -0
- package/skills/meta-capability/references/api-tags/tikhub-user-api.md +253 -0
- package/skills/meta-capability/references/api-tags/tiktok-ads-api.md +1393 -0
- package/skills/meta-capability/references/api-tags/tiktok-analytics-api.md +179 -0
- package/skills/meta-capability/references/api-tags/tiktok-app-v3-api.md +3264 -0
- package/skills/meta-capability/references/api-tags/tiktok-creator-api.md +709 -0
- package/skills/meta-capability/references/api-tags/tiktok-interaction-api.md +366 -0
- package/skills/meta-capability/references/api-tags/tiktok-shop-web-api.md +663 -0
- package/skills/meta-capability/references/api-tags/tiktok-web-api.md +2516 -0
- package/skills/meta-capability/references/api-tags/toutiao-app-api.md +220 -0
- package/skills/meta-capability/references/api-tags/toutiao-web-api.md +96 -0
- package/skills/meta-capability/references/api-tags/twitter-web-api.md +562 -0
- package/skills/meta-capability/references/api-tags/wechat-channels-api.md +405 -0
- package/skills/meta-capability/references/api-tags/wechat-media-platform-web-api.md +431 -0
- package/skills/meta-capability/references/api-tags/weibo-app-api.md +851 -0
- package/skills/meta-capability/references/api-tags/weibo-web-api.md +470 -0
- package/skills/meta-capability/references/api-tags/weibo-web-v2-api.md +1405 -0
- package/skills/meta-capability/references/api-tags/xiaohongshu-app-api.md +534 -0
- package/skills/meta-capability/references/api-tags/xiaohongshu-app-v2-api.md +934 -0
- package/skills/meta-capability/references/api-tags/xiaohongshu-web-api.md +757 -0
- package/skills/meta-capability/references/api-tags/xiaohongshu-web-v2-api.md +762 -0
- package/skills/meta-capability/references/api-tags/xigua-app-v2-api.md +308 -0
- package/skills/meta-capability/references/api-tags/youtube-web-api.md +934 -0
- package/skills/meta-capability/references/api-tags/youtube-web-v2-api.md +717 -0
- package/skills/meta-capability/references/api-tags/zhihu-web-api.md +1384 -0
- package/skills/meta-capability/references/config-templates/defaults.yaml +18 -0
- package/skills/meta-capability/references/dispatch.md +27 -0
- package/skills/meta-capability/references/execution-guidelines.md +25 -0
- package/skills/meta-capability/references/implemented-route-map.md +177 -0
- package/skills/meta-capability/references/service-guides/asr-u2-u3-fallback.md +75 -0
- package/skills/meta-capability/scripts/__init__.py +1 -0
- package/skills/meta-capability/scripts/call_route.py +141 -0
- package/skills/meta-capability/scripts/core/__init__.py +1 -0
- package/skills/meta-capability/scripts/core/bootstrap_env.py +32 -0
- package/skills/meta-capability/scripts/core/config_loader.py +204 -0
- package/skills/meta-capability/scripts/core/tikomni_common.py +443 -0
- package/skills/meta-capability/scripts/test_auth.py +98 -0
- package/skills/single-work-analysis/SKILL.md +62 -0
- package/skills/single-work-analysis/agents/openai.yaml +4 -0
- package/skills/single-work-analysis/env.example +36 -0
- package/skills/single-work-analysis/references/api-capability-index.md +92 -0
- package/skills/single-work-analysis/references/api-contracts/asr-api.md +130 -0
- package/skills/single-work-analysis/references/api-contracts/bilibili-app-api.md +776 -0
- package/skills/single-work-analysis/references/api-contracts/bilibili-web-api.md +2017 -0
- package/skills/single-work-analysis/references/api-contracts/demo-api.md +717 -0
- package/skills/single-work-analysis/references/api-contracts/douyin-app-v3-api.md +3594 -0
- package/skills/single-work-analysis/references/api-contracts/douyin-billboard-api.md +2274 -0
- package/skills/single-work-analysis/references/api-contracts/douyin-creator-api.md +1575 -0
- package/skills/single-work-analysis/references/api-contracts/douyin-creator-v2-api.md +3254 -0
- package/skills/single-work-analysis/references/api-contracts/douyin-search-api.md +4118 -0
- package/skills/single-work-analysis/references/api-contracts/douyin-web-api.md +5544 -0
- package/skills/single-work-analysis/references/api-contracts/douyin-xingtu-api.md +1916 -0
- package/skills/single-work-analysis/references/api-contracts/douyin-xingtu-v2-api.md +1540 -0
- package/skills/single-work-analysis/references/api-contracts/health-check.md +69 -0
- package/skills/single-work-analysis/references/api-contracts/hybrid-parsing.md +78 -0
- package/skills/single-work-analysis/references/api-contracts/instagram-v1-api.md +2256 -0
- package/skills/single-work-analysis/references/api-contracts/instagram-v2-api.md +2011 -0
- package/skills/single-work-analysis/references/api-contracts/instagram-v3-api.md +2630 -0
- package/skills/single-work-analysis/references/api-contracts/ios-shortcut.md +44 -0
- package/skills/single-work-analysis/references/api-contracts/kuaishou-app-api.md +1518 -0
- package/skills/single-work-analysis/references/api-contracts/kuaishou-web-api.md +1242 -0
- package/skills/single-work-analysis/references/api-contracts/lemon8-app-api.md +1088 -0
- package/skills/single-work-analysis/references/api-contracts/linkedin-web-api.md +1949 -0
- package/skills/single-work-analysis/references/api-contracts/media-ingest-api.md +126 -0
- package/skills/single-work-analysis/references/api-contracts/pipixia-app-api.md +1142 -0
- package/skills/single-work-analysis/references/api-contracts/reddit-app-api.md +2025 -0
- package/skills/single-work-analysis/references/api-contracts/sora2-api.md +2266 -0
- package/skills/single-work-analysis/references/api-contracts/temp-mail-api.md +208 -0
- package/skills/single-work-analysis/references/api-contracts/threads-web-api.md +897 -0
- package/skills/single-work-analysis/references/api-contracts/tikhub-downloader-api.md +134 -0
- package/skills/single-work-analysis/references/api-contracts/tikhub-user-api.md +494 -0
- package/skills/single-work-analysis/references/api-contracts/tiktok-ads-api.md +5947 -0
- package/skills/single-work-analysis/references/api-contracts/tiktok-analytics-api.md +968 -0
- package/skills/single-work-analysis/references/api-contracts/tiktok-app-v3-api.md +5735 -0
- package/skills/single-work-analysis/references/api-contracts/tiktok-creator-api.md +1951 -0
- package/skills/single-work-analysis/references/api-contracts/tiktok-interaction-api.md +742 -0
- package/skills/single-work-analysis/references/api-contracts/tiktok-shop-web-api.md +1890 -0
- package/skills/single-work-analysis/references/api-contracts/tiktok-web-api.md +4448 -0
- package/skills/single-work-analysis/references/api-contracts/toutiao-app-api.md +342 -0
- package/skills/single-work-analysis/references/api-contracts/toutiao-web-api.md +143 -0
- package/skills/single-work-analysis/references/api-contracts/twitter-web-api.md +989 -0
- package/skills/single-work-analysis/references/api-contracts/wechat-channels-api.md +809 -0
- package/skills/single-work-analysis/references/api-contracts/wechat-media-platform-web-api.md +677 -0
- package/skills/single-work-analysis/references/api-contracts/weibo-app-api.md +1547 -0
- package/skills/single-work-analysis/references/api-contracts/weibo-web-api.md +798 -0
- package/skills/single-work-analysis/references/api-contracts/weibo-web-v2-api.md +2459 -0
- package/skills/single-work-analysis/references/api-contracts/xiaohongshu-app-api.md +1291 -0
- package/skills/single-work-analysis/references/api-contracts/xiaohongshu-app-v2-api.md +1683 -0
- package/skills/single-work-analysis/references/api-contracts/xiaohongshu-web-api.md +1324 -0
- package/skills/single-work-analysis/references/api-contracts/xiaohongshu-web-v2-api.md +1209 -0
- package/skills/single-work-analysis/references/api-contracts/xigua-app-v2-api.md +489 -0
- package/skills/single-work-analysis/references/api-contracts/youtube-web-api.md +2636 -0
- package/skills/single-work-analysis/references/api-contracts/youtube-web-v2-api.md +2660 -0
- package/skills/single-work-analysis/references/api-contracts/zhihu-web-api.md +2315 -0
- package/skills/single-work-analysis/references/api-tags/asr-api.md +100 -0
- package/skills/single-work-analysis/references/api-tags/bilibili-app-api.md +482 -0
- package/skills/single-work-analysis/references/api-tags/bilibili-web-api.md +1267 -0
- package/skills/single-work-analysis/references/api-tags/demo-api.md +365 -0
- package/skills/single-work-analysis/references/api-tags/douyin-app-v3-api.md +2012 -0
- package/skills/single-work-analysis/references/api-tags/douyin-billboard-api.md +1428 -0
- package/skills/single-work-analysis/references/api-tags/douyin-creator-api.md +694 -0
- package/skills/single-work-analysis/references/api-tags/douyin-creator-v2-api.md +694 -0
- package/skills/single-work-analysis/references/api-tags/douyin-search-api.md +1059 -0
- package/skills/single-work-analysis/references/api-tags/douyin-web-api.md +3314 -0
- package/skills/single-work-analysis/references/api-tags/douyin-xingtu-api.md +935 -0
- package/skills/single-work-analysis/references/api-tags/douyin-xingtu-v2-api.md +925 -0
- package/skills/single-work-analysis/references/api-tags/health-check.md +40 -0
- package/skills/single-work-analysis/references/api-tags/hybrid-parsing.md +57 -0
- package/skills/single-work-analysis/references/api-tags/instagram-v1-api.md +1224 -0
- package/skills/single-work-analysis/references/api-tags/instagram-v2-api.md +1147 -0
- package/skills/single-work-analysis/references/api-tags/instagram-v3-api.md +1123 -0
- package/skills/single-work-analysis/references/api-tags/ios-shortcut.md +45 -0
- package/skills/single-work-analysis/references/api-tags/kuaishou-app-api.md +846 -0
- package/skills/single-work-analysis/references/api-tags/kuaishou-web-api.md +551 -0
- package/skills/single-work-analysis/references/api-tags/lemon8-app-api.md +687 -0
- package/skills/single-work-analysis/references/api-tags/linkedin-web-api.md +1105 -0
- package/skills/single-work-analysis/references/api-tags/media-ingest-api.md +112 -0
- package/skills/single-work-analysis/references/api-tags/pipixia-app-api.md +721 -0
- package/skills/single-work-analysis/references/api-tags/reddit-app-api.md +1057 -0
- package/skills/single-work-analysis/references/api-tags/sora2-api.md +737 -0
- package/skills/single-work-analysis/references/api-tags/temp-mail-api.md +136 -0
- package/skills/single-work-analysis/references/api-tags/threads-web-api.md +472 -0
- package/skills/single-work-analysis/references/api-tags/tikhub-downloader-api.md +65 -0
- package/skills/single-work-analysis/references/api-tags/tikhub-user-api.md +253 -0
- package/skills/single-work-analysis/references/api-tags/tiktok-ads-api.md +1393 -0
- package/skills/single-work-analysis/references/api-tags/tiktok-analytics-api.md +179 -0
- package/skills/single-work-analysis/references/api-tags/tiktok-app-v3-api.md +3264 -0
- package/skills/single-work-analysis/references/api-tags/tiktok-creator-api.md +709 -0
- package/skills/single-work-analysis/references/api-tags/tiktok-interaction-api.md +366 -0
- package/skills/single-work-analysis/references/api-tags/tiktok-shop-web-api.md +663 -0
- package/skills/single-work-analysis/references/api-tags/tiktok-web-api.md +2516 -0
- package/skills/single-work-analysis/references/api-tags/toutiao-app-api.md +220 -0
- package/skills/single-work-analysis/references/api-tags/toutiao-web-api.md +96 -0
- package/skills/single-work-analysis/references/api-tags/twitter-web-api.md +562 -0
- package/skills/single-work-analysis/references/api-tags/wechat-channels-api.md +405 -0
- package/skills/single-work-analysis/references/api-tags/wechat-media-platform-web-api.md +431 -0
- package/skills/single-work-analysis/references/api-tags/weibo-app-api.md +851 -0
- package/skills/single-work-analysis/references/api-tags/weibo-web-api.md +470 -0
- package/skills/single-work-analysis/references/api-tags/weibo-web-v2-api.md +1405 -0
- package/skills/single-work-analysis/references/api-tags/xiaohongshu-app-api.md +534 -0
- package/skills/single-work-analysis/references/api-tags/xiaohongshu-app-v2-api.md +934 -0
- package/skills/single-work-analysis/references/api-tags/xiaohongshu-web-api.md +757 -0
- package/skills/single-work-analysis/references/api-tags/xiaohongshu-web-v2-api.md +762 -0
- package/skills/single-work-analysis/references/api-tags/xigua-app-v2-api.md +308 -0
- package/skills/single-work-analysis/references/api-tags/youtube-web-api.md +934 -0
- package/skills/single-work-analysis/references/api-tags/youtube-web-v2-api.md +717 -0
- package/skills/single-work-analysis/references/api-tags/zhihu-web-api.md +1384 -0
- package/skills/single-work-analysis/references/asr-and-fallback.md +20 -0
- package/skills/single-work-analysis/references/config-templates/defaults.yaml +58 -0
- package/skills/single-work-analysis/references/contracts/work-card-fields.md +41 -0
- package/skills/single-work-analysis/references/platform-guides/douyin.md +47 -0
- package/skills/single-work-analysis/references/platform-guides/generic.md +43 -0
- package/skills/single-work-analysis/references/platform-guides/xiaohongshu.md +54 -0
- package/skills/single-work-analysis/references/prompt-contracts/asr-clean.md +28 -0
- package/skills/single-work-analysis/references/prompt-contracts/cta.md +24 -0
- package/skills/single-work-analysis/references/prompt-contracts/hook.md +25 -0
- package/skills/single-work-analysis/references/prompt-contracts/insight.md +47 -0
- package/skills/single-work-analysis/references/prompt-contracts/structure.md +25 -0
- package/skills/single-work-analysis/references/prompt-contracts/style.md +27 -0
- package/skills/single-work-analysis/references/prompt-contracts/summary.md +29 -0
- package/skills/single-work-analysis/references/prompt-contracts/topic.md +29 -0
- package/skills/single-work-analysis/references/schemas/work-card.schema.json +39 -0
- package/skills/single-work-analysis/references/service-guides/asr-u2-u3-fallback.md +75 -0
- package/skills/single-work-analysis/scripts/__init__.py +0 -0
- package/skills/single-work-analysis/scripts/core/__init__.py +0 -0
- package/skills/single-work-analysis/scripts/core/analysis_pipeline.py +133 -0
- package/skills/single-work-analysis/scripts/core/bootstrap_env.py +35 -0
- package/skills/single-work-analysis/scripts/core/config_loader.py +418 -0
- package/skills/single-work-analysis/scripts/core/extract_pipeline.py +173 -0
- package/skills/single-work-analysis/scripts/core/progress_report.py +111 -0
- package/skills/single-work-analysis/scripts/core/storage_router.py +253 -0
- package/skills/single-work-analysis/scripts/core/tikomni_common.py +588 -0
- package/skills/single-work-analysis/scripts/pipeline/__init__.py +0 -0
- package/skills/single-work-analysis/scripts/pipeline/asr/__init__.py +0 -0
- package/skills/single-work-analysis/scripts/pipeline/asr/asr_pipeline.py +1189 -0
- package/skills/single-work-analysis/scripts/pipeline/asr/poll_u2_task.py +95 -0
- package/skills/single-work-analysis/scripts/platform/__init__.py +0 -0
- package/skills/single-work-analysis/scripts/platform/douyin/__init__.py +0 -0
- package/skills/single-work-analysis/scripts/platform/douyin/douyin_video_type_matrix.py +224 -0
- package/skills/single-work-analysis/scripts/platform/douyin/run_douyin_single_video.py +1233 -0
- package/skills/single-work-analysis/scripts/platform/douyin/select_low_quality_video_url.py +200 -0
- package/skills/single-work-analysis/scripts/platform/xiaohongshu/__init__.py +0 -0
- package/skills/single-work-analysis/scripts/platform/xiaohongshu/run_xiaohongshu_extract.py +2156 -0
- package/skills/single-work-analysis/scripts/writers/__init__.py +0 -0
- package/skills/single-work-analysis/scripts/writers/write_benchmark_card.py +1402 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
schema_version: v1
|
|
2
|
+
profile: default
|
|
3
|
+
|
|
4
|
+
runtime:
|
|
5
|
+
base_url: "https://api.tikomni.com"
|
|
6
|
+
auth_env_key: "TIKOMNI_API_KEY"
|
|
7
|
+
timeout_ms: 60000
|
|
8
|
+
|
|
9
|
+
storage_routes:
|
|
10
|
+
default:
|
|
11
|
+
root_dir: ""
|
|
12
|
+
runs_dir: "_runs"
|
|
13
|
+
results_dir: "results"
|
|
14
|
+
errors_dir: "_errors"
|
|
15
|
+
|
|
16
|
+
naming_rules:
|
|
17
|
+
card_filename_pattern: "{prefix}-{author_slug}-{title_slug}{ext}"
|
|
18
|
+
json_filename_pattern: "{timestamp}-{platform}-{identifier}{ext}"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Dispatch Guidance
|
|
2
|
+
|
|
3
|
+
## Dispatch Principle
|
|
4
|
+
|
|
5
|
+
- `meta-capability` can always complete general TikOmni tasks on its own.
|
|
6
|
+
- If a more specialized skill exists in the current skill workspace and clearly matches the task, prefer handing off to that skill.
|
|
7
|
+
- If the better specialized skill is missing, not installed, not checked out, or otherwise unavailable, stay in `meta-capability` and complete the task here.
|
|
8
|
+
|
|
9
|
+
## When To Prefer `single-work-analysis`
|
|
10
|
+
|
|
11
|
+
- The target object is a single video, single post, single note, single article, or another single content item.
|
|
12
|
+
- The user wants a work card, single-item structured analysis, or transcription for one content item.
|
|
13
|
+
- `single-work-analysis` is available in the current skill workspace.
|
|
14
|
+
|
|
15
|
+
## When To Prefer `creator-analysis`
|
|
16
|
+
|
|
17
|
+
- The target object is a creator, account, profile page, or a creator-level content collection.
|
|
18
|
+
- The user wants an author card, a full content set, bucketed sampling, sampled explanations, or creator-level conclusions.
|
|
19
|
+
- `creator-analysis` is available in the current skill workspace.
|
|
20
|
+
|
|
21
|
+
## When To Stay In `meta-capability`
|
|
22
|
+
|
|
23
|
+
- The object boundary is still unclear.
|
|
24
|
+
- The platform is unfamiliar and the task first needs route confirmation, parameter confirmation, or media-entry discovery.
|
|
25
|
+
- The task first needs capability checking before a stricter work-card or author-card contract can be satisfied.
|
|
26
|
+
- The user is asking what is available, what route to use, or what fields are required.
|
|
27
|
+
- A better specialized skill is not currently available.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Execution Guidelines
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Within a shared cross-platform execution flow, finish capability discovery, route selection, input confirmation, and field-availability checks before moving into extraction or analysis.
|
|
6
|
+
|
|
7
|
+
## Minimum Checklist
|
|
8
|
+
|
|
9
|
+
- Confirm the platform and object type: single content item, comments, profile, or content collection.
|
|
10
|
+
- Read `api-capability-index.md` and lock onto the relevant platform tag.
|
|
11
|
+
- Read the relevant routes in `api-tags/*.md` for auth requirements, key inputs, and key success responses.
|
|
12
|
+
- If exact field definitions, defaults, examples, or full success-response structures are needed, continue into the relevant `api-contracts/*.md`.
|
|
13
|
+
- Decide whether the task can use a validated route chain from this repository or needs an ad hoc route choice from the broader catalog.
|
|
14
|
+
- For video ASR, decide whether `service-guides/asr-u2-u3-fallback.md` is needed for the 90-second soft observation window and the 120-second hard fallback.
|
|
15
|
+
- Identify the usable entry points: share URL, landing-page URL, platform ID, profile URL, download URL, or raw text.
|
|
16
|
+
- Identify the retrievable resources: title, caption, subtitles, comments, media download URLs, author metadata, and engagement metrics.
|
|
17
|
+
- Confirm the output expectation: raw facts, structured fields, analysis conclusions, or a combination.
|
|
18
|
+
- Confirm missing-field and degradation behavior: which fields are stable, which need fallback, and which are currently unavailable.
|
|
19
|
+
|
|
20
|
+
## Output Requirements
|
|
21
|
+
|
|
22
|
+
- Return concrete routes, inputs, and results rather than generic advice.
|
|
23
|
+
- Make field origin, stability, and missing reasons explicit.
|
|
24
|
+
- Ground every analysis conclusion in retrieved facts only.
|
|
25
|
+
- Prefer platform-neutral output structures when possible so the results remain reusable.
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Validated Route Chains
|
|
2
|
+
|
|
3
|
+
## Contents
|
|
4
|
+
|
|
5
|
+
- [Purpose](#purpose)
|
|
6
|
+
- [Single Content](#single-content)
|
|
7
|
+
- [Creator Profiles](#creator-profiles)
|
|
8
|
+
- [Other Platforms](#other-platforms)
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
- This file records only the preferred route chains that already have script support and have been validated in this repository.
|
|
13
|
+
- It does not replace `api-capability-index.md` + `api-tags/*.md` + `api-contracts/*.md`. The first two provide discovery and route summaries, the third provides full contracts, and this file answers the narrower question: which chain should be tried first.
|
|
14
|
+
- When the user target is already clear, prefer the chains listed here. Only go back to the index and tag files when the validated chain is insufficient.
|
|
15
|
+
|
|
16
|
+
## Single Content
|
|
17
|
+
|
|
18
|
+
### Douyin Single Content
|
|
19
|
+
|
|
20
|
+
1. `GET /api/u1/v1/douyin/app/v3/fetch_one_video_by_share_url`
|
|
21
|
+
- Required input: `share_url`
|
|
22
|
+
2. `GET /api/u1/v1/douyin/web/fetch_one_video_by_share_url`
|
|
23
|
+
- Required input: `share_url`
|
|
24
|
+
3. `POST /api/u2/v1/services/audio/asr/transcription`
|
|
25
|
+
- Key request-body field: `input.file_urls[]`
|
|
26
|
+
4. `POST /api/u2/v1/tasks/{task_id}`
|
|
27
|
+
- Path parameter: `task_id`
|
|
28
|
+
|
|
29
|
+
ASR timeout fallback:
|
|
30
|
+
|
|
31
|
+
- After 90 seconds, stay in soft observation only.
|
|
32
|
+
- After 120 seconds, if there is still no result, do not declare failure immediately. Follow `service-guides/asr-u2-u3-fallback.md`, use U3 fallback, and then retry U2.
|
|
33
|
+
|
|
34
|
+
Required output targets:
|
|
35
|
+
|
|
36
|
+
- `platform_work_id`
|
|
37
|
+
- `platform_author_id`
|
|
38
|
+
- `author_handle`
|
|
39
|
+
- `title`
|
|
40
|
+
- `caption_raw`
|
|
41
|
+
- `work_modality`
|
|
42
|
+
- `published_date`
|
|
43
|
+
- `digg_count`
|
|
44
|
+
- `comment_count`
|
|
45
|
+
- `collect_count`
|
|
46
|
+
- `share_count`
|
|
47
|
+
- `play_count`
|
|
48
|
+
- `cover_image`
|
|
49
|
+
- `source_url`
|
|
50
|
+
- `share_url`
|
|
51
|
+
- `video_download_url`
|
|
52
|
+
- `asr_raw`
|
|
53
|
+
|
|
54
|
+
### Xiaohongshu Single Content
|
|
55
|
+
|
|
56
|
+
1. `GET /api/u1/v1/xiaohongshu/app_v2/get_video_note_detail`
|
|
57
|
+
2. `GET /api/u1/v1/xiaohongshu/app_v2/get_image_note_detail`
|
|
58
|
+
3. `GET /api/u1/v1/xiaohongshu/app_v2/get_mixed_note_detail`
|
|
59
|
+
- Typical input: `note_id` or `share_text`
|
|
60
|
+
4. `GET /api/u1/v1/xiaohongshu/app/get_note_info`
|
|
61
|
+
5. `GET /api/u1/v1/xiaohongshu/web_v2/fetch_feed_notes_v2`
|
|
62
|
+
- Required input: `note_id`
|
|
63
|
+
6. `GET /api/u1/v1/xiaohongshu/web_v2/fetch_feed_notes_v3`
|
|
64
|
+
- Required input: `short_url`
|
|
65
|
+
7. `GET /api/u1/v1/xiaohongshu/web/get_note_info_v7`
|
|
66
|
+
8. `POST /api/u2/v1/services/audio/asr/transcription`
|
|
67
|
+
9. `POST /api/u2/v1/tasks/{task_id}`
|
|
68
|
+
|
|
69
|
+
ASR timeout fallback:
|
|
70
|
+
|
|
71
|
+
- After 90 seconds, stay in soft observation only.
|
|
72
|
+
- After 120 seconds, if there is still no result, do not declare failure immediately. Follow `service-guides/asr-u2-u3-fallback.md`, use U3 fallback, and then retry U2.
|
|
73
|
+
|
|
74
|
+
Required output targets:
|
|
75
|
+
|
|
76
|
+
- `platform_work_id`
|
|
77
|
+
- `platform_author_id`
|
|
78
|
+
- `author_handle`
|
|
79
|
+
- `title`
|
|
80
|
+
- `caption_raw`
|
|
81
|
+
- `work_modality`
|
|
82
|
+
- `published_date`
|
|
83
|
+
- `digg_count`
|
|
84
|
+
- `comment_count`
|
|
85
|
+
- `collect_count`
|
|
86
|
+
- `share_count`
|
|
87
|
+
- `play_count`
|
|
88
|
+
- `cover_image`
|
|
89
|
+
- `source_url`
|
|
90
|
+
- `share_url`
|
|
91
|
+
- `video_download_url`
|
|
92
|
+
- `asr_raw`
|
|
93
|
+
|
|
94
|
+
## Creator Profiles
|
|
95
|
+
|
|
96
|
+
### Douyin Creator Profile
|
|
97
|
+
|
|
98
|
+
1. `GET /api/u1/v1/douyin/web/get_sec_user_id`
|
|
99
|
+
- OpenAPI-required input: `url`
|
|
100
|
+
2. `GET /api/u1/v1/douyin/app/v3/handler_user_profile`
|
|
101
|
+
- Required input: `sec_user_id`
|
|
102
|
+
3. `GET /api/u1/v1/douyin/app/v3/fetch_user_post_videos`
|
|
103
|
+
- Required input: `sec_user_id`
|
|
104
|
+
- Common pagination parameters: `max_cursor`, `count`, `sort_type`
|
|
105
|
+
|
|
106
|
+
Required author-card fields:
|
|
107
|
+
|
|
108
|
+
- `platform_author_id`
|
|
109
|
+
- `author_handle`
|
|
110
|
+
- `nickname`
|
|
111
|
+
- `ip_location`
|
|
112
|
+
- `signature`
|
|
113
|
+
- `avatar_url`
|
|
114
|
+
- `fans_count`
|
|
115
|
+
- `liked_count`
|
|
116
|
+
- `works_count`
|
|
117
|
+
- `verified`
|
|
118
|
+
|
|
119
|
+
Required profile-post fields:
|
|
120
|
+
|
|
121
|
+
- `platform_work_id`
|
|
122
|
+
- `title`
|
|
123
|
+
- `caption_raw`
|
|
124
|
+
- `published_date`
|
|
125
|
+
- `digg_count`
|
|
126
|
+
- `comment_count`
|
|
127
|
+
- `collect_count`
|
|
128
|
+
- `share_count`
|
|
129
|
+
- `play_count`
|
|
130
|
+
- `video_download_url`
|
|
131
|
+
|
|
132
|
+
### Xiaohongshu Creator Profile
|
|
133
|
+
|
|
134
|
+
1. `GET /api/u1/v1/xiaohongshu/app/get_user_id_and_xsec_token`
|
|
135
|
+
- OpenAPI-required input: `share_link`
|
|
136
|
+
2. Profile cascade:
|
|
137
|
+
- `GET /api/u1/v1/xiaohongshu/app_v2/get_user_info`
|
|
138
|
+
- `GET /api/u1/v1/xiaohongshu/web_v2/fetch_user_info_app`
|
|
139
|
+
- `GET /api/u1/v1/xiaohongshu/app/get_user_info`
|
|
140
|
+
3. Posts cascade:
|
|
141
|
+
- `GET /api/u1/v1/xiaohongshu/app_v2/get_user_posted_notes`
|
|
142
|
+
- `GET /api/u1/v1/xiaohongshu/web_v2/fetch_home_notes_app`
|
|
143
|
+
- `GET /api/u1/v1/xiaohongshu/app/get_user_notes`
|
|
144
|
+
|
|
145
|
+
Required author-card fields:
|
|
146
|
+
|
|
147
|
+
- `platform_author_id`
|
|
148
|
+
- `author_handle`
|
|
149
|
+
- `nickname`
|
|
150
|
+
- `ip_location`
|
|
151
|
+
- `signature`
|
|
152
|
+
- `avatar_url`
|
|
153
|
+
- `fans_count`
|
|
154
|
+
- `liked_count`
|
|
155
|
+
- `collected_count`
|
|
156
|
+
- `works_count`
|
|
157
|
+
- `verified`
|
|
158
|
+
|
|
159
|
+
Required profile-post fields:
|
|
160
|
+
|
|
161
|
+
- `platform_work_id`
|
|
162
|
+
- `title`
|
|
163
|
+
- `caption_raw`
|
|
164
|
+
- `published_date`
|
|
165
|
+
- `digg_count`
|
|
166
|
+
- `comment_count`
|
|
167
|
+
- `collect_count`
|
|
168
|
+
- `share_count`
|
|
169
|
+
- `play_count`
|
|
170
|
+
- `video_download_url`
|
|
171
|
+
|
|
172
|
+
## Other Platforms
|
|
173
|
+
|
|
174
|
+
- Start with `api-capability-index.md` to find the relevant platform tag, then read the relevant `api-tags/*.md`. If the field definitions are still not precise enough, continue into the relevant `api-contracts/*.md`.
|
|
175
|
+
- For a single content item, prefer a detail route first, then add media, subtitle, or comment routes as needed.
|
|
176
|
+
- For a creator profile, prefer a profile route plus a posts route. Do not stop at a single segment of data.
|
|
177
|
+
- Declare a platform or object infeasible only when the full catalog still cannot provide routes that satisfy the required output fields.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# U2 ASR and U3 Public URL Fallback
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
- This guide defines the primary ASR path and timeout fallback for video tasks. It does not apply to text-only works.
|
|
6
|
+
- Always try U2 ASR first. U3 is fallback-only and must not bypass U2 by default.
|
|
7
|
+
- If a U1 detail route returns a no-watermark download link or another download URL that may not be publicly readable, use this guide to decide when to switch to U3.
|
|
8
|
+
- Source: `https://app.tikomni.com/openapi/tikomni-openapi.full.with-u2.public.latest.json`
|
|
9
|
+
- Fetched at: `2026-03-08T06:54:04+00:00`
|
|
10
|
+
|
|
11
|
+
## Fixed Policy
|
|
12
|
+
|
|
13
|
+
1. Call a U1 detail route first and collect `video_download_url`, a no-watermark download URL, or another directly downloadable media URL.
|
|
14
|
+
2. Submit that URL to U2 ASR directly. Do not start with U3.
|
|
15
|
+
3. If there is still no complete result after 90 seconds, stay in soft observation and keep the primary path unchanged.
|
|
16
|
+
4. If there is still no result or still no complete result after 120 seconds, treat the source URL as likely not publicly readable and only then allow U3 fallback.
|
|
17
|
+
5. After U3 completes, obtain a public URL and submit it to U2 ASR again.
|
|
18
|
+
6. If U3 or the second U2 attempt still fails, keep the fact card and return `incomplete`. Do not fabricate the main text or any analysis conclusion.
|
|
19
|
+
|
|
20
|
+
## Scenario Notes
|
|
21
|
+
|
|
22
|
+
- Single content task: run this flow only for the current item.
|
|
23
|
+
- Creator batch task: apply U3 fallback only to the subset that still has no result after 120 seconds. Do not re-upload items that already succeeded.
|
|
24
|
+
|
|
25
|
+
## Route Facts
|
|
26
|
+
|
|
27
|
+
### Submit U2 ASR job
|
|
28
|
+
|
|
29
|
+
- Purpose: Default primary path. Submit the no-watermark or download URL returned by U1 directly to U2 ASR. Do not start with U3.
|
|
30
|
+
- Tag: [`ASR-API`](../api-tags/asr-api.md)
|
|
31
|
+
- Route: `POST /api/u2/v1/services/audio/asr/transcription`
|
|
32
|
+
- Auth: Header `Authorization: Bearer {token}`; docs also allow Cookie `Authorization` as fallback (`HTTPBearer`)
|
|
33
|
+
- Parameters: None
|
|
34
|
+
- Request body: application/json: `input*`{`file_urls*`[string(uri)]}
|
|
35
|
+
- Success response: 200 application/json: `request_id*`:string, `output*`{`task_id*`:string, `task_status*`:string, `submit_time`:string, `scheduled_time`:string, `end_time`:string, `task_metrics`{...}, `results`[object]}, `usage`{...}
|
|
36
|
+
- Full contract: [`api-contracts/asr-api.md#post-api-u2-v1-services-audio-asr-transcription`](../api-contracts/asr-api.md#post-api-u2-v1-services-audio-asr-transcription)
|
|
37
|
+
|
|
38
|
+
### Poll U2 job status
|
|
39
|
+
|
|
40
|
+
- Purpose: Observe job completion. Stay in soft observation after 90 seconds. Trigger U3 fallback only if there is still no result after 120 seconds.
|
|
41
|
+
- Tag: [`ASR-API`](../api-tags/asr-api.md)
|
|
42
|
+
- Route: `POST /api/u2/v1/tasks/{task_id}`
|
|
43
|
+
- Auth: Header `Authorization: Bearer {token}`; docs also allow Cookie `Authorization` as fallback (`HTTPBearer`)
|
|
44
|
+
- Parameters: path: `task_id*`
|
|
45
|
+
- Request body: None
|
|
46
|
+
- Success response: 200 application/json: `time*`:string, `time_stamp*`:integer, `time_zone*`:string, `params*`{`task_id*`:string}, `data*`{`task_id*`:string, `task_status*`:string | null, `platform_task_status*`:string, `is_fully_succeeded*`:boolean, `submit_time`:string, `scheduled_time`:string, `end_time`:string, `task_metrics`{...}, ...}, `code*`:integer, `request_id*`:string, `message*`:string, ...
|
|
47
|
+
- Full contract: [`api-contracts/asr-api.md#post-api-u2-v1-tasks-task-id`](../api-contracts/asr-api.md#post-api-u2-v1-tasks-task-id)
|
|
48
|
+
|
|
49
|
+
### Request U3 upload / relay
|
|
50
|
+
|
|
51
|
+
- Purpose: Use only if U2 still has no result after 120 seconds. Its purpose is to convert a private or non-publicly-readable source link into a public URL.
|
|
52
|
+
- Tag: [`Media-Ingest-API`](../api-tags/media-ingest-api.md)
|
|
53
|
+
- Route: `POST /api/u3/v1/uploads`
|
|
54
|
+
- Auth: Header `Authorization: Bearer {token}`; docs also allow Cookie `Authorization` as fallback (`HTTPBearer`)
|
|
55
|
+
- Parameters: None
|
|
56
|
+
- Request body: application/json: `provider*`:string, `file_name*`:string, `content_type*`:string, `size_bytes*`:integer
|
|
57
|
+
- Success response: 200 application/json: `time*`:string, `time_stamp*`:integer, `time_zone*`:string, `params*`{`provider*`:string, `file_name*`:string, `content_type*`:string, `size_bytes*`:integer}, `data*`{`upload_id*`:string, `provider*`:string, `upload_method*`:string, `upload_url*`:string, `upload_headers*`{...}, `upload_expires_at*`:string, `file_ttl_seconds*`:integer}, `code*`:integer, `request_id*`:string, `message*`:string, ...
|
|
58
|
+
- Full contract: [`api-contracts/media-ingest-api.md#post-api-u3-v1-uploads`](../api-contracts/media-ingest-api.md#post-api-u3-v1-uploads)
|
|
59
|
+
|
|
60
|
+
### Complete U3 upload and get a public URL
|
|
61
|
+
|
|
62
|
+
- Purpose: Completion should return a public URL. Submit that URL to U2 ASR again. If it still fails, keep the fact card and return incomplete.
|
|
63
|
+
- Tag: [`Media-Ingest-API`](../api-tags/media-ingest-api.md)
|
|
64
|
+
- Route: `POST /api/u3/v1/uploads/{upload_id}/complete`
|
|
65
|
+
- Auth: Header `Authorization: Bearer {token}`; docs also allow Cookie `Authorization` as fallback (`HTTPBearer`)
|
|
66
|
+
- Parameters: path: `upload_id*`
|
|
67
|
+
- Request body: application/json: dynamic object
|
|
68
|
+
- Success response: 200 application/json: `time*`:string, `time_stamp*`:integer, `time_zone*`:string, `params*`{`upload_id*`:string}, `data*`{`upload_id*`:string, `provider*`:string, `file_url*`:string, `file_expires_at*`:string}, `code*`:integer, `request_id*`:string, `message*`:string, ...
|
|
69
|
+
- Full contract: [`api-contracts/media-ingest-api.md#post-api-u3-v1-uploads-upload-id-complete`](../api-contracts/media-ingest-api.md#post-api-u3-v1-uploads-upload-id-complete)
|
|
70
|
+
|
|
71
|
+
## Execution Notes
|
|
72
|
+
|
|
73
|
+
- This guide only defines route order and fallback order. It does not replace platform-specific detail-route selection.
|
|
74
|
+
- The U1 source route depends on the platform, for example a Douyin or Xiaohongshu detail route. This guide only requires using the returned download URL first.
|
|
75
|
+
- If the platform already returns usable `subtitle_raw`, map it directly to `asr_raw` instead of calling U2 or U3.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Meta capability runtime scripts."""
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
if __package__ in {None, ""}:
|
|
4
|
+
import sys
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
_self = Path(__file__).resolve()
|
|
8
|
+
for _parent in _self.parents:
|
|
9
|
+
if (_parent / "scripts" / "core" / "bootstrap_env.py").is_file():
|
|
10
|
+
sys.path.insert(0, str(_parent))
|
|
11
|
+
break
|
|
12
|
+
|
|
13
|
+
"""Call any TikOmni route with Authorization for meta-capability."""
|
|
14
|
+
|
|
15
|
+
from scripts.core.bootstrap_env import bootstrap_for_direct_run
|
|
16
|
+
|
|
17
|
+
bootstrap_for_direct_run(__file__, __package__)
|
|
18
|
+
|
|
19
|
+
import argparse
|
|
20
|
+
import json
|
|
21
|
+
from typing import Any, Dict, Optional
|
|
22
|
+
|
|
23
|
+
from scripts.core.config_loader import load_tikomni_config, resolve_runtime_settings
|
|
24
|
+
from scripts.core.tikomni_common import call_json_api, resolve_runtime, write_json_stdout
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def _parse_json_arg(name: str, raw_value: Optional[str]) -> Optional[Any]:
|
|
28
|
+
if raw_value is None or not str(raw_value).strip():
|
|
29
|
+
return None
|
|
30
|
+
try:
|
|
31
|
+
return json.loads(raw_value)
|
|
32
|
+
except Exception as error:
|
|
33
|
+
raise ValueError(f"invalid_json:{name}") from error
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _require_mapping(name: str, payload: Optional[Any]) -> Optional[Dict[str, Any]]:
|
|
37
|
+
if payload is None:
|
|
38
|
+
return None
|
|
39
|
+
if not isinstance(payload, dict):
|
|
40
|
+
raise ValueError(f"{name}_must_be_json_object")
|
|
41
|
+
return payload
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _normalize_headers(payload: Optional[Any]) -> Optional[Dict[str, str]]:
|
|
45
|
+
mapping = _require_mapping("headers", payload)
|
|
46
|
+
if mapping is None:
|
|
47
|
+
return None
|
|
48
|
+
normalized: Dict[str, str] = {}
|
|
49
|
+
for key, value in mapping.items():
|
|
50
|
+
normalized[str(key)] = str(value)
|
|
51
|
+
return normalized
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def main() -> None:
|
|
55
|
+
parser = argparse.ArgumentParser(description="Call a TikOmni route with meta-capability auth")
|
|
56
|
+
parser.add_argument("method", help="HTTP method, for example GET or POST")
|
|
57
|
+
parser.add_argument("path", help="Route path, for example /api/u1/v1/health/check")
|
|
58
|
+
parser.add_argument("--params-json", default=None, help='JSON object for query params, for example {"id":"123"}')
|
|
59
|
+
parser.add_argument("--body-json", default=None, help='JSON payload for request body')
|
|
60
|
+
parser.add_argument(
|
|
61
|
+
"--headers-json",
|
|
62
|
+
default=None,
|
|
63
|
+
help='Optional extra headers JSON, for example {"X-Debug":"1"}',
|
|
64
|
+
)
|
|
65
|
+
parser.add_argument("--config", default=None, help="Optional YAML config path")
|
|
66
|
+
parser.add_argument("--env-file", default=None, help="Optional env file path under skills root")
|
|
67
|
+
parser.add_argument("--api-key-env", default=None, help="Optional API key env variable name override")
|
|
68
|
+
parser.add_argument("--base-url", default=None, help="Optional TikOmni API base URL override")
|
|
69
|
+
parser.add_argument("--timeout-ms", type=int, default=None, help="Optional timeout override in milliseconds")
|
|
70
|
+
parser.add_argument("--allow-process-env", action="store_true", help="Allow process env to override env files")
|
|
71
|
+
args = parser.parse_args()
|
|
72
|
+
|
|
73
|
+
try:
|
|
74
|
+
params = _require_mapping("params", _parse_json_arg("params", args.params_json))
|
|
75
|
+
body = _parse_json_arg("body", args.body_json)
|
|
76
|
+
extra_headers = _normalize_headers(_parse_json_arg("headers", args.headers_json))
|
|
77
|
+
|
|
78
|
+
config, config_path = load_tikomni_config(
|
|
79
|
+
cli_config_path=args.config,
|
|
80
|
+
env_file=args.env_file,
|
|
81
|
+
allow_process_env=args.allow_process_env,
|
|
82
|
+
)
|
|
83
|
+
runtime_settings = resolve_runtime_settings(
|
|
84
|
+
config=config,
|
|
85
|
+
cli_base_url=args.base_url,
|
|
86
|
+
cli_timeout_ms=args.timeout_ms,
|
|
87
|
+
cli_api_key_env=args.api_key_env,
|
|
88
|
+
)
|
|
89
|
+
runtime = resolve_runtime(
|
|
90
|
+
env_file=args.env_file,
|
|
91
|
+
api_key_env=runtime_settings["api_key_env"],
|
|
92
|
+
base_url=runtime_settings["base_url"],
|
|
93
|
+
timeout_ms=runtime_settings["timeout_ms"],
|
|
94
|
+
allow_process_env=args.allow_process_env,
|
|
95
|
+
)
|
|
96
|
+
except Exception as error:
|
|
97
|
+
write_json_stdout(
|
|
98
|
+
{
|
|
99
|
+
"ok": False,
|
|
100
|
+
"method": args.method.upper(),
|
|
101
|
+
"path": args.path,
|
|
102
|
+
"error_reason": str(error),
|
|
103
|
+
"request_id": None,
|
|
104
|
+
}
|
|
105
|
+
)
|
|
106
|
+
raise SystemExit(2) from error
|
|
107
|
+
|
|
108
|
+
result = call_json_api(
|
|
109
|
+
base_url=runtime["base_url"],
|
|
110
|
+
path=args.path,
|
|
111
|
+
token=runtime["token"],
|
|
112
|
+
method=args.method.upper(),
|
|
113
|
+
timeout_ms=runtime["timeout_ms"],
|
|
114
|
+
params=params,
|
|
115
|
+
body=body,
|
|
116
|
+
extra_headers=extra_headers,
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
write_json_stdout(
|
|
120
|
+
{
|
|
121
|
+
"ok": result["ok"],
|
|
122
|
+
"method": args.method.upper(),
|
|
123
|
+
"path": args.path,
|
|
124
|
+
"base_url": runtime["base_url"],
|
|
125
|
+
"params": params,
|
|
126
|
+
"body": body,
|
|
127
|
+
"extra_headers": extra_headers,
|
|
128
|
+
"status_code": result.get("status_code"),
|
|
129
|
+
"request_id": result.get("request_id"),
|
|
130
|
+
"error_reason": result.get("error_reason"),
|
|
131
|
+
"auth_env_key": runtime_settings["api_key_env"],
|
|
132
|
+
"config_path": config_path,
|
|
133
|
+
"env_bootstrap": runtime.get("env_bootstrap", {}),
|
|
134
|
+
"data": result.get("data", {}),
|
|
135
|
+
}
|
|
136
|
+
)
|
|
137
|
+
raise SystemExit(0 if result["ok"] else 1)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
if __name__ == "__main__":
|
|
141
|
+
main()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Core helpers for meta capability runtime."""
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Shared bootstrap utilities for direct script execution."""
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import sys
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from typing import Optional
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def _locate_repo_root(file_path: str) -> Optional[Path]:
|
|
12
|
+
current = Path(file_path).resolve()
|
|
13
|
+
for parent in current.parents:
|
|
14
|
+
if (parent / "scripts").is_dir():
|
|
15
|
+
return parent
|
|
16
|
+
return None
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def bootstrap_for_direct_run(file_path: str, package: Optional[str] = None) -> Optional[str]:
|
|
20
|
+
"""Inject repo root into sys.path when executed as a direct script path."""
|
|
21
|
+
|
|
22
|
+
if package not in {None, ""}:
|
|
23
|
+
return None
|
|
24
|
+
|
|
25
|
+
repo_root = _locate_repo_root(file_path)
|
|
26
|
+
if repo_root is None:
|
|
27
|
+
return None
|
|
28
|
+
|
|
29
|
+
repo_root_str = str(repo_root)
|
|
30
|
+
if repo_root_str not in sys.path:
|
|
31
|
+
sys.path.insert(0, repo_root_str)
|
|
32
|
+
return repo_root_str
|