ParseForge Scrapers

TVMaze TV Shows Scraper

parseforge/tvmaze-shows-scraper

MARKETINGAutomationOther

Scrapes TV show metadata from TVMaze by search, full catalog browse, or daily schedule. Returns each show as a flat row with optional episodes, cast, and alternate titles.

Run this scraper See the API call
Total users
1
Monthly active
0
Total runs
126
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

TVMaze TV Shows Scraper

Scrape TV show metadata from TVMaze by search, full catalog browse, or daily schedule, up to a million shows per run. Each show returns with its name, genres, status, rating, network, and optional episodes, cast, and alternate titles. No API key required. Export to CSV, JSON, Excel, or XML.

TVMaze's public API is free, but building a pagination loop, handling rate limits, and merging optional episode and cast data takes time you could spend on analysis. This Actor reads the API directly, lets you search by title, browse the entire catalog of ~80,000 shows, or pull today's TV schedule for any country, and returns each match in one consistent flat schema. Add episodes, cast, and alternate titles with a single checkbox each.

Who uses it What they scrape TVMaze for
Content aggregators Building a searchable database of every TV show ever aired.
Market researchers Tracking which genres and networks are producing new shows this month.
App developers Populating a TV guide app with today's schedule for a specific country.
Data journalists Analyzing show longevity by comparing premiere and end dates across networks.

What it does

This Actor collects TV show metadata from TVMaze by search query, full catalog browse, or daily schedule, and returns each show as a flat row with optional nested episode, cast, and AKA lists.

  • ๐Ÿ”Ž Search by name: Find shows matching a title or keyword, returning up to 10 matches per query.
  • ๐Ÿ“š Browse full catalog: Paginate through the entire TVMaze database, 250 shows per page, to collect every record.
  • ๐Ÿ“บ TV schedule: Pull all episodes airing today on a given country's networks, with an optional date override.
  • ๐ŸŒ Web schedule: Collect streaming and web-only premieres for today's date.
  • ๐Ÿ‘ฅ Optional cast: Attach the full cast list to each show with one checkbox.
  • ๐Ÿ“‹ Optional episodes: Include every episode with its airdate, season, and number.
  • ๐Ÿท๏ธ Optional AKAs: Add alternate titles used in different regions.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with TVMaze data

๐Ÿ“บ Build a TV guide app.

A developer pulls today's US schedule with episodes and cast, then feeds the JSON into a mobile guide frontend.

๐Ÿ“Š Analyze genre trends.

A researcher browses the full catalog with episodes included, then groups premiere dates by genre to spot production cycles.

๐Ÿ” Enrich a media database.

A content team searches for missing show titles and pulls ratings, network, and alternate names to fill gaps in their CMS.

๐ŸŒ Compare regional availability.

An analyst pulls the schedule for GB and CA on the same date, then compares network lineups by show.

Why choose this scraper

What you get
No API key Reads the public TVMaze API with no registration or authentication.
Four modes Search, browse all ~80k shows, today's TV schedule, or streaming web schedule.
Optional depth Add full episode lists, cast, and alternate titles per show with a checkbox.
Fixed schema Every show returns the same flat fields regardless of mode, ready for your database.

How it compares

This Actor covers all four TVMaze endpoints (search, browse, schedule, web schedule) and lets you add episodes, cast, and AKAs with a single checkbox each, while the other listed scrapers focus on search and show details.

Feature ParseForge TVMaze TV Shows Scraper TVMaze - TV Show Search & Metadata TVMaze TV Show Search
Full catalog browse (all ~80k shows) Yes, paginated 250 per page Not listed Not listed Not listed
Daily TV schedule by country Yes, with date override Yes Not listed Not listed
Streaming web schedule Yes Not listed Not listed Not listed
Optional episode list per show Yes, one checkbox Yes Not listed Not listed
Optional cast list per show Yes, one checkbox Yes Not listed Not listed
Optional alternate titles (AKAs) Yes, one checkbox Not listed Not listed Not listed

Configure the run

