There has been some talk recently (particularly from the podcast host Buzzsprout) that Spotify has overtaken Apple Podcasts in podcast downloads. One way they arrived at this was by excluding any “AppleCoreMedia” 1 user agent strings found in their backend analytics from attributing to the Apple Podcasts app.
While it’s true that the AppleCoreMedia user agent string is not exclusive to Apple Podcasts, it is better thought of as applying equally to all podcast apps on Apple’s platforms. It should therefore not be excluded, but rather allocated according to the percentage of the “Apple Share” each app already receives.
When is AppleCoreMedia sent? Whenever the audio file is fetched directly as the result of an undownloaded playback by an Apple media API (e.g. AVAudioPlayer), in which case the user agent string cannot be easily specified.
In constrast, in cases where the app can fetch the audio file ahead-of-time (e.g. by URLRequest), the user agent can be easily specified (to Overcast or Apple Podcasts etc). For podcast apps, this is a common case, since “Followed” shows are often auto-downloaded.
Ideally, it would be interesting to know - for each app - when AppleCoreMedia (and other user agents) are used in practice.
In order to help get to the bottom of this, I’ve created a new test podcast called Reflections that not only will show you in the show notes which user agent was used to fetch the feed, but each episode will also read back which user agent was used to fetch the audio file!
Here is the feed URL for the Reflections podcast, you should be able to add it to any podcast app:
(e.g. for Apple Podcasts, Library -> Shows -> Edit -> Add a Show by URL…)
User agents for known apps are categorized into shorter names using the excellent User agent list by James Cridland, as raw user agent strings are not exactly radio friendly. : )
The information contained in this test podcast simply reflects a single request and response, it does absolutely no server-side logging or tracking, so if you find something interesting, let us know via email at email@example.com, thanks!
Some findings thus far:
- Apple Podcasts sends AppleCoreMedia when playing an undownloaded episode, which can be quite often when sampling new podcasts, or when “Auto-Download” is disabled.
- Apple Podcasts fetches both the feed and each media file directly from the user’s device.
- Overcast never sends AppleCoreMedia, and always seems to pre-download the file before playback.
- Overcast fetches the media file from the user’s device, but fetches the feed (even for user-added feeds) from a central server.
Modify this page, Discuss this page
AppleCoreMedia/18.104.22.168E5198a (iPhone; U; CPU OS 14_5 like Mac OS X; en_us)↩︎