Jina Reader
Overview
Jina Reader provides clean markdown extraction from any URL, bypassing HTML complexity, JavaScript rendering, and many paywalls. It returns structured text content with metadata (title, URL, published time) that's perfect for AI analysis.
Quick Start
Extract markdown content
scripts/jina-reader.py <url>
Extract with JSON metadata
scripts/jina-reader.py <url> --format json
Save to file
scripts/jina-reader.py <url> -o output.md
Core Operations
1. Basic Extraction
Extract clean markdown from any URL:
scripts/jina-reader.py https://example.com/article
Returns: Full markdown content including title, metadata headers, and structured text.
Use when: You need readable text from a webpage for summarization, analysis, or content processing.
2. JSON Format
Get structured data with metadata:
scripts/jina-reader.py https://example.com/article --format json
Returns:
{
"status": "success",
"metadata": {
"title": "Article Title",
"url": "https://example.com/article",
"published": "Mon, 10 Feb 2026 12:00:00 GMT"
},
"content": "Markdown content..."
}
Use when: You need programmatic access to metadata or want to integrate with other tools.
3. Shell Script Quick Access
For simple one-liners:
scripts/jina-reader.sh https://example.com/article
Returns: Raw markdown content directly to stdout.
Use when: Quick extraction without arguments or when piping to other commands.
Usage Patterns
Combining with Search
When using tavily-search, web_search, or searxng skills:
- Get search results with relevant URLs
- Extract content from top results using jina-reader
- Process and summarize the extracted content
# Example workflow
URL="https://example.com/article"
scripts/jina-reader.py "$URL" --format json | jq -r '.content'
Batch Processing
Extract from multiple URLs:
for url in $(cat urls.txt); do
scripts/jina-reader.py "$url" -o "output/$(basename $url).md"
done
Content Analysis
Pipe extracted content to analysis tools:
scripts/jina-reader.py https://example.com/article | wc -w
scripts/jina-reader.py https://example.com/article | grep -i "keyword"
Options
Python Script (jina-reader.py)
url(required): The URL to extract content from-f, --format: Output format -markdownorjson(default: markdown)-t, --timeout: Request timeout in seconds (default: 30)-o, --output: Save output to file instead of stdout
Shell Script (jina-reader.sh)
url(required): The URL to extract content from
Limitations
- Timeout: Default 30 seconds. Increase with
-tfor slow-loading pages - Rate limits: Jina Reader API has rate limits. Use batching strategically
- Dynamic content: Can't extract content generated by client-side JavaScript after page load
- Authentication: Can't access pages requiring login or special headers
Troubleshooting
Timeout errors
scripts/jina-reader.py <url> -t 60 # Increase timeout
Invalid URLs
The tool auto-prepends https:// if missing. Use fully qualified URLs for reliability.
Empty content
Some pages may block scraping. Try the shell script as fallback, or verify the URL is accessible.
Resources
scripts/jina-reader.py
Full-featured Python tool with JSON output, metadata extraction, and file saving.
scripts/jina-reader.sh
Lightweight shell script for quick markdown extraction.