Not in the top 1,000 by GitHub stars
crazynomad/tutorial
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
01-notebooklm/.claude/skills/podcast-downloader/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
979ea386e6a3 → 979ea386e6a3
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 979ea386e6a3
No earlier version was observed for comparison.
02-podcast-downloader/artifact/podcast-downloader/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
979ea386e6a3 → 979ea386e6a3
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 979ea386e6a3
No earlier version was observed for comparison.
02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
979ea386e6a3 → 979ea386e6a3
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 979ea386e6a3
No earlier version was observed for comparison.
02-podcast-downloader/skills/pdf-to-images/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
979ea386e6a3 → 979ea386e6a3
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 979ea386e6a3
No earlier version was observed for comparison.
02-podcast-downloader/skills/podcast-downloader/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
979ea386e6a3 → 979ea386e6a3
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 979ea386e6a3
No earlier version was observed for comparison.
02-podcast-downloader/skills/youtube-downloader/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
979ea386e6a3 → 979ea386e6a3
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 979ea386e6a3
No earlier version was observed for comparison.
10-ai-ppt-skills/skills/ppt-classify/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
979ea386e6a3 → 979ea386e6a3
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 979ea386e6a3
No earlier version was observed for comparison.
10-ai-ppt-skills/skills/ppt-narrative-review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
979ea386e6a3 → 979ea386e6a3
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 979ea386e6a3
No earlier version was observed for comparison.
10-ai-ppt-skills/skills/ppt-research-setup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
979ea386e6a3 → 979ea386e6a3
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 979ea386e6a3
No earlier version was observed for comparison.
10-ai-ppt-skills/skills/visual-deck/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
979ea386e6a3 → 979ea386e6a3
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 979ea386e6a3
No earlier version was observed for comparison.
Verified commit 979ea386e6a350651d53113048b4fe15754909a3
git clone --filter=blob:none --no-checkout https://github.com/crazynomad/tutorial.git .hotskills/crazynomad-tutorial && git -C .hotskills/crazynomad-tutorial checkout --detach 979ea386e6a350651d53113048b4fe15754909a3
# Copy each selected skill directory from .hotskills/crazynomad-tutorial into .claude/skills/<skill-name>/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
30-day change not yet available: not enough history.
Individual skills in this repository
- podcast-downloader
01-notebooklm/.claude/skills/podcast-downloader - podcast-downloader
02-podcast-downloader/artifact/podcast-downloader - podcast-downloader-v2-skill
02-podcast-downloader/artifact/podcast-downloader-v2-skill - pdf-to-images
02-podcast-downloader/skills/pdf-to-images - podcast-downloader
02-podcast-downloader/skills/podcast-downloader - youtube-downloader
02-podcast-downloader/skills/youtube-downloader - ppt-classify
10-ai-ppt-skills/skills/ppt-classify - ppt-narrative-review
10-ai-ppt-skills/skills/ppt-narrative-review - ppt-research-setup
10-ai-ppt-skills/skills/ppt-research-setup - visual-deck
10-ai-ppt-skills/skills/visual-deck
How it works
podcast-downloader
When your agent uses it
Search and download podcast episodes from Apple Podcasts. Use when user wants to find podcasts, download podcast episodes, get podcast information, or mentions Apple Podcasts, iTunes, podcast search, or audio downloads.
What it loads into context
Frontmatter
65 tokensAlways available to the agent
SKILL.md
1,587 tokensWhen the skill is activated
Reference documents
8,158 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Capabilities
- Quick Start
- Workflow Examples
- Best Practices
- Command Reference
- Data Structures
- Advanced Features
- Troubleshooting
- Additional Resources
- Notes
Scripts executed separately
scripts/itunes_api.py
Files
README.mddoc6,086 bytesSKILL.mdcore6,737 bytesSKILL.mdcore6,737 bytesSKILL.mdcore6,737 bytesSKILL.mdcore6,737 bytesSKILL.mdcore6,737 bytesSKILL.mdcore6,737 bytesSKILL.mdcore6,737 bytesSKILL.mdcore6,737 bytesexamples.mddoc10,364 bytesreference.mddoc15,194 bytesscripts/itunes_api.pyruns8,646 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubpodcast-downloader
When your agent uses it
Download podcasts from Apple Podcasts (via RSS feed). Use when the user wants to download specific episodes or the latest N episodes from a podcast. Supports downloading audio files, metadata, and show notes. Triggers include "download podcast", "download episode", "get podcast audio", "download latest episodes", or when user provides an Apple Podcasts RSS feed URL.
What it loads into context
Frontmatter
79 tokensAlways available to the agent
SKILL.md
692 tokensWhen the skill is activated
Reference documents
524 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- Usage
- Output Structure
- Getting RSS Feed URL
- Common User Requests
- Error Handling
Scripts executed separately
scripts/download_podcast.py
Files
SKILL.mdcore3,008 bytesSKILL.mdcore3,008 bytesSKILL.mdcore3,008 bytesSKILL.mdcore3,008 bytesSKILL.mdcore3,008 bytesreferences/get_rss_feed.mddoc1,850 bytesscripts/download_podcast.pyruns8,039 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubWhen your agent uses it
What it loads into context
Frontmatter
0 tokensAlways available to the agent
SKILL.md
1,490 tokensWhen the skill is activated
Reference documents
10,228 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Description
- When to Use
- Features
- Usage
- Dependencies
- Output Structure
- Claude Integration
- How It Works
- Limitations
- Common Issues
- Example Conversation
- Version History
- References
- License
Scripts executed separately
scripts/download_podcast.py
Files
SKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesreferences/api_reference.mddoc14,294 bytesreferences/technical_details.mddoc13,929 bytesreferences/usage_guide.mddoc9,151 bytesscripts/download_podcast.pyruns12,383 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubWhen your agent uses it
What it loads into context
Frontmatter
0 tokensAlways available to the agent
SKILL.md
1,194 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Description
- When to Use
- Features
- Usage
- Dependencies
- Output Structure
- Claude Integration
- How It Works
- Limitations
- Common Issues
- Example Conversation
- Version History
- License
Scripts executed separately
scripts/pdf_to_images.py
Files
SKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesSKILL.mdcore4,584 bytesscripts/pdf_to_images.pyruns5,547 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubWhen your agent uses it
What it loads into context
Frontmatter
0 tokensAlways available to the agent
SKILL.md
1,490 tokensWhen the skill is activated
Reference documents
10,228 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Description
- When to Use
- Features
- Usage
- Dependencies
- Output Structure
- Claude Integration
- How It Works
- Limitations
- Common Issues
- Example Conversation
- Version History
- References
- License
Scripts executed separately
scripts/download_podcast.py
Files
SKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesSKILL.mdcore5,883 bytesreferences/api_reference.mddoc14,294 bytesreferences/technical_details.mddoc13,929 bytesreferences/usage_guide.mddoc9,151 bytesscripts/download_podcast.pyruns12,383 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubWhen your agent uses it
What it loads into context
Frontmatter
0 tokensAlways available to the agent
SKILL.md
2,067 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Description
- When to Use
- Features
- Usage
- Dependencies
- Output Structure
- Claude Integration
- Supported Platforms
- Common Issues
- Example Conversations
- How It Works
- Limitations
- Legal Notice
- Version History
- References
Scripts executed separately
scripts/download_video.py
Files
SKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesSKILL.mdcore7,906 bytesscripts/download_video.pyruns10,584 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubppt-classify
When your agent uses it
Classify a PPT brief into one of four types (Pitch / Research / Teaching / Narrative), then emit a high-level chapter skeleton for that type personalized to the topic. Different PPT types need different立论 frameworks AND different chapter structures — a research PPT is not a pitch, a pitch is not a narrative. Use at the very start of PPT planning, BEFORE thesis setup. Pairs with ppt-research-setup / other per-type setup skills for detailed per-chapter reasoning.
What it loads into context
Frontmatter
112 tokensAlways available to the agent
SKILL.md
3,025 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 何时触发
- 核心洞察:分类 + 骨架 = Step 0
- 诊断流程
- 输出格式 · v0.2.0 新增「章节骨架建议」
- 四类型的规范骨架(reference)
- Personalize 规则
- 快速参考:四类常见场景映射
- Claude Integration
- 与下游 skill 的契约
- 设计来源
Files
SKILL.mdcore10,085 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubppt-narrative-review
When your agent uses it
Review a PPT storyline for structural fit, pacing, and key-visual anchors. Type-aware — research-driven, pitch-driven, and teaching-driven decks have different valid storyline shapes. Use after thesis is set (ppt-classify + ppt-research-setup or plan-ceo-review) and BEFORE visual-deck generation.
What it loads into context
Frontmatter
81 tokensAlways available to the agent
SKILL.md
3,485 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 何时触发
- 核心原则:Type 决定合理结构
- 评审维度
- 输出格式
- Claude Integration
- 设计来源
Files
SKILL.mdcore10,942 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubppt-research-setup
When your agent uses it
Set up a research-driven PPT thesis using a three-section framework (counter-consensus paradox / structural decomposition / investigation paths) plus a six-question specificity diagnostic. Use when the PPT type is Research — NOT Pitch. Run ppt-classify first if type is unknown.
What it loads into context
Frontmatter
70 tokensAlways available to the agent
SKILL.md
2,411 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 何时触发
- 核心原理
- 三段式详解
- Specificity 诊断(六问)
- 输出格式
- Claude Integration
- 设计来源
Files
SKILL.mdcore8,271 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubvisual-deck
When your agent uses it
Generate "image + text" style visual PPT decks (evangelism / internal sharing / client-facing) using an HTML→PPTX pipeline with safe-zone typography, Nano Banana backgrounds, and overflow-to-notes discipline. Use when the user wants a visually dense, cinematic slide deck where layout is image-driven rather than text-driven. NOT for pure data reports or text-heavy documents.
What it loads into context
Frontmatter
93 tokensAlways available to the agent
SKILL.md
3,199 tokensWhen the skill is activated
Reference documents
7,938 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 何时触发
- 三条硬约束(不可妥协)
- 完整 Pipeline
- 版式决策树(选 layout 时走这个)
- 扩展约束(给未来的自己)
- 标准执行流程
- 关键陷阱(Claude 自己最容易犯的)
- 主题系统
- 快速开始
Scripts executed separately
examples/minimal/build.jsexamples/minimal/html2pptx.jsexamples/minimal/notes-map.jsexamples/minimal/package.jsonpipeline/html2pptx.jstemplates/build.jstemplates/notes-map.jstemplates/package.jsontemplates/tools/check-overflow.jstemplates/tools/fix-html-for-pptx.jstemplates/tools/scrim-bake.js
Files
SKILL.mdcore10,298 bytesSKILL.mdcore10,298 bytesSKILL.mdcore10,298 bytesSKILL.mdcore10,298 bytesSKILL.mdcore10,298 bytesSKILL.mdcore10,298 bytesSKILL.mdcore10,298 bytesSKILL.mdcore10,298 bytesSKILL.mdcore10,298 bytesSKILL.mdcore10,298 bytesexamples/minimal/README.mddoc1,139 bytesexamples/minimal/build.jsruns1,599 bytesexamples/minimal/deck.pptxasset157,964 bytesexamples/minimal/html2pptx.jsruns37,795 bytesexamples/minimal/notes-map.jsruns488 bytesexamples/minimal/package-lock.jsonasset26,493 bytesexamples/minimal/package.jsonruns252 bytesexamples/minimal/slides/slide01.htmlasset2,084 bytesexamples/minimal/slides/slide02.htmlasset2,119 bytesexamples/minimal/slides/slide03.htmlasset1,533 bytesexamples/minimal/slides/slide04.htmlasset3,148 bytesexamples/minimal/slides/slide05.htmlasset3,130 bytesexamples/minimal/slides/slide06.htmlasset3,441 bytesexamples/minimal/slides/slide07.htmlasset3,367 bytesexamples/minimal/themes/dark-coral.cssasset2,188 bytesexamples/minimal/themes/dark-teal.cssasset1,470 bytespipeline/html2pptx.jsruns37,795 bytesreferences/html2pptx-contract.mddoc8,963 bytesreferences/image-prompts-v2.mddoc3,860 bytesreferences/nano-banana-ratios.mddoc1,810 bytesreferences/safe-zone-spec.mddoc2,593 bytesreferences/workflow-multi-skill.mddoc6,411 bytestemplates/build.jsruns3,100 bytestemplates/layouts/slide-2col.htmlasset3,148 bytestemplates/layouts/slide-3col.htmlasset3,130 bytestemplates/layouts/slide-cover.htmlasset2,904 bytestemplates/layouts/slide-l34.htmlasset2,489 bytestemplates/layouts/slide-quote.htmlasset2,215 bytestemplates/layouts/slide-r34.htmlasset2,649 bytestemplates/layouts/slide-stats.htmlasset3,367 bytestemplates/layouts/slide-timeline.htmlasset3,441 bytestemplates/notes-map.jsruns488 bytestemplates/package.jsonruns252 bytestemplates/player.htmlasset10,779 bytestemplates/themes/dark-coral.cssasset2,188 bytestemplates/themes/dark-teal.cssasset1,470 bytestemplates/tools/check-overflow.jsruns2,511 bytestemplates/tools/fix-html-for-pptx.jsruns5,520 bytestemplates/tools/scrim-bake.jsruns2,085 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills included
- podcast-downloader
- podcast-downloader
- ppt-classify
- ppt-narrative-review
- ppt-research-setup
- visual-deck
Repository facts
- License
- No license detected
- Created
- Dec 24, 2025
- Last pushed
- Jul 9, 2026
- Forks
- 62
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated 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 80 notes
01-notebooklm/.claude/skills/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed01-notebooklm/.claude/skills/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed01-notebooklm/.claude/skills/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed01-notebooklm/.claude/skills/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed01-notebooklm/.claude/skills/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed01-notebooklm/.claude/skills/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed01-notebooklm/.claude/skills/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- 1 broad permissionin 1 file: podcast-downloader/SKILL.md:1
- 3 dangerous shell commandsin 2 files: pdf-to-images/SKILL.md:76 pdf-to-images/scripts/pdf_to_images.py:67
- 590 network referencesin 24 files: visual-deck/examples/minimal/package-lock.json:16 podcast-downloader-v2-skill/references/api_reference.md:7 podcast-downloader/references/api_reference.md:7 and 21 more
- No hidden or obfuscated text
- No instruction overrides
- 17 executable scriptsin 17 files: podcast-downloader/scripts/itunes_api.py:1 podcast-downloader-v2-skill/scripts/download_podcast.py:1 podcast-downloader/scripts/download_podcast.py:1 and 14 more
- 3 references to secretsin 1 file: youtube-downloader/SKILL.md:183
- No requests to vote in Hot
Show all 614 signals by file
01-notebooklm/.claude/skills/podcast-downloader/README.md
- Network accessline 212
Based on Apple iTunes Search API: https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/
01-notebooklm/.claude/skills/podcast-downloader/SKILL.md
- Broad permissionsline 1
Bash(python3:*), Bash(curl:*), Read, Write - Network accessline 169
"artistName": "The New York Times", "trackCount": 2464, "feedUrl": "https://feeds.simplecast.com/...", - Network accessline 170
"trackCount": 2464, "feedUrl": "https://feeds.simplecast.com/...", "genres": ["Daily News", "Podcasts", "News"] - Network accessline 171
"feedUrl": "https://feeds.simplecast.com/...", - Network accessline 181
"releaseDate": "2025-12-26T10:45:00Z", "trackTimeMillis": 1247000, "episodeUrl": "https://...", - Network accessline 182
"trackTimeMillis": 1247000, "episodeUrl": "https://...", "description": "Full description...", - Network accessline 183
"episodeUrl": "https://...", - Network accessline 221
**Issue**: "curl: command not found" **Solution**: Install curl or use Python's requests library - Network accessline 222
**Solution**: Install curl or use Python's requests library
01-notebooklm/.claude/skills/podcast-downloader/examples.md
- Network accessline 376
- Total Episodes: 2464 - Genre: Daily News - RSS Feed: https://feeds.simplecast.com/Sl5CSM3S - Network accessline 377
- Genre: Daily News - RSS Feed: https://feeds.simplecast.com/Sl5CSM3S - Apple Podcasts URL: https://podcasts.apple.com/us/podcast/the-daily/id1200361736 - Network accessline 378
- RSS Feed: https://feeds.simplecast.com/Sl5CSM3S - Network accessline 379
- Apple Podcasts URL: https://podcasts.apple.com/us/podcast/the-daily/id1200361736
01-notebooklm/.claude/skills/podcast-downloader/reference.md
- Network accessline 19
https://itunes.apple.com - Network accessline 45
https://itunes.apple.com/search?term=python+programming&entity=podcast&limit=10 - Network accessline 59
"collectionName": "Talk Python To Me", "trackName": "Talk Python To Me", "feedUrl": "https://talkpython.fm/episodes/rss", - Network accessline 60
"trackName": "Talk Python To Me", "feedUrl": "https://talkpython.fm/episodes/rss", "trackCount": 445, - Network accessline 61
"feedUrl": "https://talkpython.fm/episodes/rss", - Network accessline 62
"trackCount": 445, "artworkUrl600": "https://...", "primaryGenreName": "Technology", - Network accessline 63
"artworkUrl600": "https://...", - Network accessline 91
https://itunes.apple.com/lookup?id=979020229&entity=podcastEpisode&limit=10 - Network accessline 110
"releaseDate": "2025-12-26T10:45:00Z", "trackTimeMillis": 1247000, "episodeUrl": "https://...", - Network accessline 111
"trackTimeMillis": 1247000, "episodeUrl": "https://...", "episodeFileExtension": "mp3", - Network accessline 112
"episodeUrl": "https://...", - Network accessline 165
"artistName": "Michael Kennedy", "trackCount": 445, "feedUrl": "https://talkpython.fm/episodes/rss", - Network accessline 166
"trackCount": 445, "feedUrl": "https://talkpython.fm/episodes/rss", "genres": ["Technology", "Podcasts"] - Network accessline 167
"feedUrl": "https://talkpython.fm/episodes/rss", - Network accessline 201
"releaseDate": "2025-12-26T10:45:00Z", "trackTimeMillis": 1247000, "episodeUrl": "https://...", - Network accessline 202
"trackTimeMillis": 1247000, "episodeUrl": "https://...", "collectionName": "Talk Python To Me", - Network accessline 203
"episodeUrl": "https://...", - Network accessline 540
'pub_date': item.find('pubDate').text, 'audio_url': item.find('enclosure').get('url'), 'duration': item.find('{http://www.itunes.com/dtds/podcast-1.0.dtd}duration').text - Network accessline 541
'audio_url': item.find('enclosure').get('url'), 'duration': item.find('{http://www.itunes.com/dtds/podcast-1.0.dtd}duration').text } - Network accessline 542
'duration': item.find('{http://www.itunes.com/dtds/podcast-1.0.dtd}duration').text - Network accessline 646
- Downloaded content for personal use only - Respect publisher rights and terms - See: [Apple Developer Terms](https://developer.apple.com/terms/) - Network accessline 648
- See: [Apple Developer Terms](https://developer.apple.com/terms/)
01-notebooklm/.claude/skills/podcast-downloader/scripts/itunes_api.py
02-podcast-downloader/artifact/podcast-downloader-v2-skill/SKILL.md
- Network accessline 41
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id1711052890?i=1000744375610" - Network accessline 46
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id1711052890" -n 5 - Network accessline 51
python scripts/download_podcast.py "https://podcasts.apple.com/us/podcast/id123456789" - Network accessline 144
- Query episode: `https://itunes.apple.com/lookup?id={episode_id}&entity=podcastEpisode&country={country}` - Network accessline 145
- Query list: `https://itunes.apple.com/lookup?id={podcast_id}&entity=podcastEpisode&country={country}&limit=200` - Network accessline 146
- Get RSS: `https://itunes.apple.com/lookup?id={podcast_id}&country={country}&entity=podcast` - Network accessline 168
**User**: "帮我下载这个播客的最新 3 集: https://podcasts.apple.com/cn/podcast/id1711052890" - Network accessline 178
# Download python /mnt/skills/user/podcast-downloader-v2/scripts/download_podcast.py \ "https://podcasts.apple.com/cn/podcast/id1711052890" \ - Network accessline 179
python /mnt/skills/user/podcast-downloader-v2/scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id1711052890" - Network accessline 180
"https://podcasts.apple.com/cn/podcast/id1711052890" \
02-podcast-downloader/artifact/podcast-downloader-v2-skill/references/api_reference.md
- Network accessline 7
Official Documentation: https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/ - Network accessline 12
https://itunes.apple.com/lookup - Network accessline 32
GET https://itunes.apple.com/lookup?id={episode_id}&entity=podcastEpisode&country={country} - Network accessline 37
GET https://itunes.apple.com/lookup?id=1000744375610&entity=podcastEpisode&country=cn - Network accessline 53
"collectionCensoredName": "独树不成林", "trackCensoredName": "289-我在童年如何与权威周旋?", "collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 54
"trackCensoredName": "289-我在童年如何与权威周旋?", "collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", "feedUrl": "https://feed.xyzfm.space/...", - Network accessline 55
"collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 56
"feedUrl": "https://feed.xyzfm.space/...", - Network accessline 57
"trackViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 58
"artworkUrl30": "https://is1-ssl.mzstatic.com/image/.../30x30bb.jpg", - Network accessline 59
"artworkUrl60": "https://is1-ssl.mzstatic.com/image/.../60x60bb.jpg", - Network accessline 60
"artworkUrl100": "https://is1-ssl.mzstatic.com/image/.../100x100bb.jpg", - Network accessline 75
"primaryGenreName": "Society & Culture", "contentAdvisoryRating": "Clean", "artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", - Network accessline 76
"contentAdvisoryRating": "Clean", "artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", "genreIds": ["1324", "26"], - Network accessline 77
"artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", - Network accessline 80
"episodeFileExtension": "m4a", "episodeContentType": "audio", "episodeUrl": "https://...", - Network accessline 81
"episodeContentType": "audio", "episodeUrl": "https://...", "closedCaptioning": "none", - Network accessline 82
"episodeUrl": "https://...", - Network accessline 108
GET https://itunes.apple.com/lookup?id={podcast_id}&entity=podcastEpisode&country={country}&limit={limit} - Network accessline 113
GET https://itunes.apple.com/lookup?id=1711052890&entity=podcastEpisode&country=cn&limit=200 - Network accessline 129
"collectionCensoredName": "独树不成林", "trackCensoredName": "独树不成林", "collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 130
"trackCensoredName": "独树不成林", "collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", "feedUrl": "https://feed.xyzfm.space/y9qnpfdrctnx", - Network accessline 131
"collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 132
"feedUrl": "https://feed.xyzfm.space/y9qnpfdrctnx", - Network accessline 133
"trackViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 134
"artworkUrl30": "https://is1-ssl.mzstatic.com/image/.../30x30bb.jpg", - Network accessline 135
"artworkUrl60": "https://is1-ssl.mzstatic.com/image/.../60x60bb.jpg", - Network accessline 136
"artworkUrl100": "https://is1-ssl.mzstatic.com/image/.../100x100bb.jpg", - Network accessline 146
"primaryGenreName": "Society & Culture", "contentAdvisoryRating": "Clean", "artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", - Network accessline 147
"contentAdvisoryRating": "Clean", "artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", "genreIds": ["1324", "26"], - Network accessline 148
"artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", - Network accessline 182
GET https://itunes.apple.com/lookup?id={podcast_id}&entity=podcast&country={country} - Network accessline 187
GET https://itunes.apple.com/lookup?id=1711052890&entity=podcast&country=cn - Network accessline 200
"artistName": "XYZ.FM", "collectionName": "独树不成林", "feedUrl": "https://feed.xyzfm.space/y9qnpfdrctnx", - Network accessline 201
"collectionName": "独树不成林", "feedUrl": "https://feed.xyzfm.space/y9qnpfdrctnx", "trackCount": 272, - Network accessline 202
"feedUrl": "https://feed.xyzfm.space/y9qnpfdrctnx", - Network accessline 278
| `releaseDate` | string | ISO 8601 datetime | `"2025-01-10T00:00:00Z"` | | `trackTimeMillis` | number | Duration (ms) | `2415000` (40.25 min) | | `episodeUrl` | string | Audio file URL | `"https://..."` | - Network accessline 279
| `trackTimeMillis` | number | Duration (ms) | `2415000` (40.25 min) | | `episodeUrl` | string | Audio file URL | `"https://..."` | | `episodeFileExtension` | string | File type | `"m4a"`, `"mp3"` | - Network accessline 280
| `episodeUrl` | string | Audio file URL | `"https://..."` | - Network accessline 348
response = requests.get(url) - Network accessline 359
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36' } response = requests.get(url, headers=headers) - Network accessline 361
response = requests.get(url, headers=headers) - Network accessline 425
try: response = requests.get(url, timeout=10) - Network accessline 426
response = requests.get(url, timeout=10) - Network accessline 457
def get_podcast_episodes(podcast_id, country='us', limit=10): url = f"https://itunes.apple.com/lookup" - Network accessline 458
url = f"https://itunes.apple.com/lookup" - Network accessline 469
response = requests.get(url, params=params, headers=headers) - Network accessline 487
# Get podcast with episodes curl -H "User-Agent: Mozilla/5.0" \ - Network accessline 488
curl -H "User-Agent: Mozilla/5.0" \ - Network accessline 489
"https://itunes.apple.com/lookup?id=1711052890&entity=podcastEpisode&country=cn&limit=10" - Network accessline 491
# Get specific episode curl -H "User-Agent: Mozilla/5.0" \ - Network accessline 492
curl -H "User-Agent: Mozilla/5.0" \ - Network accessline 493
"https://itunes.apple.com/lookup?id=1000744375610&entity=podcastEpisode&country=cn" - Network accessline 498
- **Official Docs**: https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/ - Network accessline 499
- **Podcast RSS Spec**: https://help.apple.com/itc/podcasts_connect/#/itcb54353390 - Network accessline 500
- **RSS 2.0 Spec**: https://www.rssboard.org/rss-specification - Network accessline 501
- **Podcast Namespace**: https://github.com/Podcastindex-org/podcast-namespace
02-podcast-downloader/artifact/podcast-downloader-v2-skill/references/technical_details.md
- Network accessline 30
https://podcasts.apple.com/cn/podcast/podcast-name/id1711052890?i=1000744375610 - Network accessline 67
GET https://itunes.apple.com/lookup - Network accessline 84
"releaseDate": "2025-01-10T00:00:00Z", "trackTimeMillis": 2415000, "episodeUrl": "https://...", - Network accessline 85
"trackTimeMillis": 2415000, "episodeUrl": "https://...", "description": "..." - Network accessline 86
"episodeUrl": "https://...", - Network accessline 108
GET https://itunes.apple.com/lookup - Network accessline 123
"collectionName": "独树不成林", "artistName": "XYZ.FM", "feedUrl": "https://feed.xyzfm.space/..." - Network accessline 124
"artistName": "XYZ.FM", "feedUrl": "https://feed.xyzfm.space/..." }, - Network accessline 125
"feedUrl": "https://feed.xyzfm.space/..." - Network accessline 161
GET https://itunes.apple.com/lookup - Network accessline 193
response = requests.get(url, stream=True, timeout=60, headers={ - Network accessline 338
try: response = requests.get(url, timeout=60) - Network accessline 339
response = requests.get(url, timeout=60) - Network accessline 347
try: response = requests.get(url) - Network accessline 348
response = requests.get(url) - Network accessline 401
https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/ - Network accessline 470
- HTTP client library - Used for API calls and audio downloads - https://docs.python-requests.org/ - Network accessline 472
- https://docs.python-requests.org/ - Network accessline 475
- RSS/Atom feed parser - Fallback for when API unavailable - https://pythonhosted.org/feedparser/ - Network accessline 477
- https://pythonhosted.org/feedparser/ - Network accessline 492
# Test URL parsing url = "https://podcasts.apple.com/cn/podcast/id123456?i=789012" - Network accessline 493
url = "https://podcasts.apple.com/cn/podcast/id123456?i=789012" - Network accessline 508
# Test with real podcast python scripts/download_podcast.py \ "https://podcasts.apple.com/us/podcast/id1200361736" \ - Network accessline 509
python scripts/download_podcast.py "https://podcasts.apple.com/us/podcast/id1200361736" - Network accessline 510
"https://podcasts.apple.com/us/podcast/id1200361736" \
02-podcast-downloader/artifact/podcast-downloader-v2-skill/references/usage_guide.md
- Network accessline 15
# Download specific episode python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/xxx/id123456?i=789012" - Network accessline 16
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/xxx/id123456?i=789012" - Network accessline 18
# Download latest 5 episodes python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id123456" -n 5 - Network accessline 19
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id123456" -n 5 - Network accessline 21
# Download to specific directory python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id123456" -n 10 -o ~/Downloads - Network accessline 22
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id123456" -n 10 -o ~/Downloads - Network accessline 32
python scripts/download_podcast.py \ "https://podcasts.apple.com/cn/podcast/独树不成林/id1711052890?i=1000744375610" - Network accessline 33
"https://podcasts.apple.com/cn/podcast/独树不成林/id1711052890?i=1000744375610" - Network accessline 68
python scripts/download_podcast.py \ "https://podcasts.apple.com/cn/podcast/id1711052890" \ - Network accessline 69
"https://podcasts.apple.com/cn/podcast/id1711052890" \ - Network accessline 86
python scripts/download_podcast.py \ "https://podcasts.apple.com/us/podcast/the-daily/id1200361736" - Network accessline 87
"https://podcasts.apple.com/us/podcast/the-daily/id1200361736" - Network accessline 96
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id123456" -n 3 - Network accessline 101
python scripts/download_podcast.py "https://podcasts.apple.com/us/podcast/id789012" -n 3 - Network accessline 106
python scripts/download_podcast.py "https://podcasts.apple.com/jp/podcast/id345678" -n 3 - Network accessline 115
- `url` (required): Apple Podcast URL - Format: `https://podcasts.apple.com/{region}/podcast/{name}/id{podcast_id}` - Network accessline 116
- Format: `https://podcasts.apple.com/{region}/podcast/{name}/id{podcast_id}` - Network accessline 173
"description": "在这期节目中...", "audio_file": "001 - 289-我在童年如何与权威周旋?.m4a", "download_url": "https://..." - Network accessline 174
"audio_file": "001 - 289-我在童年如何与权威周旋?.m4a", "download_url": "https://..." } - Network accessline 175
"download_url": "https://..." - Network accessline 186
# Download latest 10 episodes success = download_from_apple_url( apple_url="https://podcasts.apple.com/cn/podcast/id1711052890", - Network accessline 187
success = download_from_apple_url( apple_url="https://podcasts.apple.com/cn/podcast/id1711052890", output_dir="/path/to/output", - Network accessline 188
apple_url="https://podcasts.apple.com/cn/podcast/id1711052890", - Network accessline 213
# Create a file with URLs cat > podcasts.txt << EOF https://podcasts.apple.com/cn/podcast/id1711052890 - Network accessline 214
cat > podcasts.txt << EOF https://podcasts.apple.com/cn/podcast/id1711052890 https://podcasts.apple.com/us/podcast/id1200361736 - Network accessline 215
https://podcasts.apple.com/cn/podcast/id1711052890 - Network accessline 216
https://podcasts.apple.com/us/podcast/id1200361736 - Network accessline 217
https://podcasts.apple.com/jp/podcast/id123456789 - Network accessline 344
- Apple Podcasts: https://podcasts.apple.com - Network accessline 345
- iTunes Search API: https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/ - Feedparser docs: https://pythonhosted.org/feedparser/ - Requests docs: https://docs.python-requests.org/ - Network accessline 346
- Feedparser docs: https://pythonhosted.org/feedparser/ - Network accessline 347
- Requests docs: https://docs.python-requests.org/
02-podcast-downloader/artifact/podcast-downloader-v2-skill/scripts/download_podcast.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 50
api_url = f"https://itunes.apple.com/lookup?id={collection_id}&entity=podcastEpisode&country={country_code}&limit={limit}" - Network accessline 52
try: print(f"📡 正在通过 API 获取节目信息...") resp = requests.get(api_url, timeout=15, headers={ - Network accessline 53
print(f"📡 正在通过 API 获取节目信息...") resp = requests.get(api_url, timeout=15, headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36' - Network accessline 54
resp = requests.get(api_url, timeout=15, headers={ - Network accessline 81
track_url = f"https://itunes.apple.com/lookup?id={episode_id}&entity=podcastEpisode&country={country_code}" - Network accessline 83
try: resp = requests.get(track_url, timeout=10, headers={ - Network accessline 84
resp = requests.get(track_url, timeout=10, headers={ - Network accessline 102
lookup_url = f"https://itunes.apple.com/lookup?id={podcast_id}&country={country_code}&entity=podcast" - Network accessline 104
try: resp = requests.get(lookup_url, timeout=10) - Network accessline 105
resp = requests.get(lookup_url, timeout=10) - Network accessline 165
try: print(f" ⬇<U+FE0F> 正在下载: {episode_title}") response = requests.get(url, stream=True, timeout=60, headers={ - Network accessline 166
print(f" ⬇<U+FE0F> 正在下载: {episode_title}") response = requests.get(url, stream=True, timeout=60, headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36' - Network accessline 167
response = requests.get(url, stream=True, timeout=60, headers={ - Network accessline 339
%(prog)s "https://podcasts.apple.com/cn/podcast/id123456?i=789012" - Network accessline 342
%(prog)s "https://podcasts.apple.com/cn/podcast/id123456" -n 5 - Network accessline 345
%(prog)s "https://podcasts.apple.com/us/podcast/id123456" - Network accessline 348
%(prog)s "https://podcasts.apple.com/cn/podcast/id123456" -n 10 -o /path/to/output
02-podcast-downloader/artifact/podcast-downloader/SKILL.md
- Network accessline 64
**Quick method:** 1. Find the podcast in Apple Podcasts web or app 2. Copy the podcast page URL (e.g., `https://podcasts.apple.com/us/podcast/name/id1234567890`) - Network accessline 65
1. Find the podcast in Apple Podcasts web or app 2. Copy the podcast page URL (e.g., `https://podcasts.apple.com/us/podcast/name/id1234567890`) 3. Extract the ID number from the URL - Network accessline 66
2. Copy the podcast page URL (e.g., `https://podcasts.apple.com/us/podcast/name/id1234567890`) - Network accessline 67
3. Extract the ID number from the URL 4. Use Apple's lookup API: `https://podcasts.apple.com/lookup?id=1234567890&entity=podcast` 5. Find the `feedUrl` field in the JSON response - Network accessline 68
4. Use Apple's lookup API: `https://podcasts.apple.com/lookup?id=1234567890&entity=podcast`
02-podcast-downloader/artifact/podcast-downloader/references/get_rss_feed.md
- Network accessline 11
https://podcasts.apple.com/lookup?id=[PODCAST_ID]&entity=podcast - Network accessline 15
**示例:** - 播客页面: `https://podcasts.apple.com/us/podcast/corecursive/id1330329512` - Network accessline 16
- 播客页面: `https://podcasts.apple.com/us/podcast/corecursive/id1330329512` - Network accessline 17
- Podcast ID: `1330329512` - Lookup URL: `https://podcasts.apple.com/lookup?id=1330329512&entity=podcast` - 在返回的 JSON 中找到 `feedUrl` - Network accessline 18
- Lookup URL: `https://podcasts.apple.com/lookup?id=1330329512&entity=podcast`
02-podcast-downloader/artifact/podcast-downloader/scripts/download_podcast.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 82
try: response = requests.get(url, stream=True, timeout=30) - Network accessline 83
response = requests.get(url, stream=True, timeout=30) - Network accessline 195
%(prog)s "https://feeds.example.com/podcast.rss" -n 5 - Network accessline 198
%(prog)s "https://feeds.example.com/podcast.rss" -e 3 - Network accessline 201
%(prog)s "https://feeds.example.com/podcast.rss"
02-podcast-downloader/skills/pdf-to-images/SKILL.md
- Dangerous shell operationline 76
sudo apt-get install imagemagick - Network accessline 79
**Windows**: Download from https://imagemagick.org/script/download.php - Network accessline 80
Download from https://imagemagick.org/script/download.php - Dangerous shell operationline 145
sudo sed -i 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' /etc/ImageMagick-*/policy.xml
02-podcast-downloader/skills/pdf-to-images/scripts/pdf_to_images.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 66
print(" macOS: brew install imagemagick") print(" Ubuntu: sudo apt-get install imagemagick") print(" Windows: https://imagemagick.org/script/download.php") - Dangerous shell operationline 67
print(" Ubuntu: sudo apt-get install imagemagick") - Network accessline 67
print(" Ubuntu: sudo apt-get install imagemagick") print(" Windows: https://imagemagick.org/script/download.php") sys.exit(1) - Network accessline 68
print(" Windows: https://imagemagick.org/script/download.php")
02-podcast-downloader/skills/podcast-downloader/SKILL.md
- Network accessline 41
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id1711052890?i=1000744375610" - Network accessline 46
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id1711052890" -n 5 - Network accessline 51
python scripts/download_podcast.py "https://podcasts.apple.com/us/podcast/id123456789" - Network accessline 144
- Query episode: `https://itunes.apple.com/lookup?id={episode_id}&entity=podcastEpisode&country={country}` - Network accessline 145
- Query list: `https://itunes.apple.com/lookup?id={podcast_id}&entity=podcastEpisode&country={country}&limit=200` - Network accessline 146
- Get RSS: `https://itunes.apple.com/lookup?id={podcast_id}&country={country}&entity=podcast` - Network accessline 168
**User**: "帮我下载这个播客的最新 3 集: https://podcasts.apple.com/cn/podcast/id1711052890" - Network accessline 178
# Download python /mnt/skills/user/podcast-downloader-v2/scripts/download_podcast.py \ "https://podcasts.apple.com/cn/podcast/id1711052890" \ - Network accessline 179
python /mnt/skills/user/podcast-downloader-v2/scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id1711052890" - Network accessline 180
"https://podcasts.apple.com/cn/podcast/id1711052890" \
02-podcast-downloader/skills/podcast-downloader/references/api_reference.md
- Network accessline 7
Official Documentation: https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/ - Network accessline 12
https://itunes.apple.com/lookup - Network accessline 32
GET https://itunes.apple.com/lookup?id={episode_id}&entity=podcastEpisode&country={country} - Network accessline 37
GET https://itunes.apple.com/lookup?id=1000744375610&entity=podcastEpisode&country=cn - Network accessline 53
"collectionCensoredName": "独树不成林", "trackCensoredName": "289-我在童年如何与权威周旋?", "collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 54
"trackCensoredName": "289-我在童年如何与权威周旋?", "collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", "feedUrl": "https://feed.xyzfm.space/...", - Network accessline 55
"collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 56
"feedUrl": "https://feed.xyzfm.space/...", - Network accessline 57
"trackViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 58
"artworkUrl30": "https://is1-ssl.mzstatic.com/image/.../30x30bb.jpg", - Network accessline 59
"artworkUrl60": "https://is1-ssl.mzstatic.com/image/.../60x60bb.jpg", - Network accessline 60
"artworkUrl100": "https://is1-ssl.mzstatic.com/image/.../100x100bb.jpg", - Network accessline 75
"primaryGenreName": "Society & Culture", "contentAdvisoryRating": "Clean", "artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", - Network accessline 76
"contentAdvisoryRating": "Clean", "artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", "genreIds": ["1324", "26"], - Network accessline 77
"artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", - Network accessline 80
"episodeFileExtension": "m4a", "episodeContentType": "audio", "episodeUrl": "https://...", - Network accessline 81
"episodeContentType": "audio", "episodeUrl": "https://...", "closedCaptioning": "none", - Network accessline 82
"episodeUrl": "https://...", - Network accessline 108
GET https://itunes.apple.com/lookup?id={podcast_id}&entity=podcastEpisode&country={country}&limit={limit} - Network accessline 113
GET https://itunes.apple.com/lookup?id=1711052890&entity=podcastEpisode&country=cn&limit=200 - Network accessline 129
"collectionCensoredName": "独树不成林", "trackCensoredName": "独树不成林", "collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 130
"trackCensoredName": "独树不成林", "collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", "feedUrl": "https://feed.xyzfm.space/y9qnpfdrctnx", - Network accessline 131
"collectionViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 132
"feedUrl": "https://feed.xyzfm.space/y9qnpfdrctnx", - Network accessline 133
"trackViewUrl": "https://podcasts.apple.com/cn/podcast/...", - Network accessline 134
"artworkUrl30": "https://is1-ssl.mzstatic.com/image/.../30x30bb.jpg", - Network accessline 135
"artworkUrl60": "https://is1-ssl.mzstatic.com/image/.../60x60bb.jpg", - Network accessline 136
"artworkUrl100": "https://is1-ssl.mzstatic.com/image/.../100x100bb.jpg", - Network accessline 146
"primaryGenreName": "Society & Culture", "contentAdvisoryRating": "Clean", "artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", - Network accessline 147
"contentAdvisoryRating": "Clean", "artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", "genreIds": ["1324", "26"], - Network accessline 148
"artworkUrl600": "https://is1-ssl.mzstatic.com/image/.../600x600bb.jpg", - Network accessline 182
GET https://itunes.apple.com/lookup?id={podcast_id}&entity=podcast&country={country} - Network accessline 187
GET https://itunes.apple.com/lookup?id=1711052890&entity=podcast&country=cn - Network accessline 200
"artistName": "XYZ.FM", "collectionName": "独树不成林", "feedUrl": "https://feed.xyzfm.space/y9qnpfdrctnx", - Network accessline 201
"collectionName": "独树不成林", "feedUrl": "https://feed.xyzfm.space/y9qnpfdrctnx", "trackCount": 272, - Network accessline 202
"feedUrl": "https://feed.xyzfm.space/y9qnpfdrctnx", - Network accessline 278
| `releaseDate` | string | ISO 8601 datetime | `"2025-01-10T00:00:00Z"` | | `trackTimeMillis` | number | Duration (ms) | `2415000` (40.25 min) | | `episodeUrl` | string | Audio file URL | `"https://..."` | - Network accessline 279
| `trackTimeMillis` | number | Duration (ms) | `2415000` (40.25 min) | | `episodeUrl` | string | Audio file URL | `"https://..."` | | `episodeFileExtension` | string | File type | `"m4a"`, `"mp3"` | - Network accessline 280
| `episodeUrl` | string | Audio file URL | `"https://..."` | - Network accessline 348
response = requests.get(url) - Network accessline 359
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36' } response = requests.get(url, headers=headers) - Network accessline 361
response = requests.get(url, headers=headers) - Network accessline 425
try: response = requests.get(url, timeout=10) - Network accessline 426
response = requests.get(url, timeout=10) - Network accessline 457
def get_podcast_episodes(podcast_id, country='us', limit=10): url = f"https://itunes.apple.com/lookup" - Network accessline 458
url = f"https://itunes.apple.com/lookup" - Network accessline 469
response = requests.get(url, params=params, headers=headers) - Network accessline 487
# Get podcast with episodes curl -H "User-Agent: Mozilla/5.0" \ - Network accessline 488
curl -H "User-Agent: Mozilla/5.0" \ - Network accessline 489
"https://itunes.apple.com/lookup?id=1711052890&entity=podcastEpisode&country=cn&limit=10" - Network accessline 491
# Get specific episode curl -H "User-Agent: Mozilla/5.0" \ - Network accessline 492
curl -H "User-Agent: Mozilla/5.0" \ - Network accessline 493
"https://itunes.apple.com/lookup?id=1000744375610&entity=podcastEpisode&country=cn" - Network accessline 498
- **Official Docs**: https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/ - Network accessline 499
- **Podcast RSS Spec**: https://help.apple.com/itc/podcasts_connect/#/itcb54353390 - Network accessline 500
- **RSS 2.0 Spec**: https://www.rssboard.org/rss-specification - Network accessline 501
- **Podcast Namespace**: https://github.com/Podcastindex-org/podcast-namespace
02-podcast-downloader/skills/podcast-downloader/references/technical_details.md
- Network accessline 30
https://podcasts.apple.com/cn/podcast/podcast-name/id1711052890?i=1000744375610 - Network accessline 67
GET https://itunes.apple.com/lookup - Network accessline 84
"releaseDate": "2025-01-10T00:00:00Z", "trackTimeMillis": 2415000, "episodeUrl": "https://...", - Network accessline 85
"trackTimeMillis": 2415000, "episodeUrl": "https://...", "description": "..." - Network accessline 86
"episodeUrl": "https://...", - Network accessline 108
GET https://itunes.apple.com/lookup - Network accessline 123
"collectionName": "独树不成林", "artistName": "XYZ.FM", "feedUrl": "https://feed.xyzfm.space/..." - Network accessline 124
"artistName": "XYZ.FM", "feedUrl": "https://feed.xyzfm.space/..." }, - Network accessline 125
"feedUrl": "https://feed.xyzfm.space/..." - Network accessline 161
GET https://itunes.apple.com/lookup - Network accessline 193
response = requests.get(url, stream=True, timeout=60, headers={ - Network accessline 338
try: response = requests.get(url, timeout=60) - Network accessline 339
response = requests.get(url, timeout=60) - Network accessline 347
try: response = requests.get(url) - Network accessline 348
response = requests.get(url) - Network accessline 401
https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/ - Network accessline 470
- HTTP client library - Used for API calls and audio downloads - https://docs.python-requests.org/ - Network accessline 472
- https://docs.python-requests.org/ - Network accessline 475
- RSS/Atom feed parser - Fallback for when API unavailable - https://pythonhosted.org/feedparser/ - Network accessline 477
- https://pythonhosted.org/feedparser/ - Network accessline 492
# Test URL parsing url = "https://podcasts.apple.com/cn/podcast/id123456?i=789012" - Network accessline 493
url = "https://podcasts.apple.com/cn/podcast/id123456?i=789012" - Network accessline 508
# Test with real podcast python scripts/download_podcast.py \ "https://podcasts.apple.com/us/podcast/id1200361736" \ - Network accessline 509
python scripts/download_podcast.py "https://podcasts.apple.com/us/podcast/id1200361736" - Network accessline 510
"https://podcasts.apple.com/us/podcast/id1200361736" \
02-podcast-downloader/skills/podcast-downloader/references/usage_guide.md
- Network accessline 15
# Download specific episode python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/xxx/id123456?i=789012" - Network accessline 16
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/xxx/id123456?i=789012" - Network accessline 18
# Download latest 5 episodes python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id123456" -n 5 - Network accessline 19
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id123456" -n 5 - Network accessline 21
# Download to specific directory python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id123456" -n 10 -o ~/Downloads - Network accessline 22
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id123456" -n 10 -o ~/Downloads - Network accessline 32
python scripts/download_podcast.py \ "https://podcasts.apple.com/cn/podcast/独树不成林/id1711052890?i=1000744375610" - Network accessline 33
"https://podcasts.apple.com/cn/podcast/独树不成林/id1711052890?i=1000744375610" - Network accessline 68
python scripts/download_podcast.py \ "https://podcasts.apple.com/cn/podcast/id1711052890" \ - Network accessline 69
"https://podcasts.apple.com/cn/podcast/id1711052890" \ - Network accessline 86
python scripts/download_podcast.py \ "https://podcasts.apple.com/us/podcast/the-daily/id1200361736" - Network accessline 87
"https://podcasts.apple.com/us/podcast/the-daily/id1200361736" - Network accessline 96
python scripts/download_podcast.py "https://podcasts.apple.com/cn/podcast/id123456" -n 3 - Network accessline 101
python scripts/download_podcast.py "https://podcasts.apple.com/us/podcast/id789012" -n 3 - Network accessline 106
python scripts/download_podcast.py "https://podcasts.apple.com/jp/podcast/id345678" -n 3 - Network accessline 115
- `url` (required): Apple Podcast URL - Format: `https://podcasts.apple.com/{region}/podcast/{name}/id{podcast_id}` - Network accessline 116
- Format: `https://podcasts.apple.com/{region}/podcast/{name}/id{podcast_id}` - Network accessline 173
"description": "在这期节目中...", "audio_file": "001 - 289-我在童年如何与权威周旋?.m4a", "download_url": "https://..." - Network accessline 174
"audio_file": "001 - 289-我在童年如何与权威周旋?.m4a", "download_url": "https://..." } - Network accessline 175
"download_url": "https://..." - Network accessline 186
# Download latest 10 episodes success = download_from_apple_url( apple_url="https://podcasts.apple.com/cn/podcast/id1711052890", - Network accessline 187
success = download_from_apple_url( apple_url="https://podcasts.apple.com/cn/podcast/id1711052890", output_dir="/path/to/output", - Network accessline 188
apple_url="https://podcasts.apple.com/cn/podcast/id1711052890", - Network accessline 213
# Create a file with URLs cat > podcasts.txt << EOF https://podcasts.apple.com/cn/podcast/id1711052890 - Network accessline 214
cat > podcasts.txt << EOF https://podcasts.apple.com/cn/podcast/id1711052890 https://podcasts.apple.com/us/podcast/id1200361736 - Network accessline 215
https://podcasts.apple.com/cn/podcast/id1711052890 - Network accessline 216
https://podcasts.apple.com/us/podcast/id1200361736 - Network accessline 217
https://podcasts.apple.com/jp/podcast/id123456789 - Network accessline 344
- Apple Podcasts: https://podcasts.apple.com - Network accessline 345
- iTunes Search API: https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/ - Feedparser docs: https://pythonhosted.org/feedparser/ - Requests docs: https://docs.python-requests.org/ - Network accessline 346
- Feedparser docs: https://pythonhosted.org/feedparser/ - Network accessline 347
- Requests docs: https://docs.python-requests.org/
02-podcast-downloader/skills/podcast-downloader/scripts/download_podcast.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 50
api_url = f"https://itunes.apple.com/lookup?id={collection_id}&entity=podcastEpisode&country={country_code}&limit={limit}" - Network accessline 52
try: print(f"📡 正在通过 API 获取节目信息...") resp = requests.get(api_url, timeout=15, headers={ - Network accessline 53
print(f"📡 正在通过 API 获取节目信息...") resp = requests.get(api_url, timeout=15, headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36' - Network accessline 54
resp = requests.get(api_url, timeout=15, headers={ - Network accessline 81
track_url = f"https://itunes.apple.com/lookup?id={episode_id}&entity=podcastEpisode&country={country_code}" - Network accessline 83
try: resp = requests.get(track_url, timeout=10, headers={ - Network accessline 84
resp = requests.get(track_url, timeout=10, headers={ - Network accessline 102
lookup_url = f"https://itunes.apple.com/lookup?id={podcast_id}&country={country_code}&entity=podcast" - Network accessline 104
try: resp = requests.get(lookup_url, timeout=10) - Network accessline 105
resp = requests.get(lookup_url, timeout=10) - Network accessline 165
try: print(f" ⬇<U+FE0F> 正在下载: {episode_title}") response = requests.get(url, stream=True, timeout=60, headers={ - Network accessline 166
print(f" ⬇<U+FE0F> 正在下载: {episode_title}") response = requests.get(url, stream=True, timeout=60, headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36' - Network accessline 167
response = requests.get(url, stream=True, timeout=60, headers={ - Network accessline 339
%(prog)s "https://podcasts.apple.com/cn/podcast/id123456?i=789012" - Network accessline 342
%(prog)s "https://podcasts.apple.com/cn/podcast/id123456" -n 5 - Network accessline 345
%(prog)s "https://podcasts.apple.com/us/podcast/id123456" - Network accessline 348
%(prog)s "https://podcasts.apple.com/cn/podcast/id123456" -n 10 -o /path/to/output
02-podcast-downloader/skills/youtube-downloader/SKILL.md
- Network accessline 42
python scripts/download_video.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ" - Network accessline 47
python scripts/download_video.py "https://www.youtube.com/watch?v=VIDEO_ID" -f 1080 - Network accessline 52
python scripts/download_video.py "https://www.youtube.com/watch?v=VIDEO_ID" --audio-only - Network accessline 57
python scripts/download_video.py "https://www.youtube.com/watch?v=VIDEO_ID" --subtitles - Network accessline 62
python scripts/download_video.py "https://www.youtube.com/playlist?list=PLAYLIST_ID" --playlist - Network accessline 67
python scripts/download_video.py "https://www.youtube.com/playlist?list=PLAYLIST_ID" --playlist -n 5 - Access to secretsline 183
[Credential-related source omitted] - Access to secretsline 192
[Credential-related source omitted] - Network accessline 199
**User**: "帮我下载这个 YouTube 视频: https://www.youtube.com/watch?v=dQw4w9WgXcQ" - Network accessline 206
# Download video python /mnt/skills/user/youtube-downloader/scripts/download_video.py \ "https://www.youtube.com/watch?v=dQw4w9WgXcQ" \ - Network accessline 207
python /mnt/skills/user/youtube-downloader/scripts/download_video.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ" - Network accessline 208
"https://www.youtube.com/watch?v=dQw4w9WgXcQ" \ - Access to secretsline 260
[Credential-related source omitted] - Network accessline 284
- [yt-dlp GitHub](https://github.com/yt-dlp/yt-dlp) - Network accessline 285
- [yt-dlp Documentation](https://github.com/yt-dlp/yt-dlp#readme) - Network accessline 286
- [Supported Sites](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md)
02-podcast-downloader/skills/youtube-downloader/scripts/download_video.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 256
%(prog)s "https://www.youtube.com/watch?v=VIDEO_ID" - Network accessline 259
%(prog)s "https://www.youtube.com/watch?v=VIDEO_ID" -f 1080 - Network accessline 262
%(prog)s "https://www.youtube.com/watch?v=VIDEO_ID" --audio-only - Network accessline 265
%(prog)s "https://www.youtube.com/watch?v=VIDEO_ID" --subtitles - Network accessline 268
%(prog)s "https://www.youtube.com/playlist?list=PLAYLIST_ID" --playlist -n 5
10-ai-ppt-skills/skills/visual-deck/examples/minimal/build.js
- Executable scriptline 1
Executable file
10-ai-ppt-skills/skills/visual-deck/examples/minimal/html2pptx.js
- Executable scriptline 1
Executable file
10-ai-ppt-skills/skills/visual-deck/examples/minimal/notes-map.js
- Executable scriptline 1
Executable file
10-ai-ppt-skills/skills/visual-deck/examples/minimal/package-lock.json
- Network accessline 16
"node_modules/@emnapi/runtime": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", - Network accessline 17
"version": "1.9.2", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", - Network accessline 18
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", - Network accessline 26
"node_modules/@img/colour": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", - Network accessline 27
"version": "1.1.0", "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", - Network accessline 28
"resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", - Network accessline 35
"node_modules/@img/sharp-darwin-arm64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - Network accessline 36
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w== - Network accessline 37
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - Network accessline 49
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 50
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 51
"url": "https://opencollective.com/libvips" - Network accessline 57
"node_modules/@img/sharp-darwin-x64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - Network accessline 58
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - Network accessline 59
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - Network accessline 71
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 72
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 73
"url": "https://opencollective.com/libvips" - Network accessline 79
"node_modules/@img/sharp-libvips-darwin-arm64": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - Network accessline 80
"version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCv - Network accessline 81
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - Network accessline 90
], "funding": { "url": "https://opencollective.com/libvips" - Network accessline 91
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 92
"url": "https://opencollective.com/libvips" - Network accessline 95
"node_modules/@img/sharp-libvips-darwin-x64": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - Network accessline 96
"version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdj - Network accessline 97
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - Network accessline 106
], "funding": { "url": "https://opencollective.com/libvips" - Network accessline 107
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 108
"url": "https://opencollective.com/libvips" - Network accessline 111
"node_modules/@img/sharp-libvips-linux-arm": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - Network accessline 112
"version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11 - Network accessline 113
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - Network accessline 122
], "funding": { "url": "https://opencollective.com/libvips" - Network accessline 123
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 124
"url": "https://opencollective.com/libvips" - Network accessline 127
"node_modules/@img/sharp-libvips-linux-arm64": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - Network accessline 128
"version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28 - Network accessline 129
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - Network accessline 138
], "funding": { "url": "https://opencollective.com/libvips" - Network accessline 139
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 140
"url": "https://opencollective.com/libvips" - Network accessline 143
"node_modules/@img/sharp-libvips-linux-ppc64": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - Network accessline 144
"version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQ - Network accessline 145
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - Network accessline 154
], "funding": { "url": "https://opencollective.com/libvips" - Network accessline 155
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 156
"url": "https://opencollective.com/libvips" - Network accessline 159
"node_modules/@img/sharp-libvips-linux-riscv64": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - Network accessline 160
"version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNb - Network accessline 161
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - Network accessline 170
], "funding": { "url": "https://opencollective.com/libvips" - Network accessline 171
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 172
"url": "https://opencollective.com/libvips" - Network accessline 175
"node_modules/@img/sharp-libvips-linux-s390x": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - Network accessline 176
"version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdw - Network accessline 177
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - Network accessline 186
], "funding": { "url": "https://opencollective.com/libvips" - Network accessline 187
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 188
"url": "https://opencollective.com/libvips" - Network accessline 191
"node_modules/@img/sharp-libvips-linux-x64": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - Network accessline 192
"version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfA - Network accessline 193
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - Network accessline 202
], "funding": { "url": "https://opencollective.com/libvips" - Network accessline 203
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 204
"url": "https://opencollective.com/libvips" - Network accessline 207
"node_modules/@img/sharp-libvips-linuxmusl-arm64": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - Network accessline 208
"version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0p - Network accessline 209
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - Network accessline 218
], "funding": { "url": "https://opencollective.com/libvips" - Network accessline 219
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 220
"url": "https://opencollective.com/libvips" - Network accessline 223
"node_modules/@img/sharp-libvips-linuxmusl-x64": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - Network accessline 224
"version": "1.2.4", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCyl - Network accessline 225
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - Network accessline 234
], "funding": { "url": "https://opencollective.com/libvips" - Network accessline 235
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 236
"url": "https://opencollective.com/libvips" - Network accessline 239
"node_modules/@img/sharp-linux-arm": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - Network accessline 240
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - Network accessline 241
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - Network accessline 253
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 254
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 255
"url": "https://opencollective.com/libvips" - Network accessline 261
"node_modules/@img/sharp-linux-arm64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - Network accessline 262
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - Network accessline 263
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - Network accessline 275
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 276
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 277
"url": "https://opencollective.com/libvips" - Network accessline 283
"node_modules/@img/sharp-linux-ppc64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - Network accessline 284
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", - Network accessline 285
"resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - Network accessline 297
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 298
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 299
"url": "https://opencollective.com/libvips" - Network accessline 305
"node_modules/@img/sharp-linux-riscv64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - Network accessline 306
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw - Network accessline 307
"resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - Network accessline 319
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 320
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 321
"url": "https://opencollective.com/libvips" - Network accessline 327
"node_modules/@img/sharp-linux-s390x": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - Network accessline 328
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", - Network accessline 329
"resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - Network accessline 341
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 342
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 343
"url": "https://opencollective.com/libvips" - Network accessline 349
"node_modules/@img/sharp-linux-x64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - Network accessline 350
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - Network accessline 351
"resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - Network accessline 363
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 364
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 365
"url": "https://opencollective.com/libvips" - Network accessline 371
"node_modules/@img/sharp-linuxmusl-arm64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - Network accessline 372
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id - Network accessline 373
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - Network accessline 385
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 386
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 387
"url": "https://opencollective.com/libvips" - Network accessline 393
"node_modules/@img/sharp-linuxmusl-x64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - Network accessline 394
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q - Network accessline 395
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - Network accessline 407
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 408
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 409
"url": "https://opencollective.com/libvips" - Network accessline 415
"node_modules/@img/sharp-wasm32": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - Network accessline 416
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", - Network accessline 417
"resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - Network accessline 429
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 430
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 431
"url": "https://opencollective.com/libvips" - Network accessline 434
"node_modules/@img/sharp-win32-arm64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - Network accessline 435
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - Network accessline 436
"resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - Network accessline 448
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 449
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 450
"url": "https://opencollective.com/libvips" - Network accessline 453
"node_modules/@img/sharp-win32-ia32": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - Network accessline 454
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", - Network accessline 455
"resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - Network accessline 467
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 468
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 469
"url": "https://opencollective.com/libvips" - Network accessline 472
"node_modules/@img/sharp-win32-x64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - Network accessline 473
"version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - Network accessline 474
"resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - Network accessline 486
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 487
"funding": { "url": "https://opencollective.com/libvips" } - Network accessline 488
"url": "https://opencollective.com/libvips" - Network accessline 491
"node_modules/@types/node": { "version": "22.19.17", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", - Network accessline 492
"version": "22.19.17", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==", - Network accessline 493
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", - Network accessline 500
"node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - Network accessline 501
"version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - Network accessline 502
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - Network accessline 506
"node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - Network accessline 507
"version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - Network accessline 508
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - Network accessline 515
"node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - Network accessline 516
"version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - Network accessline 517
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - Network accessline 529
"node_modules/https": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", - Network accessline 530
"version": "1.0.0", "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", "integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==", - Network accessline 531
"resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", - Network accessline 535
"node_modules/image-size": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", - Network accessline 536
"version": "1.2.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", - Network accessline 537
"resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", - Network accessline 550
"node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - Network accessline 551
"version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - Network accessline 552
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - Network accessline 556
"node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - Network accessline 557
"version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - Network accessline 558
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - Network accessline 562
"node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - Network accessline 563
"version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - Network accessline 564
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - Network accessline 568
"node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - Network accessline 569
"version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - Network accessline 570
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - Network accessline 580
"node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - Network accessline 581
"version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - Network accessline 582
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - Network accessline 589
"node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - Network accessline 590
"version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - Network accessline 591
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - Network accessline 595
"node_modules/playwright": { "version": "1.59.1", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz", - Network accessline 596
"version": "1.59.1", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz", "integrity": "sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==", - Network accessline 597
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz", - Network accessline 613
"node_modules/playwright-core": { "version": "1.59.1", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz", - Network accessline 614
"version": "1.59.1", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz", "integrity": "sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==", - Network accessline 615
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz", - Network accessline 625
"node_modules/pptxgenjs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz", - Network accessline 626
"version": "4.0.1", "resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz", "integrity": "sha512-TeJISr8wouAuXw4C1F/mC33xbZs/FuEG6nH9FG1Zj+nuPcGMP5YRHl6X+j3HSUnS1f3at6k75ZZXPMZlA5Lj9A==", - Network accessline 627
"resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz", - Network accessline 637
"node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - Network accessline 638
"version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - Network accessline 639
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - Network accessline 643
"node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - Network accessline 644
"version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - Network accessline 645
"resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - Network accessline 652
"node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - Network accessline 653
"version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - Network accessline 654
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - Network accessline 667
"node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - Network accessline 668
"version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - Network accessline 669
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - Network accessline 673
"node_modules/semver": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - Network accessline 674
"version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - Network accessline 675
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - Network accessline 685
"node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - Network accessline 686
"version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - Network accessline 687
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - Network accessline 691
"node_modules/sharp": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - Network accessline 692
"version": "0.34.5", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - Network accessline 693
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - Network accessline 704
}, "funding": { "url": "https://opencollective.com/libvips" - Network accessline 705
"funding": { "url": "https://opencollective.com/libvips" }, - Network accessline 706
"url": "https://opencollective.com/libvips" - Network accessline 735
"node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - Network accessline 736
"version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - Network accessline 737
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - Network accessline 744
"node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - Network accessline 745
"version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - Network accessline 746
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - Network accessline 751
"node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - Network accessline 752
"version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - Network accessline 753
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - Network accessline 757
"node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - Network accessline 758
"version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - Network accessline 759
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
10-ai-ppt-skills/skills/visual-deck/examples/minimal/package.json
- Executable scriptline 1
Executable file
10-ai-ppt-skills/skills/visual-deck/pipeline/html2pptx.js
- Executable scriptline 1
Executable file
10-ai-ppt-skills/skills/visual-deck/templates/build.js
- Executable scriptline 1
Executable file
10-ai-ppt-skills/skills/visual-deck/templates/notes-map.js
- Executable scriptline 1
Executable file
10-ai-ppt-skills/skills/visual-deck/templates/package.json
- Executable scriptline 1
Executable file
10-ai-ppt-skills/skills/visual-deck/templates/player.html
- Network accessline 134
const next = n + 1; try { const r = await fetch(SLIDE_PATTERN(next), { method: 'HEAD' }); - Network accessline 135
try { const r = await fetch(SLIDE_PATTERN(next), { method: 'HEAD' }); if (!r.ok) break; - Network accessline 136
const r = await fetch(SLIDE_PATTERN(next), { method: 'HEAD' });
10-ai-ppt-skills/skills/visual-deck/templates/tools/check-overflow.js
- Executable scriptline 1
Executable file
10-ai-ppt-skills/skills/visual-deck/templates/tools/fix-html-for-pptx.js
- Executable scriptline 1
Executable file
10-ai-ppt-skills/skills/visual-deck/templates/tools/scrim-bake.js
- Executable scriptline 1
Executable file
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.
Signal confidence: 380 facts
- Network access in prose of documentationpodcast-downloader/README.md:212Low confidence
- Broad permissions in the frontmatter of the SKILL.mdpodcast-downloader/SKILL.md:1High confidence
- Network access in code of the SKILL.mdpodcast-downloader/SKILL.md:169High confidence
- Network access in code of the SKILL.mdpodcast-downloader/SKILL.md:170High confidence
- Network access in code of the SKILL.mdpodcast-downloader/SKILL.md:171High confidence
- Network access in code of the SKILL.mdpodcast-downloader/SKILL.md:181High confidence
- Network access in code of the SKILL.mdpodcast-downloader/SKILL.md:182High confidence
- Network access in code of the SKILL.mdpodcast-downloader/SKILL.md:183High confidence
- Network access in prose of the SKILL.mdpodcast-downloader/SKILL.md:221Low confidence
- Network access in prose of the SKILL.mdpodcast-downloader/SKILL.md:222Low confidence
- Network access in code of documentationpodcast-downloader/examples.md:376Low confidence
- Network access in code of documentationpodcast-downloader/examples.md:377Low confidence
- Network access in code of documentationpodcast-downloader/examples.md:378Low confidence
- Network access in code of documentationpodcast-downloader/examples.md:379Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:19Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:45Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:59Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:60Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:61Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:62Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:63Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:91Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:110Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:111Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:112Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:165Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:166Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:167Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:201Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:202Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:203Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:540Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:541Low confidence
- Network access in code of documentationpodcast-downloader/reference.md:542Low confidence
- Network access in prose of documentationpodcast-downloader/reference.md:646Low confidence
- Network access in prose of documentationpodcast-downloader/reference.md:648Low confidence
- Executable script in code of a file that runspodcast-downloader/scripts/itunes_api.py:1High confidence
- Network access in code of a file that runspodcast-downloader/scripts/itunes_api.py:19High confidence
- Network access in code of the SKILL.mdpodcast-downloader-v2-skill/SKILL.md:41High confidence
- Network access in code of the SKILL.mdpodcast-downloader-v2-skill/SKILL.md:46High confidence
- Network access in code of the SKILL.mdpodcast-downloader-v2-skill/SKILL.md:51High confidence
- Network access in prose of the SKILL.mdpodcast-downloader-v2-skill/SKILL.md:144Low confidence
- Network access in prose of the SKILL.mdpodcast-downloader-v2-skill/SKILL.md:145Low confidence
- Network access in prose of the SKILL.mdpodcast-downloader-v2-skill/SKILL.md:146Low confidence
- Network access in prose of the SKILL.mdpodcast-downloader-v2-skill/SKILL.md:168Low confidence
- Network access in code of the SKILL.mdpodcast-downloader-v2-skill/SKILL.md:178High confidence
- Network access in code of the SKILL.mdpodcast-downloader-v2-skill/SKILL.md:179High confidence
- Network access in code of the SKILL.mdpodcast-downloader-v2-skill/SKILL.md:180High confidence
- Network access in prose of documentationpodcast-downloader-v2-skill/references/api_reference.md:7Low confidence
- Network access in code of documentationpodcast-downloader-v2-skill/references/api_reference.md:12Low confidence
and 330 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Path CLAUDE.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md 01-notebooklm/.claude/skills/podcast-downloader/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md 01-notebooklm/.claude/skills/podcast-downloader/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md 01-notebooklm/.claude/skills/podcast-downloader/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md 01-notebooklm/.claude/skills/podcast-downloader/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md 01-notebooklm/.claude/skills/podcast-downloader/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.