Drive the Actor from a show title search, a full catalog browse starting at any page, or a country-specific daily schedule, and optional toggles add episodes, cast, and alternate titles to each row. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10,
 "mode": "search",
 "query": "breaking bad",
 "scheduleCountry": "US",
 "browseStartPage": 0
}

A larger pull:

{
 "maxItems": 200,
 "mode": "search",
 "query": "breaking bad",
 "scheduleCountry": "US",
 "browseStartPage": 0
}

Pricing

Pay-per-result: $0.02 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $2.00
1,000 results $20.00
10,000 results $200.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the TVMaze TV Shows Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to TVMaze through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/tvmaze-shows-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results for my search query?

TVMaze search returns a maximum of about 10 matches per query. Try a shorter or more general keyword, or switch to browse mode to scan the full catalog.

Why is my browse run so slow?

Browse mode paginates 250 shows per request and respects TVMaze rate limits. If you enabled episodes or cast, each show adds extra API calls. Reduce 'Maximum shows' or disable optional fields for a faster run.

Why are some shows missing episodes or cast even though I checked the box?

TVMaze may not have episode or cast data for every show, especially very new or obscure titles. The fields will be empty arrays in that case.

Why does my schedule run return shows from the wrong date?

If you left 'Schedule date' empty, it defaults to today in the TVMaze server's timezone. Set an explicit YYYY-MM-DD date to lock in a specific day.

Why do I get an error about an invalid country code?

The 'Schedule country' field expects an ISO 3166-1 alpha-2 code like 'US', 'GB', or 'CA'. Check that you used two uppercase letters and that the code is valid.

FAQ

Question Answer
Do I need a TVMaze API key? No. This Actor uses the public, rate-limited TVMaze API with no key or registration required.
How many shows can I scrape in one run? You set the maximum with the 'Maximum shows' input, up to 1,000,000. Browse mode paginates 250 shows per request, and search mode returns up to 10 per query.
Can I get episodes and cast for every show? Yes. Check 'Include episodes' and 'Include cast' in the input. Each adds one extra API call per show, so a large run will take longer.
What does the schedule mode return? It returns every episode airing today on broadcast TV for a given country code, like 'US' or 'GB'. You can also set a specific date.
How do I scrape the entire TVMaze catalog? Set mode to 'Browse full catalog', set 'Browse start page' to 0, and set 'Maximum shows' to a high number like 1000000. It will paginate through all ~80,000 shows.
What is the difference between TV schedule and web schedule? TV schedule returns traditional broadcast airings. Web schedule returns streaming and web-only premieres for today's date.
Can I search for a show in a language other than English? Yes. The search query accepts any language, and you can enable 'Include AKAs' to get alternate titles used in different regions.
What format is the output? The Actor returns a flat JSON array of show objects. You can export the dataset to CSV, JSON, Excel, or XML from the Apify console.
Does this Actor handle API rate limits? Yes. It respects TVMaze's rate limits automatically, slowing requests when needed so your run completes without errors.
Can I filter shows by genre or rating? The Actor collects all available metadata. You can filter the output dataset in Apify's post-processing or export it and filter in your own tools.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by TVMaze.com. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer How many shows to collect per run. 10
mode string (4 options) Search mode finds shows by query (max ~10 per query). Browse mode paginates the entire TVMaze catalog (250 shows per page, ~80,000 total). search
query string Show name to search. Required for search mode, ignored for browse. breaking bad
scheduleCountry string Country code for schedule mode (e.g. 'US', 'GB', 'CA'). Default 'US'. US
scheduleDate string Date for schedule mode (YYYY-MM-DD). Default = today. not set
browseStartPage integer Browse mode starting page (each page = 250 shows). Default 0. 0
includeEpisodes boolean If checked, includes the full episode list per show (extra API call per show). false
includeCast boolean If checked, includes the cast list per show. false
includeAkas boolean If checked, includes the show's alternate names per region. false

Pricing

from $15.00 per 1,000 results

Charged forWhat it isPrice each
Result item Charged per record successfully returned in the dataset. $0.015 to $0.02

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~tvmaze-shows-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run TVMaze TV Shows Scraper on Apify All scrapers