fetch-article

Fetch articles and video content from URLs and convert them to Markdown.

Updated Jul 20, 2026
One-click install
npx skills add https://github.com/peachest/skills --skill fetch-article-peachest
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: fetch-article
Source: https://github.com/peachest/skills/tree/main/research/fetch-article
Command: npx skills add https://github.com/peachest/skills --skill fetch-article-peachest

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires markitdown, beautifulsoup4, requests, yt-dlp, scrapling, imageio-ffmpeg, and includes scripts (resource) components.

What problem does it solve? Web content is locked behind site-specific anti-bot mechanisms, paywalls, and video formats, making it hard to get clean, machine-readable text from a URL. This Skill routes any URL to the right adapter and returns structured Markdown output. ## Core Features & Use Cases - Domain Routing: Automatically dispatches URLs to dedicated adapters for WeChat (mp.weixin.qq.com), Bilibili video, YouTube, and generic webpages. - Anti-Bot Fallback Chain: The generic adapter tries Scrapling first, then curl with HTML stripping, then the r.jina.ai reader proxy to bypass Cloudflare-protected sites. - Video Content Extraction: Bilibili downloads audio via WBI-signed API (or saves CC subtitles directly); YouTube prefers yt-dlp subtitles and falls back to best-audio download for ASR. - Use Case: Paste a WeChat article link and receive structured JSON with title, author, publish time, full Markdown body, and image URLs, ready for summarization or archiving. ## Quick Start Fetch this URL and give me the article content as Markdown: https://mp.weixin.qq.com/s/xxx

Frequently Asked Questions about fetch-article

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fetch a WeChat article as Markdown?▼

Run fetch.py with the mp.weixin.qq.com URL and the --json flag. The WeChat adapter uses curl with a MicroMessenger user agent and Referer header to get the server-rendered page, then converts it with markitdown and extracts metadata via beautifulsoup4.

How to bypass Cloudflare protection when scraping a webpage?▼

The generic adapter uses a three-layer fallback: Scrapling CLI first, then curl with HTML stripping, then the r.jina.ai reader proxy which returns Cloudflare-protected pages as Markdown. Setting JINA_API_KEY avoids anonymous rate limits on the proxy.

Does the Bilibili adapter transcribe video audio?▼

No, the Bilibili adapter only downloads audio via the WBI-signed API or saves CC subtitles directly when available. For ASR transcription of the downloaded audio, use the separate bilibili-transcriber skill.

Can I fetch YouTube video subtitles without downloading audio?▼

Yes, the YouTube adapter uses yt-dlp to fetch manual or auto subtitles first, deduplicating the VTT into plain text. Audio is only downloaded as a fallback when no subtitles exist, and https_proxy is honored for restricted networks.

Why does WeChat fetching return a captcha or empty page error?▼

WeChat returns a captcha page when your IP is rate-limited, or a JS shell page when the user agent is wrong. The adapter detects both conditions and fails loudly; retry later or use a headless-browser fetcher for that URL.

What dependencies are required to run the article fetcher?▼

Core requirements are Python 3.10+, curl, markitdown, beautifulsoup4, and requests. Bilibili needs aria2c and optionally imageio-ffmpeg; YouTube needs yt-dlp; the generic adapter optionally uses Scrapling for anti-bot bypass.