seekit
seekit wraps multiple search providers behind a common SerpItem model and can search
live using curl_cffi request templates derived from captured HAR files.
Supported providers:
- Bilibili
- Brave
- DuckDuckGo
- So.com
- Sogou
- Threads
- Toutiao
- YouTube
Install
pip install seekit
Usage
Search live:
import seekit
results = seekit.search("latest OpenAI reasoning model", provider="google")
for item in results[:3]:
print(item.provider, item.title, item.url)
CLI:
seekit OpenAI
seekit latest OpenAI reasoning model --engine google --limit 5
seekit OpenAI --engine tiktok --format json
seekit OpenAI --engine google --format csv
seekit OpenAI --engine google --debug
Each parsed item uses the shared pydantic model:
class SerpItem(BaseModel):
provider: str
title: str | None
excerpt: str | None
url: str | None
author: str | None
cover_url: str | None
time: str | None
Fixture parsing is still available for tests and parser debugging:
from pathlib import Path
from har import parse_har
results = parse_har("google", Path("data/pages/google.har"))
Development
uv run pytest
Tests read the HAR fixtures under data/pages, verify the normalized item
shape, and validate that live request templates substitute the search keyword correctly.
Server
uv run uvicorn seekit.server:app --reload
Then open http://127.0.0.1:8000/ or call:
curl 'http://127.0.0.1:8000/api/search?q=OpenAI&provider=google'
Docs
Read the Docs config lives in .readthedocs.yaml and Sphinx sources live in docs/.
Release
make publish-testpypi
make publish-pypi
These targets build with uv build and publish with uvx uv-publish.
Metadata
Release files for seekit 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| seekit-0.1.1.tar.gz | 27.5 kB | Without provenance | Details for seekit-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| seekit-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for seekit-0.1.1-py3-none-any.whl |
Total release size: 60.2 kB
Release files / seekit-0.1.1.tar.gz
| Download URL | seekit-0.1.1.tar.gz |
|---|---|
| Size | 27.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cf7c1a306661c1173cff9fe0a262e05c2fb3d365f5b498c6768153d165f789ad
|
|
BLAKE2b-256 checksum How to use checksums |
e6a9ec7c67a477a751d649188aa9635370fb27c77d38a267793f3375f842139c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / seekit-0.1.1-py3-none-any.whl
| Download URL | seekit-0.1.1-py3-none-any.whl |
|---|---|
| Size | 32.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
40974d731f151f1416412a72a531f54ccd52248ec0298ba85cf0e38e94cf5146
|
|
BLAKE2b-256 checksum How to use checksums |
4aec954f694649ca9c3416bf4431126a37ea5d1d667cfe3d9e5866a551bb8be7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for seekit 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.