FlexTV Scraper — Catalog, Genres, Episodes & Engagement avatar

FlexTV Scraper — Catalog, Genres, Episodes & Engagement

Pricing

from $2.00 / 1,000 title scrapeds

Go to Apify Store
FlexTV Scraper — Catalog, Genres, Episodes & Engagement

FlexTV Scraper — Catalog, Genres, Episodes & Engagement

Scrape the FlexTV short-drama catalog: titles, synopses, full genre taxonomy, episode lists, exact view, collect & like counts, badges and comps, in 16 locales. Server-rendered HTML (no browser) — fast and cheap.

Pricing

from $2.00 / 1,000 title scrapeds

Rating

0.0

(0)

Developer

SignalBench

SignalBench

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

17 hours ago

Last modified

Categories

Share

Scrape the FlexTV short-drama catalog without the app: titles, full synopses, the complete genre taxonomy, per-episode lists, exact view and collect counts, like counts, Hot/New badges and "Recommended For You" comps, in 16 locales. The Actor reads FlexTV's server-rendered pages directly (no browser), so runs are fast and cheap. Export as JSON, CSV, Excel or XML, or pull the data through the Apify API into your app, agent, notebook or spreadsheet.

There's no public FlexTV API and, until now, no dedicated structured-data source for it. FlexTV (YUDER PTE. LTD.) publishes roughly 700 English titles, plus separate catalogs for 15 other locales.

Never charged for failures. Flat $2 per 1,000 titles ($0.002 each), billed only per title actually stored. Empty, invalid and failed pages are never stored, so they're never charged.

What it scrapes

FieldDescription
id / slug / url10-character series ID, URL slug and canonical /movie/ URL
title / isDubbedTitle, with FlexTV's (DUBBED) prefix split out into isDubbed
synopsisFull synopsis
genres / genreIdsEvery tag on the title: top-level genre plus timeline, story beat, relationship and identity tags (up to 8)
topLevelGenresThe subset that are FlexTV browse genres (Romance, Suspense, Fantasy, …)
badgeHot, New or null
viewsExact view count (integer, not the rounded display value)
collectsExact collect (save-to-list) count
likesLike count
episodeCount / episodesEpisode count, plus every episode's number, URL, views, duration and publish time
availableLanguagesEvery language the series ships in
compsFlexTV's "Recommended For You" set for the title
posterUrlOriginal-size poster

Each run also saves the full genre taxonomy for the locale (55 tags across Genre, Timeline, Story Beats, Relationships and Identities, each with its browse URL) to the key-value store as TAXONOMY. It's scraped live every run, so it never goes stale.

The three engagement counters, and what they mean

FlexTV shows two numbers on catalog cards and a different two on title pages, which makes it easy to mislabel them. They were checked against FlexTV's own page data before the fields were named:

  • views: the play-icon number on catalog cards (122.8K). The Actor stores the exact integer behind it (122879), and the display string in viewsDisplay.
  • collects: the bookmark-icon number on cards and the "Collect" number on title pages (34.8K34883). FlexTV's own schema.org markup labels this number LikeAction. It isn't likes, so don't treat it as likes.
  • likes: the "Like" number, shown only on title pages (578). It's only published rounded, so it's parsed from the display value. It's null when Include episodes is off, because that skips the title page.

FlexTV's views are real per-title view counts. They still come from FlexTV's own counting, so compare trends within FlexTV rather than averaging them against other platforms' view counts.

Modes

  • Genres (default): walks the genres you list. Any tag works, top-level (Romance, Suspense, Urban) or facet (Rebirth, CEO,
    Hidden Identity
    , Alpha Wolf). Names are matched against the live taxonomy, and an unknown name is reported with the full list of valid ones. With nothing set, it scrapes 25 Romance titles.
  • Full catalog: walks every title in the locale. Set Max titles to cap size and cost.
  • Title URLs: scrapes exactly the /movie/ URLs you give it. Episode URLs are collapsed to their series.

Locales: en, ja, ko, th, id, es, fr, de, pt, it, ar, tr, ru, tc (Traditional Chinese), sc (Simplified Chinese), vi. Each locale is its own catalog with its own title IDs and localized genre names. Tag IDs (genreIds) are shared across locales, so use them to line genres up.

Input example

{
"mode": "genres",
"genres": ["Romance", "Rebirth"],
"maxTitles": 200,
"includeEpisodes": true,
"includeComps": false,
"locale": "en"
}

Output example

{
"platform": "flextv",
"id": "KbZ2raxZaP",
"slug": "my-three-brothers-finally-chose-me",
"url": "https://www.flextv.cc/movie/my-three-brothers-finally-chose-me-KbZ2raxZaP",
"locale": "en",
"title": "My Three Brothers Finally Chose Me",
"isDubbed": false,
"synopsis": "In her first life, Selena spent years begging for the love of the family that chose Kylie over her...",
"genres": ["Rebirth", "Comeback", "Contemporary", "Clapback", "Family", "Real vs Fake Heiress", "Rich Family", "Female-Centric"],
"topLevelGenres": ["Family"],
"badge": "Hot",
"views": 122879,
"viewsDisplay": "122.8K",
"collects": 34883,
"collectsDisplay": "34.8K",
"likes": 578,
"likesDisplay": "578",
"episodeCount": 66,
"episodes": [
{ "number": 1, "url": "https://www.flextv.cc/episodes/episode-1-my-three-brothers-finally-chose-me-KbZ2raxZaP", "views": 10579, "durationSec": 172, "publishedAt": "2026-09-03T08:12:53.000Z" }
],
"availableLanguages": ["en", "ja", "ko", "th", "id", "es", "fr", "de", "pt", "it", "ar", "tr", "vi", "tc", "sc"],
"posterUrl": "https://file-cdn.flextv.cc/image/8c/d88feef49b61f8f42fbf42a89b5357.jpg",
"detailFetched": true,
"scrapedAt": "2026-09-14T22:14:18.354Z"
}

Who uses this

  • Vertical-drama studios & producers: see which tropes pull views and saves before you greenlight a project. The 55-tag taxonomy is finer-grained than any other short-drama platform's.
  • Licensors & distributors: catalog intelligence per locale.
  • Market & trend analysts: exact per-title and per-episode view counts over time.

How it works

FlexTV server-renders every page with Nuxt, so one plain request per page carries all the data. No headless browser, no JavaScript and no private API. Catalog listings paginate by path (/dramas/all-dramas/2). The last page is worked out from FlexTV's own title count, and every page is checked against the page number FlexTV says it served.

Locale-leak protection: under load, FlexTV's servers sometimes answer one locale's page with another locale's titles (an English page full of Japanese titles, for example). The Actor checks each title's own language tag and retries any page that comes back mixed, so a leak never reaches your data.

The Actor scrapes only public catalog metadata. No video streams, no user data, no accounts. It identifies itself honestly and doesn't impersonate search-engine crawlers.

FAQ

How much does it cost? $0.002 per stored title, $2 per 1,000. The free Apify plan's $5 monthly credit covers about 2,500 titles.

Why are likes and episodeCount null on some records? You turned Include episodes off, which skips title pages. Or a title page failed after retries and the Actor kept the catalog-card data rather than dropping the title (detailFetched: false shows which).

Is scraping this legal? The Actor extracts publicly available catalog metadata. As always, consult your own counsel for your specific use case.

Development

npm install
npm test # builds, then runs extraction tests against saved pages
./run-test.sh smoke '{"maxTitles":5}' # local run with its own storage dir