0xced / XCDYouTubeKit

YouTube video player for iOS, tvOS and macOS
MIT License
2.92k stars 627 forks source link

App Store Rejection #485

Closed Frankenxtein closed 3 years ago

Frankenxtein commented 4 years ago

An update to my App got rejected today. Here's the message sent by Apple.

From Apple

  1. 2.3 Legal: Intellectual Property - Audio/Video Downloading 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.

Has anyone faced this issue lately? Is this because of the library? What solutions do anyone suggest?

SoneeJohn commented 4 years ago

btw I think that this issue can be closed, because it doesn't relate to this XCDYouTubeKit player and even if this player will start using YouTube IFrame API it will not help at all :/

I am going to leave this open for the time being because I believe it provides useful information to those who might be use this library in an app they plan to publish on the App Store.

Frankenxtein commented 4 years ago

@denkeni How did the YouTube API Compliance Audit approach go? Anything new you might want to share.

endavid commented 4 years ago

I submitted a game and I do not use any streaming services and my app got rejected because of this Guideline 5.2.3 as well. I suspect it's because I have a WebView in the game to look up word definitions (it's a word puzzle game). I've set NSAllowsArbitraryLoads to false, under NSAppTransportSecurity in the Plist.info file, and whitelisted the sites that I used for definitions, but I got rejected again. One of the whitelisted sites is Google Translate. I suspect it has to do with Google URLs, but I'm trying things blindly unless they aren't more explicit.

I have 3 games using exactly the same sites and they didn't get rejected. I do not stream any audio or video, so this is really frustrating. I left a message to Apple after the last rejection asking if they could explain exactly what's wrong, but who knows when they reply.

Frankenxtein commented 4 years ago

I found this article Complying with YouTube's Developer Policies and in this article I found info that it is possible to apply for an API Compliance Audit.

I didn't try to apply for an API Compliance Audit, but I am going to do this, and then I will let you know the results.

This library clearly violates YouTube TOS as it does not use the official iFrame player as recommended by google, i do not think google will approve the api compliance audit?

denkeni commented 4 years ago

@denkeni How did the YouTube API Compliance Audit approach go? Anything new you might want to share.

Unfortunately, after finishing the process, the YouTube API Compliance Team only suggested going to https://support.google.com. It turned out that process only deals with YouTube API Quota extension.

This issue exists even if you're using the official YouTube SDK. And Apple insisted that every third-party service should only be used in your app with explicit legal authorization. 😕

I encourage anyone here to leave a comment on https://github.com/youtube/youtube-ios-player-helper/issues/399, the same issue on the official YouTube SDK. Or anyone who found the way to contact YouTube Legal for such authorization would share their experience.

OutRunner commented 4 years ago

I really hope Apple aren't going to prevent the use of this library, I have an Apple TV app that uses it and since Apple TV doesn't have a web browser I can't use the JS library or iframe...

fangyuxi commented 4 years ago

I also used this SDK to publish several apps that can play Youtube videos. If the download feature is not provided, and the video is only played online in your app, although this is not in compliance with the Youtube Terms, it will be allowed by Apple's review. You just can't include download feature.

@Frankenxtein @DmytroBrovkin

Frankenxtein commented 4 years ago

I also used this SDK to publish several apps that can play Youtube videos. If the download feature is not provided, and the video is only played online in your app, although this is not in compliance with the Youtube Terms, it will be allowed by Apple's review. You just can't include download feature.

@Frankenxtein @DmytroBrovkin

When was the last time you pushed an update using this SDK? AFAIK, this rejection started only 4 or 5 months back only.

My app have don't have any download feature whatsoever. Could it be that the buffering of video is giving the impression of downloading to the reviewer? As, the video is likely to keep up playing, unless the buffer is empty even when WiFi/Cellular data is turned off?

fangyuxi commented 4 years ago

@Frankenxtein Last Month

I have been developing such apps for several years. As long as the download featured is not included, it may always pass Apple's review normally. Has it started to require a contract for online video in the past month?

Frankenxtein commented 4 years ago

@Frankenxtein Last Month

I have been developing such apps for several years. As long as the download featured is not included, it may always pass Apple's review normally. Has it started to require a contract for online video in the past month?

My update was rejected 3x, with the same reason as mentioned on the beginning of this thread. Like i said, there is no download feature in my app.

fangyuxi commented 4 years ago

@Frankenxtein

