Hi,
I'm an individual developer in Japan planning a web app with MusicKit JS, and I'd like to confirm my reading of the Apple Developer Program License Agreement, section 3.3.6(D) (MusicKit), before I start building.
The design
- A "host" picks a song. Other people in the same room hear that same song.
- Every user plays it on their own device, through their own Apple Music subscription, in their own MusicKit JS instance. My server never receives, stores, caches, transcodes, or transmits any audio.
- My server only relays control metadata: a song identifier and an approximate playback position, so each client can start near the same point.
- Each user explicitly taps to start playback in their own browser.
- Standard play / pause / skip controls are available to every user.
- Apple Music playback is free for everyone in the app. No paywall, no ads, and no requirement to hand over personal information in order to listen.
My questions
-
3.3.6(D) says "MusicKit Content cannot be synchronized with any other content." I read this as referring to synchronization with other media (for example, using a song as a soundtrack for video or images), and not as prohibiting multiple users independently playing the same song at roughly the same time through their own subscriptions. Is that reading correct?
-
3.3.6(D) says I must not "require payment for or indirectly monetize access to the Apple Music service." If Apple Music playback stays entirely free for all users, and I separately charge hosts for features unrelated to playback (for example audience analytics, custom branding for their room page, and scheduling tools), would that count as indirect monetization of access to the Apple Music service?
-
3.3.6(D) says "users must initiate playback." If a user taps play once and a queue then continues to the next track automatically (ordinary continuous playback), is that acceptable? Or does the user need to tap for each track individually when the host changes the selection?
I'd like to build this correctly from the start, so any guidance is appreciated. If these are better directed to another channel, a pointer would be very welcome.
Thanks, Sho