Short Drama API avatar

Short Drama API

Pricing

Pay per usage

Go to Apify Store
Short Drama API

Short Drama API

Drama & short-drama catalogs from the Movies API Gateway. 40 providers (DramaWave, ReelShort, NetShort, DramaBox, ShortMax, FlexTV, iDrama, StardustTV2, CubeTV, MoboReel, GoodShort.....), one interface, cursor-paginated. Built for streaming sites, aggregators, and SEO pipelines.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ezvid.Net

Ezvid.Net

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Short Drama API Actor

Pulls drama, movie, and short-drama catalogs from the Ezvid Movies API Gateway in a single, normalized interface. Built for streaming-site owners, content aggregators, SEO pipelines, and anyone who needs structured drama data at scale.

What it does

This Actor wraps the public Ezvid Movies API and exposes it as an Apify Actor. It supports 15 upstream providers behind one consistent input schema:

ProviderBest forSpecial actions
DramaWaveLong-form Chinese / Korean / Asian dramashot
ReelShortVertical short dramas (English)
DramaBoxMobile-first short dramaslatest, vip
FlexTVMulti-region short dramasranking, hot
iDramaClassic Asian dramas
StardustTV2Mixed catalog, anime & series
CubeTVAnime & TV modules
GoodShortShort dramas with channel discoverychannels, hot
ShortMaxShortMax catalogranking
NetShortNetShort catalog
FlickReelsFlickReels catalogtrending
FreeReelsFreeReels with rich for-you feedforyou, hot, trending, categories
StarShortMobile dramas (uses locale not language)latest, trending, recommended, watch
DramaBiteDramaBite with fresh m3u8 per episoderecommended, source
GoldDramaGoldDrama cataloglatest (as new)

Action reference

Every provider supports a core set: home, search, detail, episodes. Most also support categories / channels. The rest are provider-specific power-user actions.

Two specialized actions need two path params:

  • starshort · watch → needs id (show) + ep (episode number)
  • dramabite · source → needs id (drama) + ep (episode order) — returns a fresh m3u8 URL for one episode

Pagination is handled automatically via the upstream opaque cursor (default) or via page= (DramaBox's /latest). Set maxPages and the Actor will keep calling until the cursor is empty, the page counter exhausts, or the limit is hit.

Per-provider quirks

  • StarShort uses keyword for search and locale for language instead of q / language. The Actor handles this automatically — you still pass query and language in input.
  • StarShort has no /homehome maps to /content/hot (the closest equivalent).
  • DramaBite's source action returns a single fresh m3u8 URL (not a list). Useful right before playback.
  • GoldDrama has no /langs endpoint — the language input is silently ignored for this provider.

Input

FieldTypeRequiredNotes
providerstringOne of: dramawave, reelshort, dramabox, flextv, idrama, stardusttv2, cubetv, goodshort, shortmax, netshort, flickreels, freereels, starshort, dramabite, golddrama
actionstringOne of 15 actions (each provider supports a subset — see table above)
querystringwhen action=searchSearch keyword
idstringwhen action=detail/episodes/watch/sourceContent ID — get it from a home or search run
epstringwhen action=watch or sourceEpisode number (1-based)
languagestringProvider-specific. StarShort → locale, others → language (see /api/<provider>/langs to list codes)
categorystringOptional category scope (provider-specific)
pageintegerUsed by DramaBox's /latest only. Ignored elsewhere.
limitintegerPage size, default 20, max 100
maxPagesintegerPages of cursor pagination, default 1, max 50
apiKeystringYour own Ezvid API key. Leave blank to use the Actor's built-in key (pay-per-result on Apify Store)

Output

Every result is pushed to the default dataset as a JSON object. Each record is enriched with a _meta envelope:

{
"id": "tt_abc123",
"title": "Sample Drama",
"year": 2025,
"episodes": 16,
"poster": "https://cdn.ezvid.net/posters/abc123.jpg",
"stream": "https://stream.ezvid.net/hls/abc123/master.m3u8",
"_meta": {
"provider": "dramawave",
"action": "home",
"page": 1,
"url": "https://api.ezvid.net/api/dramawave/tabs?limit=20",
"fetchedAt": "2026-08-10T03:55:01.123Z"
}
}

A run summary is also written to the OUTPUT key-value store with counts and timestamps.

Quick examples

1. Latest 100 titles from DramaBox (one page)

{ "provider": "dramabox", "action": "home", "limit": 100, "maxPages": 1 }

2. Search DramaWave for "revenge"

{ "provider": "dramawave", "action": "search", "query": "revenge", "limit": 50 }

3. Get a fresh m3u8 for a single DramaBite episode

{ "provider": "dramabite", "action": "source", "id": "drama_abc123", "ep": "5" }

4. Watch metadata for a StarShort episode

{ "provider": "starshort", "action": "watch", "id": "show_xyz", "ep": "12", "language": "id" }

5. Crawl a full category across 10 pages

{ "provider": "goodshort", "action": "home", "category": "romance", "limit": 50, "maxPages": 10 }

6. StarShort "For You" — pass query is not needed, but the upstream requires locale

{ "provider": "starshort", "action": "recommended", "language": "id" }

Authentication

The Actor calls Ezvid's API with an X-API-Key header.

  • Free users can paste their own Ezvid API key into the apiKey input.
  • Pay-per-result users leave the field empty — the Actor uses an embedded key from its EZVID_API_KEY secret. Configure that secret in the Actor's Settings → Environment variables when you publish it on Apify Store.

Local development

Requirements: Node 18+, Apify CLI.

# Install deps
npm install
# Run locally (uses input from storage/key_value_store/INPUT.json)
EZVID_API_KEY=your_key npm start

Deploying to Apify Store

# 1. Login (one-time)
apify login
# 2. Push — the CLI auto-creates the Actor on the platform
# using the name from .actor/actor.json ("short-drama-api")
apify push
# 3. In the Apify Console (https://console.apify.com):
# - Open the new Actor "short-drama-api"
# - Settings → Environment variables → add EZVID_API_KEY=<your master key>
# - (Optional) Secrets → same value via secret reference
# - Publication → "Publish" → fill the public listing from this README

⚠️ The CLI has no apify actors create command. apify push is the command that both creates the Actor (if it doesn't exist) and uploads the source code. The Actor's name is read from .actor/actor.json.

Pricing strategy (suggestion)

On Apify Store you can set pay-per-event pricing so users pay only for records they actually pull:

EventSuggested price
Actor start$0.001
Record returned$0.0005 – 0.002

This way your upstream cost (/api/dramawave/* calls) is covered and you keep a margin. The built-in key is billed to the Actor, not to the end user.

Limits & caveats

  • Upstream API may rate-limit; this Actor uses Apify's default retries but if you hit a 429, lower maxPages or run in smaller batches.
  • The Ezvid API is not affiliated with the upstream drama providers — make sure your use case complies with their terms.
  • The Actor does not stream video; it returns metadata + HLS URLs. The end user (or your downstream system) is responsible for the actual playback.

License

MIT — do whatever you want, just don't blame us if upstream breaks.