Not in the top 1,000 by GitHub stars

KristenPan/pickoo-your-favorites

Local-first creator favorites workbench with evidence-preserving Markdown capture and a complete browser UI.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

packaging/redskill/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

c47f98297ded → c47f98297ded

Compare on GitHub

skill-source/asset-review-agent/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

c47f98297ded → c47f98297ded

Compare on GitHub

skill-source/creator-content-ingest/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

c47f98297ded → c47f98297ded

Compare on GitHub

skill-source/save-to-favorites/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

c47f98297ded → c47f98297ded

Compare on GitHub

View on GitHubAdd to my skills

Verified commit c47f98297ded7e09e2ffa45a9baede7ce532f587

20GitHub stars
0stars in 7 days
4skills in this repository
0commits in 30 days

Heat

0.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 25, 202620

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

pickoo-your-favorites

When your agent uses it

本地优先的 AI 收藏夹助手,让桌面 Agent 自动收录和整理小红书、微信、抖音、B站、小宇宙、音乐、文章与常见网页,保留可编辑 Markdown 和原始证据。当用户要安装、启动或配置 Pickoo,以及收藏、搜索、阅读或整理公开内容时使用。

What it loads into context

Frontmatter

108 tokens

Always available to the agent

SKILL.md

789 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. What Pickoo does
  2. Authorization boundary
  3. Start
  4. Save links

Files

  • SKILL.mdcore3,666 bytes
  • SKILL.mdcore3,666 bytes
  • SKILL.mdcore3,666 bytes
  • SKILL.mdcore3,666 bytes
  • SKILL.mdcore3,666 bytes
Read SKILL.md

# Pickoo!AI收藏夹助手

Pickoo is a complete local-first AI favorites assistant with a browser frontend, local Node.js server, shared task journal, and three bundled Agent Skills. It turns submitted public links into editable Markdown, source evidence, OCR text, timestamped transcripts, semantic chapters, and reusable ideas and content assets.

Pickoo is for anyone who collects information to remember, understand, or find inspiration. Creators are an important use case, not the product boundary.

The top-level `pickoo-your-favorites` Skill is the product entry point. The bundled `save-to-favorites`, `creator-content-ingest`, and `asset-review-agent` Skills are internal workflow components; do not present or invoke any one of them as a replacement for Pickoo.

## What Pickoo does

- Accepts complete share text or public links from Xiaohongshu, WeChat, Douyin, Bilibili, Xiaoyuzhou, music services, articles, podcasts, and general webpages.
- Routes every new collection through one duplicate-aware intake before capture, OCR, ASR, semantic organization, and evidence review.
- Preserves source text, media, timestamps, processing state, and user edits instead of replacing the source with an AI summary.
- Provides a complete local browser interface for reading, playback, search, collections, tags, likes, notes, saved images, frames, clips, quotes, viewpoints, hooks, and structures.
View the complete source on GitHub

Skills included

  • pickoo-your-favorites
  • asset-review-agent
  • creator-content-ingest
  • save-to-favorites

Repository facts

License
MIT
Created
Aug 25, 2026
Last pushed
Sep 17, 2026
Forks
4
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 7, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 133 notes
  • packaging/redskill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • packaging/redskill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • packaging/redskill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • packaging/redskill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill-source/asset-review-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 312 signals by file

packaging/redskill/SKILL.md

  • Network accessline 34
    2. In this Skill directory, install Node dependencies with `npm ci` only after approval. 3. Install Python dependencies from `skill-source/creator-content-ingest/requirements.txt` only when capture is requested and after approval. 4. Start 
  • Network accessline 35
    3. Install Python dependencies from `skill-source/creator-content-ingest/requirements.txt` only when capture is requested and after approval. 4. Start with `npm start` and open `http://127.0.0.1:4324`. 5. Let the user choose a library in se
  • Network accessline 36
    4. Start with `npm start` and open `http://127.0.0.1:4324`.