I just checked the guide. Apple updated the 5.2.3 and added a new line: playing online videos may also require a contract. This line was not included before.

diepox commented 4 years ago

What about this app (SnapTube): https://apps.apple.com/az/app/snaptube-lite/id1516145474 It has even the video DOWNLOADING option, and yeah from Youtube!

App Review Team is drunk 🥴

fangyuxi commented 4 years ago

@diepox This is incredible, even the screenshot of this app is from Android.

jlott1 commented 4 years ago

I would suggest that you that keep disputing their rejection and show them the google developers TOS.

No, it would not work. Even the App Review Board rejected my appeal with Google Developers TOS presented.

Still in the process of YouTube's API Compliance Audit mentioned above, and it looks promising as the solution.

Try this link then. https://developers.google.com/youtube/terms/api-services-terms-of-service

I've been app reviewed many times.
One rule about using YouTube videos was that I needed to make sure there was a YouTube link overlaid on the video that points to the original content that can be played in a browser. You also cannot display ads over YouTube content or make money off of the content itself but can make money from other features that are not tied to the content. You may have already done this. But if you have a Google developers ID then you are allowed use of YouTube API services through those terms of service. YouTube would not give developers access to their video API unless they wanted you to play their videos (go here and search for "embed" https://www.youtube.com/t/terms) . But the iFrame player is very buggy and hasn't been maintained in years.

I hope this information helps in some way.

Frankenxtein commented 4 years ago

I would suggest that you that keep disputing their rejection and show them the google developers TOS.

No, it would not work. Even the App Review Board rejected my appeal with Google Developers TOS presented. Still in the process of YouTube's API Compliance Audit mentioned above, and it looks promising as the solution.

Try this link then. https://developers.google.com/youtube/terms/api-services-terms-of-service

I've been app reviewed many times. One rule about using YouTube videos was that I needed to make sure there was a YouTube link overlaid on the video that points to the original content that can be played in a browser. You also cannot display ads over YouTube content or make money off of the content itself but can make money from other features that are not tied to the content. You may have already done this. But if you have a Google developers ID then you are allowed use of YouTube API services through those terms of service. YouTube would not give developers access to their video API unless they wanted you to play their videos (go here and search for "embed" https://www.youtube.com/t/terms) . But the iFrame player is very buggy and hasn't been maintained in years.

I hope this information helps in some way.

No luck so far, i sent them a document attaching screenshots from the link you mentioned and explain the terms as well. Even attached the traffic status of my YouTube api key to be rejected nonetheless.

denkeni commented 4 years ago

Try this link then. https://developers.google.com/youtube/terms/api-services-terms-of-service

I've been app reviewed many times.

I have tried that link too, and it didn't work. App Review has made it clear that they want legal documentary evidence of authorization, but we still don't know where to get that.

My app has been on the App Store for over 2 years, with many updates passed. Still get this rejection recently. Another example is Movist, and they just gave up.

One of the misery of App Store Review is that, even if you get passed this time, it doesn't mean you're doing right. It's just they don't care about it this time. App Store Review may just look at your app and reject it in any future updates, for the reason they care. You're in good luck if not being rejected.

trial commented 4 years ago

I passed the app review. 1.I did not mention capability of youtube play function

  1. a lot of apps are submitted for iOS 14 update, so maybe the review is cursory.
tungdangplus commented 4 years ago

I passed the app review. 1.I did not mention capability of youtube play function

  1. a lot of apps are submitted for iOS 14 update, so maybe the review is cursory.

Can you give the link to your app pls.

Brookes1r commented 3 years ago

I got rejected and passed after I challenged there rejection.

darkness51 commented 3 years ago

@Brookes1r what did you argument to challenge the rejection?

baptisteArno commented 3 years ago

@Brookes1r +1, what was your arguments?

alanwjlu commented 3 years ago

@Brookes1r +1 what was your arguments?

denkeni commented 3 years ago

I've confirmed that App Store Review has revised their internal policy to approve 3rd party apps for YouTube streaming, just give them YouTube API Services Terms of Service. More details here: https://github.com/youtube/youtube-ios-player-helper/issues/399#issuecomment-867539604

leevinh3291 commented 3 years ago

I've confirmed that App Store Review has revised their internal policy to approve 3rd party apps for YouTube streaming, just give them YouTube API Services Terms of Service. More details here: youtube/youtube-ios-player-helper#399 (comment)

@denkeni just tried but no luck. Review team still rejects my app even i put Youtube ToS in review note. :(