Spotify Podcast Episodes Monitor - New Episodes & Ratings
Pricing
from $1.40 / 1,000 episode returneds
Spotify Podcast Episodes Monitor - New Episodes & Ratings
Latest episodes and show details for Spotify podcasts: title, release time, duration and link of each episode in the public show page, plus publisher, rating average, rating count and episode total. Monitoring mode returns only new episodes and rating changes.
Pricing
from $1.40 / 1,000 episode returneds
Rating
0.0
(0)
Developer
NeverEmpty
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share
Spotify Podcast Episodes Monitor
The latest episodes and the show details of Spotify podcasts, read from the public show page: for each episode its title, release time (to the minute), duration, the start of its description and its link; for each show its name, publisher, rating average and rating count, total number of episodes, language and topics. With monitoring on, a run returns only the episodes that are new since the last run and the shows whose rating count changed - and a show with nothing new costs one small check instead of a row.
Paste shows as page URLs, spotify:show: URIs or 22-character show IDs, mixed in one list.
This Actor reads the public show page only. That page carries the most recent episodes of a show (12 when this was measured), not its whole back catalogue. Every show row says how many episodes were in the page and how many the show has in total. No audio, no transcripts, no follower or play counts: those are not in the page.
What you get
Two kinds of rows, told apart by type.
type: "show" - one per show:
| Field | Meaning |
|---|---|
showName, publisher | As Spotify writes them in the show page |
ratingAverage | Average star rating, rounded to two decimals. null when the show has no ratings or Spotify does not display an average |
ratingCount | Number of ratings, the integer in the page data |
totalEpisodes | Number of episodes the show has, as stated in the page |
episodesOnPage, episodesCoverage | How many episodes were in the public page, as a number and as a sentence ("12 of 2759 episodes were in the public show page") |
latestEpisodeName, latestEpisodeReleasedAt | The first episode in the page |
description, language, topics, isExplicit, mediaType | As stated in the page. language is what the publisher declared |
showId, showUrl, input | The show that was read and the line you gave for it |
pageCountry | Country of the connection the page was built for |
ratingCountChange, totalEpisodesChange, newEpisodesInPage, changedFields, previous... | Monitoring only: what moved since the last reported figures |
type: "episode" - one per episode found in the show page:
| Field | Meaning |
|---|---|
episodeName | Episode title |
releasedAt, releaseDatePrecision | Release time as an ISO timestamp (UTC) and the precision Spotify states for it |
durationSeconds, durationMs | Length of the episode |
descriptionStart, descriptionLength | The first 500 characters of the episode description, and the length of the full description |
episodeUrl, episodeId | Link and ID of the episode |
position | Place in the show page (1 = first, which is the newest in every show measured) |
isExplicit, isPaywalled, mediaTypes | As stated in the page |
showName, showId, showUrl | The show the episode was listed under |
isNew | Monitoring only: true for an episode that was not there at the previous run |
A value that is not in the page is null, never 0 or a guess.
Only the episodes in the public page
Spotify puts the most recent episodes of a show into its public page and loads older ones only inside its own player. This Actor does not use the player's internal API, a login or an API token, so it returns the episodes in the page: enough to follow what a show publishes, not to export an archive of hundreds of episodes.
Why every row names the show it read
The show ID in each row is checked against the ID in the page data before anything is taken from it, and every episode row carries the show name stated in the page. If Spotify answers with a different page, the line comes back as a row that explains what happened and is not charged.
Input
shows- show URLs (https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk),spotify:show:URIs or show IDs. Links withintl-xx/or?si=are fine. Episode, artist and playlist links are not read (for artists and playlists see Spotify Monthly Listeners Tracker and Spotify Playlist Tracker).maxEpisodesPerShow- with monitoring off, how many of the episodes in the page to return per show (0 = show row only).maxShows- with monitoring off, stop after this many shows.monitoringMode,watch,minRatingCountChange- see below.resetMonitoringState- forget every remembered show on your account, so each one is treated as a first check again.useProxy- on by default: if Spotify answers HTTP 403 or 429, the page is requested once more through an Apify residential proxy (at most three times in a run). Turn it off to never use a proxy.
Monitoring mode
Turn on monitoringMode and run the Actor on a schedule with the same shows.
- First check of a show: the episode IDs in its page, its rating count and its episode total are remembered. Nothing is returned for it and nothing is charged; you get a
first-checknote row. - Later runs: each show is read again and compared.
- An episode that was not there before comes back as an
episoderow withisNew: true. - A
showrow comes back when the rating count moved by at leastminRatingCountChange(for shows with 1,000 ratings or more: by at least 3, because the public figure of a large show can differ by 1 from one read to the next), or when the episode total moved by a number that the new episodes found in the page do not explain (episodes were removed, or more were published than the page shows).changedFieldssays which:rating,episode-countor both. - A show with nothing to return is charged as one check and produces no row. If no show had anything, the dataset holds one
no-changenote.
- An episode that was not there before comes back as an
watch narrows this: episodes-only ignores rating changes (the rating count of a large show moves every day), ratings-only does not return new episodes.
What is remembered is what was actually delivered. If the maximum charge of a run is reached before every new episode fits, the ones that did not fit are not remembered and come back in a later run.
Three things to know:
- The page shows only the most recent episodes. If a show publishes more episodes between two runs than the page holds, the older ones of those are not seen as episode rows; the show row then reports the gap (
totalEpisodesChangelarger thannewEpisodesInPage). Run often enough for the shows you watch. - An episode counts as new when its ID was not seen before and it was released after the oldest episode of the previously remembered page. An old episode that reappears because a newer one was removed is therefore not reported as new; an episode published with a release date older than that, or without a readable release date, is not reported either. Shows whose page already lists every episode are exempt from this date rule.
- Shows are remembered one by one on your account, not per list. Adding a show does not reset the others. Do not run two schedules with the same show at the same moment: the remembered state has no locking.
What is charged
episode-returned- each episode row.show-returned- each show row.show-checked- in monitoring mode, each show that was compared and had nothing to return.
Not charged: first monitoring checks, and every note row (see below).
Rows that explain instead of failing
Rows with type: "note" are never charged. Their status says what happened:
status | Meaning |
|---|---|
no-such-show | Spotify answered 404 for this ID (removed, or not a podcast show) |
not-available | Spotify answered with its "not currently available" page: the show is not offered, at least not in the country the page was read from |
invalid-input | The line is not a show link, URI or ID (the note says what it looks like) |
duplicate-input | The same show was already given on an earlier line |
unreadable | The page came back without the show data, or in a form that could not be read |
blocked | Spotify refused the request; the run stops asking and lists what it did not read |
robots-disallowed | Spotify's robots.txt disallows the page, so it was not requested |
first-check | Monitoring: the show was remembered as a starting point |
no-change | Monitoring: nothing was new in any show that was compared |
not-read | Lines the run did not get to, and why |
budget-reached | The run's maximum total charge was reached before every ready row could be delivered |
Limits
- Episodes: only those in the public show page (see above). Not a full archive.
- No audio, no transcripts, no follower counts, no play counts. They are not in the public page, and audio is deliberately not touched.
- Ratings are Spotify's own listener ratings as stated in the page. They are not Apple Podcasts ratings.
- Country: Spotify builds the page for the country of the connection (
pageCountry). A show that is not offered there comes back asnot-available. - Only the public show page (
open.spotify.com/show/<id>) is requested, one page per show, about one request every two seconds, with a User-Agent that identifies this Actor. Spotify's robots.txt is read at the start of every run and each page is checked against it. No login, no Spotify API token, no embed pages. If Spotify stops serving the data in that page, rows come back asunreadablerather than as guesses. - This Actor is not affiliated with, endorsed by or sponsored by Spotify. Spotify's terms of use restrict automated collection from its service; decide for yourself whether your use is permitted before you run it.
Thanks for using this Actor
We build these tools for people who run them every day, and we improve them from what users tell us.
- Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
- Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.
If this Actor saved you time, a short review helps other people find it.