{"id":48717272,"url":"https://github.com/hc-tec/my-collection-skills","last_synced_at":"2026-04-11T18:00:11.016Z","repository":{"id":337274822,"uuid":"1152944948","full_name":"hc-tec/my-collection-skills","owner":"hc-tec","description":"用 CookieCloud + API/Playwright 拉取 B站/知乎/小红书收藏（文件夹/收藏夹/专辑），含音频下载+Whisper 转写。","archived":false,"fork":false,"pushed_at":"2026-02-09T14:25:26.000Z","size":2473,"stargazers_count":29,"open_issues_count":0,"forks_count":6,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-11T17:59:49.390Z","etag":null,"topics":["bilibili","bookmarks","cookiecloud","docker","favorites","playwright","skills","web-scraping","whisper","xiaohongshu","yt-dlp","zhihu"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hc-tec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-08T17:10:35.000Z","updated_at":"2026-04-06T10:30:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hc-tec/my-collection-skills","commit_stats":null,"previous_names":["hc-tec/my-collection-skills"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hc-tec/my-collection-skills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hc-tec%2Fmy-collection-skills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hc-tec%2Fmy-collection-skills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hc-tec%2Fmy-collection-skills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hc-tec%2Fmy-collection-skills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hc-tec","download_url":"https://codeload.github.com/hc-tec/my-collection-skills/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hc-tec%2Fmy-collection-skills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31689762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bilibili","bookmarks","cookiecloud","docker","favorites","playwright","skills","web-scraping","whisper","xiaohongshu","yt-dlp","zhihu"],"created_at":"2026-04-11T18:00:10.088Z","updated_at":"2026-04-11T18:00:11.001Z","avatar_url":"https://github.com/hc-tec.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 我的收藏 Skills（Bilibili / 知乎 / 小红书）\n\n![](./docs/images/promotion.jpeg)\n\n这是一组可复用的 **skills + 脚本**，用于拉取/查看你在各平台的收藏结构与内容（文件夹/收藏夹/专辑），并在需要时拿到“可用于总结的文本”（例如字幕逐字稿、文章正文、笔记文案）。\n\n已支持（当前三平台）：\n- **Bilibili**：收藏夹列表 + 收藏夹条目 + 视频字幕逐字稿（如有字幕）\n- **知乎**：收藏夹列表 + 条目列表 + 回答/文章全文提取\n- **小红书**：收藏笔记列表 + 收藏专辑/收藏夹（Boards）+ 笔记详情提取（Playwright 优先）\n\n设计原则：\n- **永远不依赖 RSSHub**。\n- **API 优先**：能用官方/事实标准 Web API 的就不用浏览器（B站 / 知乎）。\n- **Playwright 优先**：遇到签名/反爬/JS Challenge 的站点，优先用浏览器加载后读取 hydrated state / 网络数据，尽量避免脆弱的 DOM 解析（小红书）。\n\n## 包含哪些 skills\n\n- 平台原子 skill：\n  - `skills/bilibili-favorites`\n  - `skills/zhihu-favorites`\n  - `skills/xiaohongshu-favorites`\n- 聚合入口（路由器）：\n  - `skills/favorites-harvester`（一个入口按 URL/平台分发到原子脚本）\n- 可选媒体流水线（也是原子 skill，可组合使用）：\n  - `skills/media-audio-download`（下载音频，用于转写）\n  - `skills/whisper-transcribe-docker`（faster-whisper 本地转写，Docker 运行）\n\n## 快速开始（Docker + CookieCloud，推荐）\n\n这套仓库是 **Docker-first**：不要求你本机装 Python。\n\n### CookieCloud 链接与说明\n\n- CookieCloud 项目主页（服务端 + 浏览器插件）：https://github.com/easychen/CookieCloud\n- Docker 镜像：`easychen/cookiecloud`\n- 浏览器插件：在 Chrome Web Store / Edge 扩展商店搜索 `CookieCloud` 安装\n\nCookieCloud 插件配置示意（脱敏示意图）：\n\n![CookieCloud 扩展配置示意图](docs/images/cookiecloud-extension-settings.svg)\n\n1) 启动 CookieCloud（Docker）：\n```bash\ndocker compose up -d cookiecloud\n```\n\n2) 在宿主机设置 CookieCloud 凭据（会透传进容器）：\n\nPowerShell：\n```powershell\n$env:COOKIECLOUD_UUID=\"YOUR_UUID\"\n$env:COOKIECLOUD_PASSWORD=\"YOUR_PASSWORD\"\n```\n\nBash：\n```bash\nexport COOKIECLOUD_UUID=\"YOUR_UUID\"\nexport COOKIECLOUD_PASSWORD=\"YOUR_PASSWORD\"\n```\n\n3) 浏览器 CookieCloud 插件配置：\n- Server：`http://127.0.0.1:8088`\n- UUID / PASSWORD：填你自己的\n- 然后点一次同步/导出（让服务端拿到加密 cookie payload）\n\n4) 构建 runner（包含 Playwright + Python 依赖）：\n```bash\ndocker compose build runner\n```\n\n5) 一键列出三平台收藏容器（JSON）：\n```bash\ndocker compose run --rm runner python skills/favorites-harvester/scripts/favorites_harvester.py list --platform all --json\n```\n\n更多用法见：\n- `docs/cookiecloud.md`\n- `docs/usage.md`\n\n示例输出（脱敏示意图）：\n\n![示例输出](docs/images/example-output.svg)\n\n## 常见需求怎么跑\n\n1) “帮我看看 B 站最近收藏了哪些视频”\n```bash\ndocker compose run --rm runner python skills/bilibili-favorites/scripts/bili_folders.py --json\n# 选一个 media_id 后：\ndocker compose run --rm runner python skills/bilibili-favorites/scripts/bili_folder_items.py --media-id \u003cfolderId\u003e --order mtime --limit 20 --json\n```\n\n2) “这条 B 站视频讲了啥（要逐字稿）”\n- 先尝试字幕逐字稿（如果视频本身有字幕，这是最稳的“逐字稿”来源）：\n```bash\ndocker compose run --rm runner python skills/bilibili-favorites/scripts/bili_video_transcript.py --url 'https://www.bilibili.com/video/BV...' --timestamps\n```\n- 如果提示没有字幕：走“下载音频 -\u003e Whisper 转写”（见下方）。\n\n3) “这篇知乎回答/文章讲了什么”\n```bash\ndocker compose run --rm runner python skills/zhihu-favorites/scripts/zhihu_item_content.py --url 'https://www.zhihu.com/question/.../answer/...'\ndocker compose run --rm runner python skills/zhihu-favorites/scripts/zhihu_item_content.py --url 'https://zhuanlan.zhihu.com/p/...'\n```\n\n4) “小红书我收藏了哪些笔记/收藏专辑”\n（遇到验证码/风控请加 `--no-headless`）\n```bash\ndocker compose run --rm runner python skills/xiaohongshu-favorites/scripts/xhs_saved_notes.py --max 50 --json\ndocker compose run --rm runner python skills/xiaohongshu-favorites/scripts/xhs_boards.py --max 50 --json\n```\n\n## 视频/音频转写（Docker）\n\n当平台没有字幕/没有可直接提取的逐字稿时，用这两个原子 skill 组合：\n\n1) 下载音频（输出到 `./out`）：\n```bash\nmkdir -p out\ndocker compose run --rm media-audio-download --url 'https://www.bilibili.com/video/BV...'\n```\n\n2) faster-whisper 转写（写文件，带时间戳）：\n```bash\ndocker compose run --rm -e HF_ENDPOINT=https://hf-mirror.com whisper-transcribe \\\n  /work/out/\u003caudio\u003e.m4a --model tiny --timestamps --out /work/out/\u003caudio\u003e.txt\n```\n\n说明：\n- 第一次运行会下载模型权重（缓存到 `whisper-models` volume）。\n- 如果你的网络可直连 Hugging Face，可以不传 `HF_ENDPOINT`。\n\n## 注意事项 / 免责声明\n\n- 本仓库通过 **你自己的登录 cookies** 访问 **你自己的账号数据**；cookies 属于敏感信息，请妥善保管。\n- 请自行确保使用方式符合各平台的服务条款与当地法律法规。\n- 若出现 captcha/403/空数据，通常需要重新同步 CookieCloud，或用 `--no-headless` 可视化调试。\n\n## License\n\nMIT（见 `LICENSE`）。 \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhc-tec%2Fmy-collection-skills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhc-tec%2Fmy-collection-skills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhc-tec%2Fmy-collection-skills/lists"}