← all repositories
deedy5/ddgs

One Python library, ten search backends, no API keys

DDGS is a metasearch library that lets you query Google, Bing, DuckDuckGo, and others without signing up for anything.

2.7k stars Python RAG · SearchCoding Assistants
ddgs
Velocity · 7d
+1.4
★ / day
Trend
steady
star history

What it does

DDGS is a Python library that aggregates web search across multiple backends—text, images, videos, news, even books. You call DDGS().text("python programming") and it returns structured results from whichever engine you specify, or “auto” if you don’t care. It also ships as a FastAPI server and an MCP server for plugging into tools like Claude Desktop or Cursor.

The interesting bit

The “distributed” part is slightly aspirational—there’s no P2P network here, just a clean abstraction over existing search engines. The actual value is the proxy support and the lazy-loaded class that keeps initialization cheap until you actually search.

Key highlights

  • Ten text backends: Bing, Brave, DuckDuckGo, Google, Grokipedia, Mojeek, Startpage, Yandex, Yahoo, Wikipedia
  • Three install flavors: base library, ddgs[api] for FastAPI server, ddgs[mcp] for Model Context Protocol
  • Built-in content extraction: extract() pulls article text from URLs without extra dependencies
  • Proxy-native: HTTP, HTTPS, SOCKS5 support out of the box, including Tor-style socks5h://
  • No API keys required: Scrapes public search interfaces, which is also why it can break when engines change their HTML

Caveats

  • Backend coverage is uneven: images only support Bing and DuckDuckGo, videos only DuckDuckGo, books only Anna’s Archive
  • The “auto” backend selection logic isn’t documented; it’s unclear how it picks or falls back
  • Requires Python 3.10+, which may exclude older deployments

Verdict

Good fit for prototyping, automation scripts, or local LLM tools that need web search without API billing. Skip it if you need guaranteed uptime, rate-limit transparency, or enterprise support agreements.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.