FlexTV Scraper — Catalog, Genres, Episodes & Engagement
Pricing
from $2.00 / 1,000 title scrapeds
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
Maintained by CommunityActor 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
| Field | Description |
|---|---|
| id / slug / url | 10-character series ID, URL slug and canonical /movie/ URL |
| title / isDubbed | Title, with FlexTV's (DUBBED) prefix split out into isDubbed |
| synopsis | Full synopsis |
| genres / genreIds | Every tag on the title: top-level genre plus timeline, story beat, relationship and identity tags (up to 8) |
| topLevelGenres | The subset that are FlexTV browse genres (Romance, Suspense, Fantasy, …) |
| badge | Hot, New or null |
| views | Exact view count (integer, not the rounded display value) |
| collects | Exact collect (save-to-list) count |
| likes | Like count |
| episodeCount / episodes | Episode count, plus every episode's number, URL, views, duration and publish time |
| availableLanguages | Every language the series ships in |
| comps | FlexTV's "Recommended For You" set for the title |
| posterUrl | Original-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 inviewsDisplay.collects: the bookmark-icon number on cards and the "Collect" number on title pages (34.8K→34883). FlexTV's own schema.org markup labels this numberLikeAction. 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'snullwhen 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 IdentityAlpha 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 25Romancetitles. - 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 installnpm test # builds, then runs extraction tests against saved pages./run-test.sh smoke '{"maxTitles":5}' # local run with its own storage dir