PeerTube icon indicating copy to clipboard operation
PeerTube copied to clipboard

Passing Apple App Store Acceptance

Open okaziya opened this issue 8 months ago β€’ 6 comments

Describe the problem to be solved

At @OwnTube-tv, we're trying to popularize PeerTube and make it a first-grade user experience for the viewers. We want to democratize video distribution so publishers can reach out to their audience without having to resort to broadcasting via American tech giants like YouTube or Facebook. We read the Framasoft blog announcement about the PeerTube mobile app in December and were well aware of potential challenges with Apple, but now we're finally there and facing them ourselves! πŸ™ƒ

Yesterday we submitted our 4 first iOS+tvOS apps for review (XR Tube, Basspistol, Privacy Tube, and Blender Tube on TestFlight) and in the morning I found them all rejected:

ImageImageImageImageImageImage

All rejections cite the same Apple Guideline 5.2.3 - Legal issue:

5.2.3 Audio/Video Downloading: Apps should not facilitate illegal file sharing or include the ability to save, convert, or download media from third-party sources (e.g. Apple Music, YouTube, SoundCloud, Vimeo, etc.) without explicit authorization from those sources. 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.

With respect the PeerTube-OwnTube apps we submitted, they write:

Guideline 5.2.3 - Legal Your app contains content or features that may violate the rights of one or more third parties. Specifically, your app provides potentially unauthorized access to third-party audio or video streaming, catalogs, and discovery services.

Your app and its contents should not infringe upon the rights of another party. In the event your app infringes another party's rights, you are responsible for any liability to Apple because of a claim.

Next Steps To resolve this issue, please attach documentary evidence in the App Review Information section in App Store Connect evidencing that you have all necessary rights or permissions to the third-party audio or video streaming, catalogs, and discovery services in your app. Once we have reviewed your documentation and confirmed its validity, we will proceed with the review of your app.

For some background information, we already took a series of precautionary design decisions way back to mitigate policy troubles with Apple and Google, i.e. only showing local videos from one PeerTube platform per app, excluding federated videos, lives and NSFW content.

How to proceed from here and get through the process? Here's a few mitigation ideas we brainstormed:

  1. Ask PeerTube to include an option to allow CORS from other clients, so a site maintainer can opt in/out of their videos being broadcasted freely
  2. Add support for setting a default CC license for videos on your PeerTube instance (as the video license field is virtually never set to anything else than null/"Unknown" out in the wild, rendering it un-usable)
  3. Draft a Apple-acceptable agreement that a site owner can sign, essentially stating that "Native app X on Apple Store is welcome to download and serve content from my PeerTube instance peertube.example.com"

This is just the first obstacle with Apple publishing. We imagine there could be additional remarks about reporting illegal content et cetera, as new (potentially criminal) video content could be added any in production. But we got to start somewhere! 😁

Describe the solution you would like

We would like PeerTube to ...

  1. consider the mitigation ideas here
  2. share their experience with getting PeerTube iOS app on App Store
  3. add Q&A documentation on how to deal with Apple (and Google) publishing policies

Why we think it's an issue for the PeerTube open source project and community, not just a @OwnTube-tv problem: Any team/organization that want a first-grade end user experience for their viewersβ€” not leave them stuck with the lousy/limited Apple mobile browser experience β€”they'll need to go through the same hurdles of embedding their PeerTube content in a native app, and they will be faced with similar challenges. Solving the obstacles together at the community level instead of team level, it will benefit everyone in the end. 🌟

okaziya avatar Apr 05 '25 10:04 okaziya

How does YouTube manage? Or something like Plex?

LizardWizardGB avatar Apr 09 '25 21:04 LizardWizardGB

If I may add a cent or two: I disagree with a default license, but if there is one, it should be "All Rights Reserved" Don't get me wrong, I know this is FOSS software, and many of the people posting are fine with their content being remixed or used with attribution, but without an explicitly stated license it is assumed that all rights are reserved. To this extent, the "null" field is a license (or lack thereof). To clarify, while Peertube lists "All rights reserved" as a license; it's not. A license allows use beyond what is required. There is another issue with a default license that is not all rights reserved: Once you publish a video with a more lenient license, you can't take it back. And since this is a default, it would be applied to uploads even if you don't finish the upload process (pressing the "publish" button). This can cause you to set the license to a more lenient license than intended. I'm not sure about the semantics, since although the license is too lenient, that video is private. Maybe as long as the video isn't set to public with this lenient license, it wouldn't be legally enforceable? There could be an argument from either side here.

I truly appreciate Peertube, and I want to see it have its own native apps, but I'm not sure that this is what's best.

MadMan247 avatar Apr 15 '25 08:04 MadMan247

@MadMan247 I think your idea here is quite close to what the issue author is fishing for:

If I may add a cent or two: I disagree with a default license, but if there is one, it should be "All Rights Reserved" /.../

If it's "all rights reserved" for your instance that's fine, it's probably a reasonable baseline too at software upgrade from the current optional-license logic. For the ones who prefer a more generous default ("Attribution - Non Commercial - No derivatives", perhaps?), it would be really user friendly to let the site maintainers opt-in for it. Or, even better, offer default license as a setting at the Channel level (still "all rights reserved" as starting point, unless you opt-in for more free license).

All the other legal considerations aside, I think playback by third parties could be worth mentioning as an enabled/disabled feature on this tech info page: https://v.basspistol.org/about/instance/tech I'm imagining a simple checkbox, "Embedding and redistribution by third parties allowed: Yes/No", or even an allowlist or two; "Embedding and redistribution allowed for third party hostnames: blog.<my_hostname>,peertube.my_federation_friend.tv" & "Embedding and redistribution allowed for third party apps: com.videoplayers.your_tube_app,org.framasoft.peertube"

(I understand that we probably don't want to sprinkle new settings left and right, but it would make it a lot more straightforward for any player to know if it's welcome to play videos, while at the same time clearly indicating to Apple/Google reviewers when it's unauthorized use or not.)

mblomdahl avatar Apr 15 '25 15:04 mblomdahl

I do like and appreciate per-channel defaults, kind of like the upload defaults page on YouTube. I had not considered that possibility, and I genuinely think it would be a safe but solid approach. I disagree with instance maintainers being able to decide that default for their users, especially without a very clear EULA. Image

P.S. you can prevent federation. Is this a possible solution to permissions? If you can federate, permission to redistribute (at least via federation) has been given. LMK if I am misunderstanding. I thought you could prevent embeds somewhere, but I can't find it. Image

MadMan247 avatar Apr 16 '25 18:04 MadMan247

Hello πŸ™‚ I'm the person in charge of publishing the application on the stores. In the coming weeks, I plan to write an article on the steps and difficulties encountered during publication. I'll let you know when it's published.

wickloww avatar Apr 17 '25 14:04 wickloww

Hello πŸ™‚ I'm the person in charge of publishing the application on the stores. In the coming weeks, I plan to write an article on the steps and difficulties encountered during publication. I'll let you know when it's published.

Thank you @wickloww! Looking forward to your article. If there's something we can do collaboratively in this space, please reach out at [email protected]; it's a very important topic for the OwnTube PeerTube client! πŸ™‚

okaziya avatar Apr 28 '25 06:04 okaziya

Hi,

Articles have been published :)

  • https://joinpeertube.org/news/flutter-app-dev-feedback-1
  • https://joinpeertube.org/news/flutter-app-dev-feedback-2

Chocobozzz avatar Jun 16 '25 07:06 Chocobozzz