✓ Verified 💻 Development ✓ Enhanced Data

Ddgs

This skill implements web search functionality via the DDGS (Dux Distributed Global Search) engine,

Rating
3.9 (230 reviews)
Downloads
11,526 downloads
Version
1.0.0

Overview

This skill implements web search functionality via the DDGS (Dux Distributed Global Search) engine, aggregating.

Complete Documentation

View Source →

DDGS Web Search Skill

This skill implements web search functionality via the DDGS (Dux Distributed Global Search) engine, aggregating results from diverse search services to fetch real-time information.

Features

🔍 Privacy-friendly metasearch 📰 News search support 🖼️ Image search support 📹 Video search support 📚 Books search support 🌐 Free to use, no API Key required 🔒 Privacy protection, no user tracking ⚡ MCP (Model Context Protocol) and API server support

Installation

``bash

Install via uv (Recommended)

uv pip install ddgs

Or install via pip

pip install ddgs
`

Quick Start

1. Text Search

The most commonly used search method, returning webpage results:
`python python -c " from ddgs import DDGS query = 'your search query' results = DDGS().text( query, region='wt-wt', # Region: cn-zh (China), us-en (US), wt-wt (Global) safesearch='moderate', # Safe search: on, moderate, off timelimit='m', # Time range: d (day), w (week), m (month), y (year), None (unlimited) max_results=10, # Maximum number of results backend='auto' # Backends: auto, duckduckgo, brave, bing, etc. ) for i, r in enumerate(results, 1): print(f\"{i}. {r.get('title')}\") print(f\" URL: {r.get('href')}\") print(f\" Snippet: {str(r.get('body'))[:100]}...\n\") " `

2. News Search

Search for the latest news:
`python python -c " from ddgs import DDGS results = DDGS().news( 'AI technology', region='wt-wt', safesearch='moderate', timelimit='d', # d=past 24 hours, w=past week, m=past month max_results=10 ) for r in results: print(f\"📰 {r.get('title')}\") print(f\" Source: {r.get('source')}\") print(f\" Date: {r.get('date')}\") print(f\" Link: {r.get('url')}\n\") " `

3. Image Search

Search for image resources:
`python python -c " from ddgs import DDGS results = DDGS().images( 'cute cats', region='wt-wt', safesearch='moderate', size='Medium', # Small, Medium, Large, Wallpaper type_image='photo', # photo, clipart, gif, transparent, line layout='Square', # Square, Tall, Wide max_results=10 ) for r in results: print(f\"🖼️ {r.get('title')}\") print(f\" Image: {r.get('image')}\") print(f\" Thumbnail: {r.get('thumbnail')}\") print(f\" Source: {r.get('source')}\n\") " `

4. Video Search

Search for video content:
`python python -c " from ddgs import DDGS results = DDGS().videos( 'Python programming', region='wt-wt', safesearch='moderate', timelimit='w', # d, w, m resolution='high', # high, standard duration='medium', # short, medium, long max_results=10 ) for r in results: print(f\"📹 {r.get('title')}\") print(f\" Duration: {r.get('duration', 'N/A')}\") print(f\" Publisher: {r.get('publisher')}\") print(f\" Link: {r.get('content')}\n\") " `

5. Books Search

Search for books:
`python python -c " from ddgs import DDGS results = DDGS().books( 'sea wolf jack london', max_results=5 ) for r in results: print(f\"📚 {r.get('title')}\") print(f\" Author: {r.get('author')}\") print(f\" Publisher: {r.get('publisher')}\") print(f\" Link: {r.get('link')}\n\") " `

Practical Scripts

Reusable Search Function

`python python -c " from ddgs import DDGS def web_search(query, search_type='text', max_results=5, region='wt-wt', timelimit=None): ''' Execute DDGS search Args: query: Search keyword search_type: text, news, images, videos, books max_results: Maximum results region: Region (cn-zh, us-en, wt-wt) timelimit: Time limit (d, w, m, y) ''' ddgs = DDGS() if search_type == 'text': return list(ddgs.text(query, region=region, timelimit=timelimit, max_results=max_results)) elif search_type == 'news': return list(ddgs.news(query, region=region, timelimit=timelimit, max_results=max_results)) elif search_type == 'images': return list(ddgs.images(query, region=region, max_results=max_results)) elif search_type == 'videos': return list(ddgs.videos(query, region=region, timelimit=timelimit, max_results=max_results)) elif search_type == 'books': return list(ddgs.books(query, max_results=max_results)) return [] results = web_search('Python 3.12 new features', max_results=5) print(f'📊 Found {len(results)} results') " `

Parameters Explained

Region Codes (region)

| Code | Region | |---|---| | cn-zh | China | | us-en | United States | | uk-en | United Kingdom | | jp-jp | Japan | | kr-kr | South Korea | | wt-wt | Global (No region limit) |

Time Limit (timelimit)

| Value | Meaning | |---|---| | d | Past 24 hours | | w | Past week | | m | Past month | | y | Past year | | None | No limit |

Safe Search (safesearch)

| Value | Meaning | |---|---| | on | Strict filtering | | moderate | Moderate filtering (Default) | | off | Filtering disabled |

Error Handling & Proxies

Basic Error Handling

`python python -c " from ddgs import DDGS from ddgs.exceptions import DDGSException try: results = DDGS().text('test query', max_results=5) print(f'✅ Search successful, found {len(results)} results') except DDGSException as e: print(f'❌ Search error: {e}') except Exception as e: print(f'❌ Unknown error: {e}') " `

Using Proxies

`python python -c " from ddgs import DDGS

Set proxy (supports http/https/socks5)

proxy = 'http://127.0.0.1:7890' results = DDGS(proxy=proxy).text('test query', max_results=5) print(f'Successfully searched via proxy, found {len(results)} results') "
`

FAQ

Installation Failed?
`bash pip install --upgrade pip pip install ddgs ` No Results Found?
  • Check your network connection.
  • Try using a proxy.
  • Simplify your search query.
  • Verify that your region settings are correct.
Rate Limited?
  • Add a delay between multiple requests (e.g., import time; time.sleep(1)).
  • Reduce the max_results per request.

Integration & Notes

Integration Example

`python

1. Search with DDGS

python -c " from ddgs import DDGS results = DDGS().text('Python async tutorial', max_results=1) if results: print(f\"URL: {results[0].get('href')}\") "

2. Open result with your browser-use tool

browser-use open
` ⚠️ Best Practices:
  • Respect Rate Limits: Avoid sending a massive volume of requests in a short period.
  • Optimize Results: Do not request more results than necessary in a single query.
  • Add Delays: Use time.sleep() when executing batch searches.
  • Handle Exceptions: Always wrap your API calls in try/except` blocks.
  • Copyright Awareness: Search results are for reference only; respect the copyright of the indexed content.

Installation

Terminal bash

openclaw install ddgs
    
Copied!

Tags

#web_and-frontend-development #web

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author idkwhodatis
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install ddgs