Quick start
zerodig is a client-side interface to the YouTube Data API v3. It runs entirely in your browser and exposes every search filter the API offers, plus local filters the API can't do (views, likes, length).
- Get a free API key (see §02).
- Paste it into the key field on the search page and hit Save. It is
stored only in your browser (
localStorage). - Type a query, pick a type (video / channel / playlist), tune the filters, and hit Search. Use Load more to page deeper into results.
Presets
One-click filter setups. Click one to apply its filters, then hit Search:
- Hidden Gems: under 1,000 views and at least a year old, sorted fewest-views-first.
- Fresh Drops: uploaded in the last 7 days, newest first.
- Deep Dives: long videos (20min+), most-viewed first.
Hit + save current to store your own filter setup as a custom preset (the query is left out, so it works on any search). To save a whole search including its query, run it and hit ☆ star above the results; starred searches are listed under ★ starred searches in the builder, one click to re-run.
Get an API key (free)
The default quota is 10,000 units per day and needs no billing account.
- Open the Google Cloud Console ↗ and create or select a project.
- Enable the API: YouTube Data API v3 library ↗ → Enable.
- Create the key: APIs & Services → Credentials ↗ → Create credentials → API key.
- Copy the key, paste it into zerodig, hit Save.
Then lock it down (see §03).
Secure your key
Because zerodig is a static site, the key travels only to Google, but anyone who opens the page and looks at the browser's network tab can read it while you use it. Restrict it so a leaked key is useless to others:
- Open your key in Credentials ↗.
- Application restrictions → HTTP referrers, add:
https://flazeiguess.github.io/zerodig/*
(andhttp://localhost:*if you run it locally). - API restrictions → Restrict key → select only YouTube Data API v3.
- Save. Referrer + API restrictions mean the key only works from your page, only for this API.
How it works
The API can't sort or filter by view count, likes or exact length, so zerodig runs a two-stage workflow, entirely client-side:
- Search via
search.list↗ with your native filters. Costs 100 units per page, returns up to 50 ids. - Enrich: depending on result type, one call fetches the details the search
result lacks (1 unit each):
videos.list(statistics + length),channels.list(subscribers, video count) orplaylists.list(item count). - Filter & sort locally: apply your views / likes / length filters and re-sort the enriched results (see §06).
- Auto-page: follow
nextPageTokenuntil it reaches your dig depth (pages per run) or stop-after target. Load more resumes from where it stopped.
The live console on the search page prints every page fetched and the running quota cost.
Filter reference: native (server-side)
These map directly onto search.list parameters. Video-only rows require
type = video and hide automatically for channel / playlist searches.
| filter | parameter | values |
|---|---|---|
| query | q | "exact phrase", a|b (OR), -exclude |
| exclude words | q | each word is appended as -word |
| type | type | video · channel · playlist · all |
| order | order | relevance · date · rating · viewCount · title · videoCount |
| published after | publishedAfter | date (RFC 3339) |
| published before | publishedBefore | date (RFC 3339) |
| region | regionCode | ISO 3166-1 alpha-2 (US, DE, JP …) |
| language | relevanceLanguage | ISO 639-1 (en, de, ja …) |
| safe search | safeSearch | moderate · none · strict |
| within channel | channelId | a channel id (UC…) |
| duration | videoDuration | short (<4m) · medium (4-20m) · long (>20m) |
| definition | videoDefinition | high (HD) · standard (SD) |
| dimension | videoDimension | 2d · 3d |
| captions | videoCaption | closedCaption · none |
| license | videoLicense | youtube · creativeCommon |
| video type | videoType | movie · episode |
| category | videoCategoryId | Music, Gaming, Education, News … |
| event | eventType | live · upcoming · completed |
| embeddable | videoEmbeddable | true |
| syndicated | videoSyndicated | true (plays outside youtube.com) |
| paid promotion | videoPaidProductPlacement | true |
| location | location + locationRadius | lat,lng + e.g. 25km |
| per page | maxResults | 1-50 |
Local filters & sort (client-side)
The API offers none of these, so zerodig applies them after fetching statistics. They act on video results; channels and playlists pass through unfiltered.
| control | effect |
|---|---|
| min / max views | keep videos within a view range |
| min likes | keep videos with at least N likes |
| min / max length | keep videos within a length range, in seconds |
| sort results | re-order locally: views ↑ / views ↓ / likes ↓ / newest / oldest / longest / shortest |
date, then sort locally by views ↑.
Quota & limits
Every project gets 10,000 units per day by default (resets at midnight Pacific). zerodig tracks today's usage in the status bar and footer.
| call | cost |
|---|---|
| search.list | 100 units per page |
| videos / channels / playlists .list | 1 unit per page |
So one page costs ~101-103 units. A dig depth of 3 is roughly 309 units; the default budget allows about 30 such runs per day. The quota docs ↗ explain how to request more if you need it.
Privacy
zerodig has no backend. There is no account, no analytics, no cookies, and no request ever goes anywhere except directly to Google's API from your browser.
Three things live in your browser's localStorage and nowhere else: your
API key, your last filter config, and today's quota counter.
Clearing your browser data for this site removes all of them.
Notes & FAQ
The two modes: API vs YouTube URL
API search (default) uses your API key, shows results in-app, and has the full filter set plus local view/like/length filters. YouTube URL uses no key and no quota: it builds a youtube.com search link from YouTube's own filters (sort, upload date, type, duration, and features like HD, Creative Commons, 4K, Live) and opens it on YouTube. Fewer filters and no in-app results, but unlimited use. Switch with the mode toggle at the top of the builder.
Deep dig: getting past YouTube's ~500-result limit
The Search API returns at most about 500 results per query. Turn on deep dig (in fetching & depth) and zerodig splits your date range into slices and digs each one separately, so you can pull thousands of low-view videos instead of 500. Pick the number of date slices (more = deeper and pricier); the cost is slices × depth × 100 units and is shown live. Results stream in slice by slice.
Memory: never dig the same hole twice
zerodig remembers every video you open, dismiss (the × on a result), or mark these seen, in your browser. With hide seen on (default), each new dig skips what you have already seen, so you never wade through the same results twice. Use mark these seen to bury a whole page at once, the × to bury one, and reset to forget everything. It is all local to your browser.
Does zerodig save API quota?
Yes, through a cache. Every search page you fetch is stored in your browser, so repeating the same search (same query and native filters) within the cache window is served locally at 0 units. Changing a local filter (views, likes, length) also reuses the cache, since those are applied after fetching. Set the cache window in fetching & depth, watch the live cache hit (0u) line in the console, or turn the cache off for fresh live data. Deep dig and memory do not save quota by themselves; the cache is the real saver.
What is the budget guard and the "left today" number?
Every project gets 10,000 units a day. zerodig shows how many are left today next to the estimate and asks for confirmation before a dig that would exceed the remaining budget, which is handy for deep dig.
Can I use more than one API key?
Yes. Put several keys in the key field, separated by spaces. When one hits its daily quota, zerodig automatically switches to the next, multiplying your effective budget.
Why do some videos show “n/a” views?
The uploader hid the view count. zerodig shows n/a and sorts them last;
they're excluded when a numeric view filter is active, since the value can't be verified.
Why did my video filters disappear?
Duration, definition, category and the other video attributes only apply to type = video. They hide when you search channels or playlists.
How do I search only Creative Commons music from 2010?
type video, category Music, license creativeCommon,
published after 2010-01-01 / before 2010-12-31.
Can I find the least-viewed results?
Yes: set sort results to views ↑ (and optionally a max views
cap). The API can only sort views descending; the ascending sort is done locally.
Operators in the query box
"exact phrase" matches the phrase, a|b means a OR b, and a
leading - excludes a term. The exclude-words field adds - for you.
Are related-video searches supported?
No. YouTube removed the relatedToVideoId parameter in 2023, so no tool can
offer it anymore.