Add Car Curious - #84
Merged
Merged
Conversation
Car Curious is a podcast player for automotive shows, which surfaces timestamped annotations for the cars, parts and terms mentioned in an episode. iOS app and web player. Two entries, because the two clients are matched by different headers: - apps.json — the iOS app sends "CarCurious/<version> (iOS; ...)" on both its download and its streaming path, so a play is attributed the same way whichever the app chooses. - referrers.json — the web player is a plain <audio> element pointed at the enclosure, so it cannot set a User-Agent and is matched on the Referer. The site sets no Referrer-Policy, so browsers apply the strict-origin-when-cross-origin default and a host sees the bare origin, which is what the example shows. The display name is spaced and the User-Agent token is not, following the 28 existing entries that do the same (All Daf -> ^AllDaf/, Amazon Music -> ^AmazonMusic, BBC iPlayer -> ^BBCiPlayer/). The name is identical in both files so the shared-properties rule in the referrers header applies. Verified with prettier --check and deno test: examples match their own patterns, and neither pattern collides with another entry in either direction.
Contributor
|
looks good re: user-agent, yep Apple added this officially four years ago now (it was possible before then with a non-public header), most/all of the top apps have updated and AppleCoreMedia is not really much of a problem these days or "were gently updated" : ) https://github.com/Automattic/pocket-casts-ios/blame/3e695e7de8436a79cfee53abd0a9a1f1039adc68/podcasts/PlaybackItem.swift#L21 |
Contributor
Author
|
Ok, great, thanks for the additional info and merging! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Car Curious is a podcast player for automotive shows. It surfaces timestamped annotations for the cars, parts and terms mentioned in an episode. There is an iOS app and a web player.
Two entries, because hosts match the two clients on different headers.
src/referrers.json, the web playerThe web player is a plain
<audio>element pointed at the enclosure. It cannot set a User-Agent, so hosts match it on theReferer.You can check this half today. Every episode page serves the enclosure to anonymous visitors, no login:
https://getcarcurious.com/episodes/ep-367-bill-s-thoughts-on-so-cal-month-brian-reed-dkp-ii
Press play. The request goes to
traffic.libsyn.com/...?dest-id=4819480carryingReferer: https://getcarcurious.com/. We set noReferrer-Policy, so browsers apply theirstrict-origin-when-cross-origindefault and Libsyn receives the origin with no path. That is why the example holds an origin rather than a full URL.src/apps.json, the iOS appThe app sends
CarCurious/<version> (iOS; +https://getcarcurious.com)on both its download and its streaming path, so a play reaches you the same way whichever path the app picks.The app ships on TestFlight today. There is no App Store listing for
urlsyet, and no public source for you to check the UA against. If you would rather not carry an entry you cannot verify, I will drop this half and reopen it once we ship. The referrer entry stands on its own. Tell me which you prefer.Notes
I ran
prettier --check src/*.jsonanddeno testlocally. Examples match their own patterns, and neither pattern collides with another entry in either direction.One note on the streaming path, in case it helps you elsewhere. The header has to go into the
AVURLAssetat construction. Otherwise AVFoundation issues its own range requests asAppleCoreMedia, which may explain other iOS apps that surface in your data only some of the time.