Apple rejected RadioRetro 1.0 (build 5) under Guideline 5.2.3. Today I replied in Resolution Center. Here is what I sent, and what I learned about proof of content rights.
Guideline 5.2.3 is about audio and video. It says apps should not "download media from third-party sources (such as Apple Music, YouTube, SoundCloud, Vimeo, etc.) without explicit authorization from those sources." It also says: "Streaming of audio/video content may also violate Terms of Use, so be sure to check before your app accesses those services. Authorization must be provided upon request."
Apple can ask for authorization. So my reply shows where the content comes from.
How RadioRetro works:
Station search and nearby discovery come only from the Radio Browser API. It is public and run by its community. Its docs say: "You may use it in free and non free software."
Audio plays from each station's own published stream URL. AVPlayer on the phone opens that URL. I run no audio server, proxy, cache, or transcoder. I use no Spotify, TuneIn, Apple Music, or YouTube catalog. Users can also paste their own stream URL.
What I sent:
1. An architecture note: App, then Radio Browser API, then AVPlayer, then the station's stream server.
2. PDFs of the Radio Browser API and usage pages.
3. A rights statement. The Radio Browser permission covers the directory. Each stream stays with its station. I do not claim that I own the audio of every station.
4. A contact for rights holders who want a station removed.
I built the reply drafts with a Cursor agent.
The review is pending. I do not know the result yet.
What I learned:
Before you submit, write down where each piece of content comes from and the permission for it. Put an architecture note and a rights-holder contact in your App Review notes.
I plan to add this note to the review notes for every future RadioRetro build.