skill-source/creator-content-ingest/assets/job.example.json

  • Network accessline 5
    "source_agent": "hermes",   "input_channel": "user-direct",   "raw_input": "这篇小红书的封面和观点都值得学习 https://xhslink.cn/o/example",
  • Network accessline 6
    "input_channel": "user-direct",   "raw_input": "这篇小红书的封面和观点都值得学习 https://xhslink.cn/o/example",   "source": {
  • Network accessline 7
    "raw_input": "这篇小红书的封面和观点都值得学习 https://xhslink.cn/o/example",
  • Network accessline 8
    "source": {     "url": "https://xhslink.cn/o/example",     "local_files": [],
  • Network accessline 9
    "url": "https://xhslink.cn/o/example",

skill-source/creator-content-ingest/bin/ocr-images-darwin-arm64

  • Executable scriptline 1
    Binary executable

skill-source/creator-content-ingest/bin/ocr-images-darwin-x64

  • Executable scriptline 1
    Binary executable

skill-source/creator-content-ingest/references/asset-decomposition-system.md

  • Network accessline 41
    | Carrier | Mature basis | Reuse policy | Forbidden inference | |---|---|---|---| | Video | [PySceneDetect](https://github.com/Breakthrough/PySceneDetect) | Optional cut/transition boundary proposals. Merge with reviewed speech, on-screen t
  • Network accessline 41
    | Carrier | Mature basis | Reuse policy | Forbidden inference | |---|---|---|---| | Video | [PySceneDetect](https://github.com/Breakthrough/PySceneDetect) | Optional cut/transition boundary proposals. Merge with reviewed speech, on-screen t
  • Network accessline 42
    |---|---|---|---| | Video | [PySceneDetect](https://github.com/Breakthrough/PySceneDetect) | Optional cut/transition boundary proposals. Merge with reviewed speech, on-screen text, visible action, and result changes. | A camera cut is not a
  • Network accessline 42
    |---|---|---|---| | Video | [PySceneDetect](https://github.com/Breakthrough/PySceneDetect) | Optional cut/transition boundary proposals. Merge with reviewed speech, on-screen text, visible action, and result changes. | A camera cut is not a
  • Network accessline 43
    | Video | [PySceneDetect](https://github.com/Breakthrough/PySceneDetect) | Optional cut/transition boundary proposals. Merge with reviewed speech, on-screen text, visible action, and result changes. | A camera cut is not automatically a cha
  • Network accessline 43
    | Video | [PySceneDetect](https://github.com/Breakthrough/PySceneDetect) | Optional cut/transition boundary proposals. Merge with reviewed speech, on-screen text, visible action, and result changes. | A camera cut is not automatically a cha
  • Network accessline 44
    | Podcast / spoken audio | [pyannote.audio](https://github.com/pyannote/pyannote-audio) concepts; current Sherpa-ONNX runtime with a pyannote segmentation model | Keep the existing runtime. Reuse diarization only for “who spoke when,” attri
  • Network accessline 44
    | Podcast / spoken audio | [pyannote.audio](https://github.com/pyannote/pyannote-audio) concepts; current Sherpa-ONNX runtime with a pyannote segmentation model | Keep the existing runtime. Reuse diarization only for “who spoke when,” attri
  • Network accessline 45
    | Image post / document image | Direct image inspection plus source-authored text first; Apple Vision for the baseline page pass; [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) as a portable/layout-aware fallback | Run one bounded b
  • Network accessline 45
    | Image post / document image | Direct image inspection plus source-authored text first; Apple Vision for the baseline page pass; [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) as a portable/layout-aware fallback | Run one bounded b
  • Network accessline 46
    | Article / WeChat / web document | Platform-specific canonical capture first; [Trafilatura](https://github.com/adbar/trafilatura) as generic-web extraction fallback; [Argdown](https://github.com/argdown/argdown) relation concepts | Recover
  • Network accessline 46
    | Article / WeChat / web document | Platform-specific canonical capture first; [Trafilatura](https://github.com/adbar/trafilatura) as generic-web extraction fallback; [Argdown](https://github.com/argdown/argdown) relation concepts | Recover
  • Network accessline 47
    | Music | Verified, rights-compatible lyrics evidence for quotes; [MSAF](https://github.com/urinieto/msaf) or [All-In-One](https://github.com/mir-aidj/all-in-one) as optional structure enhancement | Scan short exact lyric lines for quote va
  • Network accessline 47
    | Music | Verified, rights-compatible lyrics evidence for quotes; [MSAF](https://github.com/urinieto/msaf) or [All-In-One](https://github.com/mir-aidj/all-in-one) as optional structure enhancement | Scan short exact lyric lines for quote va

skill-source/creator-content-ingest/references/content-deconstruction-framework.md

  • Network accessline 7
    - [BrowserAct YouTube transcript analysis](https://github.com/browser-act/skills/blob/main/solutions/video-platforms/youtube-transcript-analysis-api-skill/SKILL.md) separates structure/hook, core message, evidence/credibility, and business/
  • Network accessline 7
    - [BrowserAct YouTube transcript analysis](https://github.com/browser-act/skills/blob/main/solutions/video-platforms/youtube-transcript-analysis-api-skill/SKILL.md) separates structure/hook, core message, evidence/credibility, and business/
  • Network accessline 8
    - [Storytelling Skills](https://github.com/yaxeen/storytelling-skills) treats a hook as a curiosity/tension contract that must be paid off, and long-form structure as a chain of opened and closed loops. Adopt promise-to-payoff tracing; trea
  • Network accessline 8
    - [Storytelling Skills](https://github.com/yaxeen/storytelling-skills) treats a hook as a curiosity/tension contract that must be paid off, and long-form structure as a chain of opened and closed loops. Adopt promise-to-payoff tracing; trea
  • Network accessline 9
    - [Viral Reverse-Engineering](https://github.com/social-media-skills/skills/tree/main/skills/viral-reverse-engineering) distinguishes surface, retention structure, emotional/share driver, and distribution confounds. Its counterfactual test—
  • Network accessline 9
    - [Viral Reverse-Engineering](https://github.com/social-media-skills/skills/tree/main/skills/viral-reverse-engineering) distinguishes surface, retention structure, emotional/share driver, and distribution confounds. Its counterfactual test—

skill-source/creator-content-ingest/references/job-contract.md

  • Network accessline 14
    "raw_input": "the user's exact share message",   "source": {     "url": "https://...",
  • Network accessline 15
    "source": {     "url": "https://...",     "local_files": [],
  • Network accessline 16
    "url": "https://...",

skill-source/creator-content-ingest/references/obsidian-contract.md

  • Network accessline 120
    "mode": "full",   "content_form": "image_post",   "source": {"canonical_url": "https://...", "stable_id": "abc123"},
  • Network accessline 121
    "content_form": "image_post",   "source": {"canonical_url": "https://...", "stable_id": "abc123"},   "artifacts": [],
  • Network accessline 122
    "source": {"canonical_url": "https://...", "stable_id": "abc123"},

skill-source/creator-content-ingest/references/source-assets.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",

skill-source/creator-content-ingest/scripts/apply_image_fidelity_review.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/asr_lexicon.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/browser_comment_adapters.mjs

  • Executable scriptline 1
    Executable file

skill-source/creator-content-ingest/scripts/capture_publisher_transcript.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 64
    manifest = json.loads(manifest_path.read_text("utf-8"))     fetched = subprocess.run(         ["curl", "-sSL", "--fail", args.url], check=True, text=True, capture_output=True,
  • Network accessline 65
    fetched = subprocess.run(         ["curl", "-sSL", "--fail", args.url], check=True, text=True, capture_output=True,     ).stdout

skill-source/creator-content-ingest/scripts/capture_source.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 55
    [Credential-related source omitted]
  • Network accessline 546
    )))         candidates.extend([             f"https://www.xiaohongshu.com/explore/{note_id}",
  • Network accessline 547
    candidates.extend([             f"https://www.xiaohongshu.com/explore/{note_id}",             f"https://www.xiaohongshu.com/discovery/item/{note_id}",
  • Network accessline 548
    f"https://www.xiaohongshu.com/explore/{note_id}",
  • Network accessline 549
    f"https://www.xiaohongshu.com/discovery/item/{note_id}",
  • Access to secretsline 560
    [Credential-related source omitted]
  • Network accessline 639
    ), reverse=True)     is_video = note.get("type") == "video" or bool(candidates)     canonical = f"https://www.xiaohongshu.com/discovery/item/{note_id}"
  • Network accessline 640
    is_video = note.get("type") == "video" or bool(candidates)     canonical = f"https://www.xiaohongshu.com/discovery/item/{note_id}"     interact = note.get("interactInfo") or {}
  • Network accessline 641
    canonical = f"https://www.xiaohongshu.com/discovery/item/{note_id}"
  • Access to secretsline 702
    [Credential-related source omitted]
  • Network accessline 715
    resolved = source_url     if not re.search(r"/(?:note|video)/\d+", urlparse(source_url).path):         resolver = requests.Session()
  • Network accessline 716
    if not re.search(r"/(?:note|video)/\d+", urlparse(source_url).path):         resolver = requests.Session()         resolved = resolver.get(source_url, headers=HEADERS, timeout=30, allow_redirects=True).url
  • Network accessline 717
    resolver = requests.Session()
  • Network accessline 744
    response = request(         session,         f"https://api.bilibili.com/x/web-interface/view?{key}={value}",
  • Network accessline 745
    session,         f"https://api.bilibili.com/x/web-interface/view?{key}={value}",         referer=referer,
  • Network accessline 746
    f"https://api.bilibili.com/x/web-interface/view?{key}={value}",
  • Network accessline 766
    response = request(             session,             f"https://api.bilibili.com/x/tag/archive/tags?{key}={value}",
  • Network accessline 767
    session,             f"https://api.bilibili.com/x/tag/archive/tags?{key}={value}",             referer=referer,
  • Network accessline 768
    f"https://api.bilibili.com/x/tag/archive/tags?{key}={value}",
  • Network accessline 792
    try:         response = session.get(             f"https://api.bilibili.com/x/v2/reply/main?type=1&oid={aid}&mode=3&next=0&ps=20",
  • Network accessline 793
    response = session.get(             f"https://api.bilibili.com/x/v2/reply/main?type=1&oid={aid}&mode=3&next=0&ps=20",             headers={"User-Agent": "Mozilla/5.0", "Referer": referer, "Accept-Language": HEADERS["Accept-Language"]},
  • Network accessline 794
    f"https://api.bilibili.com/x/v2/reply/main?type=1&oid={aid}&mode=3&next=0&ps=20",
  • Network accessline 868
    webpage = str(info.get("webpage_url") or source_url)         key, stable_id = bilibili_content_key(webpage, source_url)     canonical = f"https://www.bilibili.com/video/{stable_id if key == 'bvid' else f'av{stable_id}'}"
  • Network accessline 869
    key, stable_id = bilibili_content_key(webpage, source_url)     canonical = f"https://www.bilibili.com/video/{stable_id if key == 'bvid' else f'av{stable_id}'}"     public = bilibili_public_video_metadata(session, key, stable_id, canonical)
  • Network accessline 870
    canonical = f"https://www.bilibili.com/video/{stable_id if key == 'bvid' else f'av{stable_id}'}"
  • Possible obfuscationline 1119
    r"^(?:(\d{1,2})(?:[<U+FE0F>⃣①-⑳❶-❿]+|[.、.||]\s*|\s+))(.+)$",
  • Network accessline 1297
    body = shownote_markdown or description     shownote_times = xiaoyuzhou_shownote_times(body)     canonical = f"https://www.xiaoyuzhoufm.com/episode/{episode_id}"
  • Network accessline 1298
    shownote_times = xiaoyuzhou_shownote_times(body)     canonical = f"https://www.xiaoyuzhoufm.com/episode/{episode_id}"     images = []
  • Network accessline 1299
    canonical = f"https://www.xiaoyuzhoufm.com/episode/{episode_id}"
  • Access to secretsline 2301
    [Credential-related source omitted]
  • Network accessline 2722
    def main() -> int:     args = parse_args()     session = requests.Session()
  • Network accessline 2723
    args = parse_args()     session = requests.Session()     try:
  • Network accessline 2724
    session = requests.Session()
  • Access to secretsline 2726
    [Credential-related source omitted]

skill-source/creator-content-ingest/scripts/capture_xhs_collection.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 33
    def fetch(url: str, timeout: float) -> tuple[str, str, int]:
  • Network accessline 35
    headers = {"User-Agent": MOBILE_UA, "Accept": "text/html,application/xhtml+xml", "Accept-Language": "zh-CN,zh;q=0.9"}     for _ in range(4):         response = requests.get(current, headers=headers, timeout=timeout, allow_redirects=False, s
  • Network accessline 36
    for _ in range(4):         response = requests.get(current, headers=headers, timeout=timeout, allow_redirects=False, stream=True)         if 300 <= response.status_code < 400:
  • Network accessline 37
    response = requests.get(current, headers=headers, timeout=timeout, allow_redirects=False, stream=True)
  • Network accessline 99
    params = {"board_id": board_id}     signed = client.sign_headers_get(uri=path, cookies=cookies, params=params)     response = requests.get(
  • Network accessline 100
    signed = client.sign_headers_get(uri=path, cookies=cookies, params=params)     response = requests.get(         "https://edith.xiaohongshu.com" + path,
  • Network accessline 101
    response = requests.get(
  • Network accessline 102
    "https://edith.xiaohongshu.com" + path,
  • Network accessline 105
    "User-Agent": MOBILE_UA,             "Accept": "application/json, text/plain, */*",             "Origin": "https://www.xiaohongshu.com",
  • Network accessline 106
    "Accept": "application/json, text/plain, */*",             "Origin": "https://www.xiaohongshu.com",             "Referer": board_url,
  • Network accessline 107
    "Origin": "https://www.xiaohongshu.com",
  • Network accessline 165
    "position": len(items) + 1,             "note_id": note_id,             "canonical_url": f"https://www.xiaohongshu.com/discovery/item/{note_id}",
  • Network accessline 166
    "note_id": note_id,             "canonical_url": f"https://www.xiaohongshu.com/discovery/item/{note_id}",             "acquisition_url": f"https://www.xiaohongshu.com/explore/{note_id}{query}",
  • Network accessline 167
    "canonical_url": f"https://www.xiaohongshu.com/discovery/item/{note_id}",
  • Network accessline 168
    "acquisition_url": f"https://www.xiaohongshu.com/explore/{note_id}{query}",
  • Network accessline 181
    "status": "complete" if complete else "partial",         "capture": {"method": enumeration_method, "authenticated": False, "browser_profile_used": False, "account_session_used": False, "retrieved_at": datetime.now().astimezone().isoformat(t
  • Network accessline 182
    "capture": {"method": enumeration_method, "authenticated": False, "browser_profile_used": False, "account_session_used": False, "retrieved_at": datetime.now().astimezone().isoformat(timespec="seconds"), "elapsed_seconds": round(elapsed, 3),
  • Network accessline 183
    "collection": {"platform": "xhs", "board_id": board_id, "canonical_url": f"https://www.xiaohongshu.com/board/{board_id}", "title": text(info, "name", "title", "boardName"), "declared_count": declared},
  • Network accessline 194
    started = time.perf_counter()     try:         page, resolved, size = fetch(args.url, args.timeout)
  • Network accessline 195
    try:         page, resolved, size = fetch(args.url, args.timeout)         state = initial_state(page)
  • Network accessline 196
    page, resolved, size = fetch(args.url, args.timeout)

skill-source/creator-content-ingest/scripts/capture_xhs_collection_item.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 35
    def fetch_public_html(source_url: str, timeout: float) -> tuple[str, str, int]:     response = requests.get(
  • Network accessline 36
    response = requests.get(
  • Network accessline 226
    package = args.output_root.expanduser().resolve() / f"S-xhs-{note_id}"         package.mkdir(parents=True, exist_ok=True)         session = requests.Session()
  • Network accessline 227
    package.mkdir(parents=True, exist_ok=True)         session = requests.Session()         cover, cover_error = download_cover(session, item, package, resolved)
  • Network accessline 228
    session = requests.Session()
  • Network accessline 229
    cover, cover_error = download_cover(session, item, package, resolved)         canonical = f"https://www.xiaohongshu.com/discovery/item/{note_id}"         title = str(item.get("displayTitle") or item.get("title") or note_id).strip()
  • Network accessline 230
    canonical = f"https://www.xiaohongshu.com/discovery/item/{note_id}"

skill-source/creator-content-ingest/scripts/comment_selection.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/content_job.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/douyin_web_capture.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 268
    "content_form": content_form,         "stable_id": aweme_id,         "canonical_url": f"https://www.douyin.com/{route}/{aweme_id}",
  • Network accessline 269
    "stable_id": aweme_id,         "canonical_url": f"https://www.douyin.com/{route}/{aweme_id}",         "resolved_url_redacted": f"https://www.douyin.com/{route}/{aweme_id}",
  • Network accessline 270
    "canonical_url": f"https://www.douyin.com/{route}/{aweme_id}",
  • Network accessline 271
    "resolved_url_redacted": f"https://www.douyin.com/{route}/{aweme_id}",
  • Network accessline 299
    def capture_video_note(aweme_id: str, _browser: str = "chrome", mode: str = "full", acquisition_url: str | None = None) -> dict[str, Any]:     canonical_url = f"https://www.douyin.com/video/{aweme_id}"
  • Network accessline 300
    canonical_url = f"https://www.douyin.com/video/{aweme_id}"
  • Network accessline 360
    "content_form": "video",         "stable_id": aweme_id,         "canonical_url": f"https://www.douyin.com/video/{aweme_id}",
  • Network accessline 361
    "stable_id": aweme_id,         "canonical_url": f"https://www.douyin.com/video/{aweme_id}",         "resolved_url_redacted": f"https://www.douyin.com/video/{aweme_id}",
  • Network accessline 362
    "canonical_url": f"https://www.douyin.com/video/{aweme_id}",
  • Network accessline 363
    "resolved_url_redacted": f"https://www.douyin.com/video/{aweme_id}",
  • Network accessline 496
    def capture_image_note(aweme_id: str, _browser: str = "chrome", mode: str = "full", acquisition_url: str | None = None) -> dict[str, Any]:     canonical_url = f"https://www.douyin.com/note/{aweme_id}"
  • Network accessline 497
    canonical_url = f"https://www.douyin.com/note/{aweme_id}"
  • Network accessline 498
    value = _snapshot(         acquisition_url or canonical_url,         fallback_urls=[canonical_url, f"https://www.iesdouyin.com/share/slides/{aweme_id}/"],
  • Network accessline 499
    acquisition_url or canonical_url,         fallback_urls=[canonical_url, f"https://www.iesdouyin.com/share/slides/{aweme_id}/"],         image_note=True,
  • Network accessline 500
    fallback_urls=[canonical_url, f"https://www.iesdouyin.com/share/slides/{aweme_id}/"],
  • Network accessline 554
    "content_form": "image_post",         "stable_id": aweme_id,         "canonical_url": f"https://www.douyin.com/note/{aweme_id}",
  • Network accessline 555
    "stable_id": aweme_id,         "canonical_url": f"https://www.douyin.com/note/{aweme_id}",         "resolved_url_redacted": f"https://www.douyin.com/note/{aweme_id}",
  • Network accessline 556
    "canonical_url": f"https://www.douyin.com/note/{aweme_id}",
  • Network accessline 557
    "resolved_url_redacted": f"https://www.douyin.com/note/{aweme_id}",

skill-source/creator-content-ingest/scripts/finalize_archive.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/finalize_comments.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/finalize_settled_assets.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/finalize_transcript.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/gate_ledger.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/manifest_changes.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/merge_comments.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 19
    [Credential-related source omitted]

skill-source/creator-content-ingest/scripts/ocr_images.swift

  • Executable scriptline 1
    #!/usr/bin/env swift

skill-source/creator-content-ingest/scripts/ocr_organization.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/ocr_runtime.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 198
    [Credential-related source omitted]
  • Access to secretsline 228
    [Credential-related source omitted]

skill-source/creator-content-ingest/scripts/package_document.py

  • Executable scriptline 1
    Executable file

skill-source/creator-content-ingest/scripts/plan_transcript_issues.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/public_page_snapshot.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Dangerous shell operationline 3
    import { mkdtemp, readFile, rm } from "node:fs/promises";
  • Network accessline 67
    "--remote-debugging-port=0",   `--user-data-dir=${profile}`,   ...(crawlerUa ? ["--user-agent=Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"] : []),
  • Network accessline 68
    `--user-data-dir=${profile}`,   ...(crawlerUa ? ["--user-agent=Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"] : []),   "about:blank",
  • Network accessline 69
    ...(crawlerUa ? ["--user-agent=Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"] : []),
  • Network accessline 145
    const { port } = await debuggingPort();   const tab = await withTimeout(     fetch(`http://127.0.0.1:${port}/json/new?${encodeURIComponent("about:blank")}`, { method: "PUT" }).then((response) => response.json()),
  • Network accessline 146
    const tab = await withTimeout(     fetch(`http://127.0.0.1:${port}/json/new?${encodeURIComponent("about:blank")}`, { method: "PUT" }).then((response) => response.json()),     10_000,
  • Network accessline 147
    fetch(`http://127.0.0.1:${port}/json/new?${encodeURIComponent("about:blank")}`, { method: "PUT" }).then((response) => response.json()),

skill-source/creator-content-ingest/scripts/record_transcript_range_review.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/refresh_comments.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 48
    return deferred_comment_result(preliminary)         route = "note" if source.get("content_form") == "image_post" else "video"         snapshot = douyin_snapshot(f"https://www.douyin.com/{route}/{stable_id}")
  • Network accessline 49
    route = "note" if source.get("content_form") == "image_post" else "video"         snapshot = douyin_snapshot(f"https://www.douyin.com/{route}/{stable_id}")         page_html = str(snapshot.get("html") or "")
  • Network accessline 50
    snapshot = douyin_snapshot(f"https://www.douyin.com/{route}/{stable_id}")
  • Network accessline 58
    return deferred_comment_result(decision)         return douyin_public_comments(page_html, "full" if force else mode, {} if force else metrics)     session = requests.Session()
  • Network accessline 59
    return douyin_public_comments(page_html, "full" if force else mode, {} if force else metrics)     session = requests.Session()     if platform == "bilibili":
  • Network accessline 60
    session = requests.Session()

skill-source/creator-content-ingest/scripts/refresh_xiaoyuzhou_shownotes.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 193
    path.parent for path in args.library_root.expanduser().resolve().glob("S-xiaoyuzhou-*/manifest.json")     ]     session = requests.Session()
  • Network accessline 194
    ]     session = requests.Session()     session.headers.update(HEADERS)
  • Network accessline 195
    session = requests.Session()

skill-source/creator-content-ingest/scripts/resource_guard.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/settle_xhs_public_comments.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/social_author_tags.py

  • Executable scriptline 1
    Executable file

skill-source/creator-content-ingest/scripts/targeted_image_ocr.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/title_normalization.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/transcribe_package.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 147
    [Credential-related source omitted]
  • Access to secretsline 150
    [Credential-related source omitted]

skill-source/creator-content-ingest/scripts/validate_package.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/validate_social_analysis.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/validate_source_assets.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/scripts/vendor/LICENSE-APACHE-2.0.txt

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

skill-source/creator-content-ingest/scripts/vendor/NOTICE.md

  • Network accessline 6
    - Source: https://github.com/jiji262/douyin-downloader
  • Network accessline 7
    - Upstream implementation: https://github.com/Johnserf-Seed/f2

skill-source/creator-content-ingest/scripts/vendor/__init__.py

  • Executable scriptline 1
    Executable file

skill-source/creator-content-ingest/scripts/vendor/douyin_abogus.py

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    @version    :0.0.3 @License    :Apache License 2.0 @Github     :https://github.com/johnserf-seed
  • Network accessline 10
    @License    :Apache License 2.0 @Github     :https://github.com/johnserf-seed @Mail       :support@f2.wiki
  • Network accessline 11
    @Github     :https://github.com/johnserf-seed
  • Network accessline 843
    url = "https://www.douyin.com/aweme/v1/web/aweme/detail/?"
  • Network accessline 849
    url = "https://www.douyin.com/aweme/v2/web/aweme/stats/?"

skill-source/creator-content-ingest/scripts/xhs_collection_login_bridge.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 33
    const match = url.pathname.match(/^\/board\/([a-z0-9_-]+)\/?$/iu);   if (!match) throw new Error("bridge accepts only /board/{id}; note detail URLs are forbidden");   return { boardId: match[1], url: `https://www.xiaohongshu.com/board/${mat
  • Network accessline 34
    if (!match) throw new Error("bridge accepts only /board/{id}; note detail URLs are forbidden");   return { boardId: match[1], url: `https://www.xiaohongshu.com/board/${match[1]}` }; }
  • Network accessline 35
    return { boardId: match[1], url: `https://www.xiaohongshu.com/board/${match[1]}` };
  • Network accessline 172
    [Credential-related source omitted]
  • Network accessline 173
    [Credential-related source omitted]
  • Network accessline 174
    [Credential-related source omitted]
  • Network accessline 243
    [Credential-related source omitted]
  • Network accessline 244
    [Credential-related source omitted]
  • Network accessline 245
    [Credential-related source omitted]

skill-source/creator-content-ingest/tests/test_bounded_transcript_review.py

  • Executable scriptline 1
    Executable file

skill-source/creator-content-ingest/tests/test_capture_strategy.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 80
    response.iter_content.return_value = [b"a" * 600, b"b" * 424]         with tempfile.TemporaryDirectory() as temp, mock.patch.object(MODULE, "request", return_value=response) as request:             path, returned = MODULE.download(mock.Mock
  • Network accessline 81
    with tempfile.TemporaryDirectory() as temp, mock.patch.object(MODULE, "request", return_value=response) as request:             path, returned = MODULE.download(mock.Mock(), "https://media.example/test", Path(temp) / "source", referer="http
  • Network accessline 82
    path, returned = MODULE.download(mock.Mock(), "https://media.example/test", Path(temp) / "source", referer="https://example.com")
  • Network accessline 83
    self.assertEqual(path.stat().st_size, 1024)         self.assertEqual(returned, response)         request.assert_called_once_with(mock.ANY, "https://media.example/test", referer="https://example.com", stream=True)
  • Network accessline 84
    self.assertEqual(returned, response)         request.assert_called_once_with(mock.ANY, "https://media.example/test", referer="https://example.com", stream=True)         response.close.assert_called_once()
  • Network accessline 85
    request.assert_called_once_with(mock.ANY, "https://media.example/test", referer="https://example.com", stream=True)
  • Network accessline 93
    root = Path(temp)             with self.assertRaisesRegex(ValueError, "safety limit"):                 MODULE.download(mock.Mock(), "https://media.example/test", root / "source", referer="https://example.com", max_bytes=1000)
  • Network accessline 94
    with self.assertRaisesRegex(ValueError, "safety limit"):                 MODULE.download(mock.Mock(), "https://media.example/test", root / "source", referer="https://example.com", max_bytes=1000)             self.assertEqual(list(root.iterd
  • Network accessline 95
    MODULE.download(mock.Mock(), "https://media.example/test", root / "source", referer="https://example.com", max_bytes=1000)

skill-source/creator-content-ingest/tests/test_comment_login_guard.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/tests/test_comment_selection.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/tests/test_gate_ledger.py

  • Executable scriptline 1
    Executable file
  • Network accessline 39
    "mode": "full",             "content_form": "video",             "source": {"platform": "xhs", "stable_id": "example", "canonical_url": "https://example.com/note"},
  • Network accessline 40
    "content_form": "video",             "source": {"platform": "xhs", "stable_id": "example", "canonical_url": "https://example.com/note"},             "document": {"path": DOCUMENT_NAME, "naming_version": 4},
  • Network accessline 41
    "source": {"platform": "xhs", "stable_id": "example", "canonical_url": "https://example.com/note"},

skill-source/creator-content-ingest/tests/test_image_fidelity_review.py

  • Executable scriptline 1
    Executable file

skill-source/creator-content-ingest/tests/test_plan_transcript_issues.py

  • Executable scriptline 1
    Executable file

skill-source/creator-content-ingest/tests/test_transcribe_qa.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/creator-content-ingest/tests/test_transcript_range_review.py

  • Executable scriptline 1
    Executable file

skill-source/creator-content-ingest/tests/test_validate_source_assets.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/references/library-contract.md

  • Network accessline 16
    collection: AI 实践与学习 navigation_tags: [AI工具与教程, Agent] source_url: https://...
  • Network accessline 17
    navigation_tags: [AI工具与教程, Agent] source_url: https://... platform: xhs
  • Network accessline 18
    source_url: https://...
  • Access to secretsline 99
    [Credential-related source omitted]

skill-source/save-to-favorites/references/netease-music.md

  • Network accessline 5
    - `https://163cn.tv/...` public share redirects.
  • Network accessline 6
    - `https://music.163.com/song?id={song_id}` including tracking parameters.
  • Network accessline 7
    - `https://y.music.163.com/m/song?id={song_id}` mobile links.
  • Network accessline 9
    Resolve the public redirect without login or user cookies, extract the numeric song ID, and store only `https://music.163.com/song?id={song_id}` as the canonical URL. Identity token `netease:{song_id}` makes alternate links duplicates.

skill-source/save-to-favorites/scripts/apply_chapter_semantic_review.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/scripts/build_article_chapters.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/scripts/build_transcript_chapters.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/scripts/capture_netease_music.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 101
    def canonical_url(song_id: str) -> str:     return f"https://music.163.com/song?id={song_id}"
  • Network accessline 102
    return f"https://music.163.com/song?id={song_id}"
  • Network accessline 115
    def fetch_song(session: requests.Session, song_id: str) -> dict:     endpoint = "https://music.163.com/api/song/detail/"
  • Network accessline 116
    endpoint = "https://music.163.com/api/song/detail/"
  • Network accessline 168
    def fetch_lyrics(session: requests.Session, song_id: str) -> dict:     response = session.get(         "https://music.163.com/api/song/lyric",
  • Network accessline 169
    response = session.get(         "https://music.163.com/api/song/lyric",         params={"id": song_id, "lv": 1, "kv": 1, "tv": -1},
  • Network accessline 170
    "https://music.163.com/api/song/lyric",
  • Network accessline 171
    params={"id": song_id, "lv": 1, "kv": 1, "tv": -1},         headers={**HEADERS, "Referer": "https://music.163.com/"},         timeout=30,
  • Network accessline 172
    headers={**HEADERS, "Referer": "https://music.163.com/"},
  • Network accessline 364
    response = session.get(         "https://music.163.com/api/song/enhance/player/url",
  • Network accessline 365
    "https://music.163.com/api/song/enhance/player/url",
  • Network accessline 366
    params={"ids": f"[{song_id}]", "br": bitrate},         headers={**HEADERS, "Referer": "https://music.163.com/"},         timeout=30,
  • Network accessline 367
    headers={**HEADERS, "Referer": "https://music.163.com/"},
  • Network accessline 376
    with session.get(         source_url,         headers={**HEADERS, "Referer": "https://music.163.com/"},
  • Network accessline 377
    source_url,         headers={**HEADERS, "Referer": "https://music.163.com/"},         timeout=(20, 90),
  • Network accessline 378
    headers={**HEADERS, "Referer": "https://music.163.com/"},
  • Network accessline 391
    endpoint = f"https://music.163.com/song/media/outer/url?id={song_id}.mp3"
  • Network accessline 392
    with session.get(         endpoint,         headers={**HEADERS, "Referer": "https://music.163.com/"},
  • Network accessline 393
    endpoint,         headers={**HEADERS, "Referer": "https://music.163.com/"},         timeout=(20, 90),
  • Network accessline 394
    headers={**HEADERS, "Referer": "https://music.163.com/"},
  • Network accessline 649
    return 2     try:         session = requests.Session()
  • Network accessline 650
    try:         session = requests.Session()         cookie, bitrate = runtime_netease_session()
  • Network accessline 651
    session = requests.Session()

skill-source/save-to-favorites/scripts/chapter_title_audit.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/scripts/diarize_package.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/scripts/install_speaker_runtime.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 15
    archive_path="$runtime_root/sherpa-onnx-pyannote-segmentation-3-0.tar.bz2" if [[ ! -f "$segmentation_path/model.onnx" ]]; then   curl -L --fail --retry 3 -o "$archive_path" \
  • Network accessline 16
    if [[ ! -f "$segmentation_path/model.onnx" ]]; then   curl -L --fail --retry 3 -o "$archive_path" \     "https://github.com/k2-fsa/sherpa-onnx/releases/download/speaker-segmentation-models/sherpa-onnx-pyannote-segmentation-3-0.tar.bz2"
  • Network accessline 17
    curl -L --fail --retry 3 -o "$archive_path" \
  • Network accessline 18
    "https://github.com/k2-fsa/sherpa-onnx/releases/download/speaker-segmentation-models/sherpa-onnx-pyannote-segmentation-3-0.tar.bz2"
  • Network accessline 22
    if [[ ! -f "$models_path/$embedding_name" ]]; then   curl -L --fail --retry 3 -o "$models_path/$embedding_name" \
  • Network accessline 23
    curl -L --fail --retry 3 -o "$models_path/$embedding_name" \
  • Network accessline 24
    "https://github.com/k2-fsa/sherpa-onnx/releases/download/speaker-recongition-models/$embedding_name"

skill-source/save-to-favorites/scripts/migrate_shownote_chapter_titles.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/scripts/plan_asset_batch.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/scripts/prepare_asset_review.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/scripts/prepare_chapter_semantic_review.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/scripts/restore_asset_snapshot.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skill-source/save-to-favorites/scripts/save_link.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 67
    DOUYIN_LIVE_PHOTO_MIGRATION = "douyin-live-photo-motion-v1" RUNTIME_SETTINGS_FILE = Path(os.getenv("PICKOO_SETTINGS_FILE") or os.getenv("PICKOO_FAVORITES_SETTINGS") or Path.home() / ".config/pickoo/settings.json") DEFAULT_PICKOO_URL = "http
  • Network accessline 68
    RUNTIME_SETTINGS_FILE = Path(os.getenv("PICKOO_SETTINGS_FILE") or os.getenv("PICKOO_FAVORITES_SETTINGS") or Path.home() / ".config/pickoo/settings.json") DEFAULT_PICKOO_URL = "http://127.0.0.1:4324" DEFAULT_SHARED_WAIT_SECONDS = 3_600
  • Network accessline 69
    DEFAULT_PICKOO_URL = "http://127.0.0.1:4324"
  • Access to secretsline 77
    [Credential-related source omitted]
  • Network accessline 166
    def canonical_netease_url(song_id: str) -> str:     return f"https://music.163.com/song?id={song_id}"
  • Network accessline 167
    return f"https://music.163.com/song?id={song_id}"
  • Network accessline 180
    if host in DOUYIN_SHORT_HOSTS:         try:             response = requests.get(
  • Network accessline 181
    try:             response = requests.get(                 value.strip(),
  • Network accessline 182
    response = requests.get(
  • Network accessline 190
    return value.strip()         match = re.search(r"/(video|note)/(\d{16,22})(?:/|$)", urlsplit(response.url).path)         return f"https://www.douyin.com/{match.group(1)}/{match.group(2)}" if match else value.strip()
  • Network accessline 191
    match = re.search(r"/(video|note)/(\d{16,22})(?:/|$)", urlsplit(response.url).path)         return f"https://www.douyin.com/{match.group(1)}/{match.group(2)}" if match else value.strip()     if host != "163cn.tv":
  • Network accessline 192
    return f"https://www.douyin.com/{match.group(1)}/{match.group(2)}" if match else value.strip()
  • Network accessline 194
    return value.strip()     try:         response = requests.get(
  • Network accessline 195
    try:         response = requests.get(             value.strip(), headers={"User-Agent": "Mozilla/5.0", "Accept-Language": "zh-CN,zh;q=0.9"},
  • Network accessline 196
    response = requests.get(
  • Network accessline 262
    note_id = xhs_note_id(candidate)             if note_id and has_xhs_detail_context(candidate):                 redacted = redacted.replace(candidate, f"https://www.xiaohongshu.com/explore/{note_id}")
  • Network accessline 263
    if note_id and has_xhs_detail_context(candidate):                 redacted = redacted.replace(candidate, f"https://www.xiaohongshu.com/explore/{note_id}")         return redacted
  • Network accessline 264
    redacted = redacted.replace(candidate, f"https://www.xiaohongshu.com/explore/{note_id}")
  • Network accessline 281
    match = re.fullmatch(r"/board/([A-Za-z0-9_-]+)/*", parsed.path)         if match:             return f"https://www.xiaohongshu.com/board/{match.group(1)}"
  • Network accessline 282
    if match:             return f"https://www.xiaohongshu.com/board/{match.group(1)}"     return None
  • Network accessline 283
    return f"https://www.xiaohongshu.com/board/{match.group(1)}"
  • Access to secretsline 317
    [Credential-related source omitted]
  • Access to secretsline 3595
    [Credential-related source omitted]
  • Access to secretsline 3619
    [Credential-related source omitted]
  • Access to secretsline 3656
    [Credential-related source omitted]
  • Access to secretsline 3843
    [Credential-related source omitted]
  • Access to secretsline 3844
    [Credential-related source omitted]
  • Access to secretsline 3845
    [Credential-related source omitted]
  • Access to secretsline 3846
    [Credential-related source omitted]
  • Network accessline 3917
    response = requests.post(f"{server_url}/api/import", json=payload, timeout=(5, 55))
  • Network accessline 3970
    for start in range(0, len(job_ids), 40):                 wanted = job_ids[start:start + 40]                 status_response = requests.get(
  • Network accessline 3971
    wanted = job_ids[start:start + 40]                 status_response = requests.get(                     f"{server_url}/api/jobs",
  • Network accessline 3972
    status_response = requests.get(
  • Network accessline 4119
    stable_id,         mode="capture",         acquisition_url=str(source.get("canonical_url") or f"https://www.douyin.com/note/{stable_id}"),
  • Network accessline 4120
    mode="capture",         acquisition_url=str(source.get("canonical_url") or f"https://www.douyin.com/note/{stable_id}"),     )
  • Network accessline 4121
    acquisition_url=str(source.get("canonical_url") or f"https://www.douyin.com/note/{stable_id}"),
  • Network accessline 4143
    staging_dir = package / "evidence/media" / f".douyin-live-photo-repair-{uuid.uuid4().hex[:10]}"     try:         session = requests.Session()
  • Network accessline 4144
    try:         session = requests.Session()         for position, item in sorted(discovered.items()):
  • Network accessline 4145
    session = requests.Session()

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 16 facts
Signal confidence: 305 facts

and 255 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md packaging/redskill/SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md packaging/redskill/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md packaging/redskill/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md packaging/redskill/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md packaging/redskill/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md packaging/redskill/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.