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?

DmytroBrovkin commented 4 years ago

Our app update was rejected with same response. We don’t use this library, but our app uses same mechanism of parsing YT streams. Looks like Apple has new validation guidelines for apps with Youtube content. We will have a call with review team in few days. I will post the results after.

Frankenxtein commented 4 years ago

Our app update was rejected with same response. We don’t use this library, but our app uses same mechanism of parsing YT streams. Looks like Apple has new validation guidelines for apps with Youtube content. We will have a call with review team in few days. I will post the results after.

@DmytroBrovkin did you manage to get a call with the app review team? Any specifics behind the rejection?

DmytroBrovkin commented 4 years ago

I still waiting for a call. They said in the message 3-5 business days, which ends this Friday. Will update as soon as have a call.

oososo commented 4 years ago

I still waiting for a call. They said in the message 3-5 business days, which ends this Friday. Will update as soon as have a call.

Hello , Did you receive that call?

DmytroBrovkin commented 4 years ago

CC1F908B-CBA5-4D43-8C6B-B948DAC8ED1E

just got a reply today

dlpigpen commented 4 years ago

I had the same issue yesterday. Apparently, there is a new guideline about streaming services API

oososo commented 4 years ago

CC1F908B-CBA5-4D43-8C6B-B948DAC8ED1E

just got a reply today

What would apple say? I hope your app will pass the review.If not, I want to know what 's the problem.

MhmdSalah commented 4 years ago

Does anybody know how can they detect the presence of this lib in the app? is there a way to hide it? They did not even open my app udpate (i am sure because i made the app crash upon initial run and they rejected for this reason) so there is some kind of a scan software that detects this lib. I tried: change all files names and class names. delete all comments. remove all mentions of youtube. If you guys can find something, please tell.

darkForestCat commented 4 years ago

There is an official way to present youtube video

What would apple say? I hope your app will pass the review.If not, I want to know what 's the problem.

It is not the official way of presenting YouTube videos.Hmmmmm what could be the problem?))

DmytroBrovkin commented 4 years ago

Just had a quick chat with owners of Musi app. They have exactly same situation and can’t bypass the Apple Review. I think it is the end :)

MhmdSalah commented 4 years ago

Guys i have a suggestion. Apple can't be scanning every app individually by reverse engineering. We have to scrap this lib to make it harder for them to find it.

My suggestion is a pull request with the following changes:

If anybody is able to make this change, maybe it will be very easy to test by someone and then we can find a solution for everybody.

DmytroBrovkin commented 4 years ago

Guys i have a suggestion. Apple can't be scanning every app individually by reverse engineering. We have to scrap this lib to make it harder for them to find it.

My suggestion is a pull request with the following changes:

  • delete all .plist files, they are not hidden in ipa files during compilation
  • change all .h and .m file names and class names, e.g. find and replace XCDYouTube to xStreamLib or someing
  • delete all comments
  • delete any mention of youtube in strings inside the lib, and change it to string variable with setters so we can grab these values from a remote link and set them in runtime
  • there could be more ways to help, maybe change some stuff in .h files to scrap their look after compilation

If anybody is able to make this change, maybe it will be very easy to test by someone and then we can find a solution for everybody.

We don’t use this library, and still blocked. Renaming files won’t help.

MhmdSalah commented 4 years ago

We don’t use this library, and still blocked. Renaming files won’t help.

Then your code has something in common with this lib. Could you please check if your code mentions any of these links in a string: -https://www.youtube.com/get_video_info -https://www.googleapis.com/youtube/ -https://developers.google.com/youtube/

darkForestCat commented 4 years ago

Guys i have a suggestion. Apple can't be scanning every app individually by reverse engineering. We have to scrap this lib to make it harder for them to find it. My suggestion is a pull request with the following changes:

  • delete all .plist files, they are not hidden in ipa files during compilation
  • change all .h and .m file names and class names, e.g. find and replace XCDYouTube to xStreamLib or someing
  • delete all comments
  • delete any mention of youtube in strings inside the lib, and change it to string variable with setters so we can grab these values from a remote link and set them in runtime
  • there could be more ways to help, maybe change some stuff in .h files to scrap their look after compilation

If anybody is able to make this change, maybe it will be very easy to test by someone and then we can find a solution for everybody.

We don’t use this library, and still blocked. Renaming files won’t help.

do you use the official way of showing YouTube videos?

Frankenxtein commented 4 years ago

Just had a quick chat with owners of Musi app. They have exactly same situation and can’t bypass the Apple Review. I think it is the end :)

Did Apple call you? What did the Apple representative say?

Frankenxtein commented 4 years ago

do you use the official way of showing YouTube videos?

The Official player is based on javascript i think and defies the purpose of this library.

darkForestCat commented 4 years ago

do you use the official way of showing YouTube videos?

The Official player is based on javascript i think and defies the purpose of this library.

"We don’t use this library, and still blocked. Renaming files won’t help." - He sad that he does not use this library, so I was curious what YouTube library does he use.

DmytroBrovkin commented 4 years ago

We’ve created our own library in Swift, based on youtube-dl python code.

darkForestCat commented 4 years ago

Try using official library

cujo30227 commented 4 years ago

I’m using using the official implementation in my app https://developers.google.com/youtube/v3/guides/ios_youtube_helper
Received the same rejection today, and appealing it now ..

darkForestCat commented 4 years ago

@cujo30227 let us know please how would go the process.

rockylive commented 4 years ago

please update this issue asap you get a reply. Thanks

DmytroBrovkin commented 4 years ago

just had a call with apple. Basically, they don’t really care what API you use to playback content from Youtube. They need a legal document from Google, that would confirm your app can stream their content. This applies to all content providers like Youtube, Soundcloud, Vmeo etc.

DmytroBrovkin commented 4 years ago

270C988F-6EFD-41B9-829D-44E53DB19B61

Frankenxtein commented 4 years ago

just had a call with apple. Basically, they don’t really care what API you use to playback content from Youtube. They need a legal document from Google, that would confirm your app can stream their content. This applies to all content providers like Youtube, Soundcloud, Vmeo etc.

Where the hell am i going to get that document. A large company like Google won't give a damn about some tiny app developer. :)

kdk0 commented 4 years ago

Uh... Does this mean any app that shows embedded Youtube video now needs to submit some legal document from Youtube?

theirfanshah commented 4 years ago

Hello,

I'm also facing same rejection, I replied Apple Review Team in Resolution Center, and got replied today, and yes they are asking for documentary evidence.

Reply from Apple:

`Hello,

Thank you for your response.

During our review we have found that your app provides a curated list of YouTube videos that users can watch and listen to. We understand that the YouTube API is public, however the App Store Review Guidelines state that you need to provide documentation that demonstrates that you have permission to stream the videos.

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.

Best regards,

App Store Review`

How can I get document from YouTube, and why they will provide document to individuals ?

huynguyencong commented 4 years ago

I have the same problem. Does anyone know how to find the document that Apple require?

MhmdSalah commented 4 years ago

Hello again everybody, I can confirm, removing this lib and submitting got the new version approved, but it took apple one full week of "in review" time to get it approved. If i had to guess, i think they are doing some kind of de compiling to investigate the app, and they make the review process longer to investigate thoroughly.

huynguyencong commented 4 years ago

Hello again everybody, I can confirm, removing this lib and submitting got the new version approved, but it took apple one full week of "in review" time to get it approved. If i had to guess, i think they are doing some kind of de compiling to investigate the app, and they make the review process longer to investigate thoroughly.

@MhmdSalah it means you have to remove Youtube feature from your app? If so, it is not a solution for this issue.

MhmdSalah commented 4 years ago

Hello again everybody, I can confirm, removing this lib and submitting got the new version approved, but it took apple one full week of "in review" time to get it approved. If i had to guess, i think they are doing some kind of de compiling to investigate the app, and they make the review process longer to investigate thoroughly.

@MhmdSalah it means you have to remove Youtube feature from your app? If so, it is not a solution for this issue.

Nope! i managed to create a solution. As of now, my solution is not as good as having this lib inside the guts of my app, but it is working. It will not be suitable for every app because my app is a special condition. Best of luck to you.

chaocharleswang commented 4 years ago

Hello again everybody, I can confirm, removing this lib and submitting got the new version approved, but it took apple one full week of "in review" time to get it approved. If i had to guess, i think they are doing some kind of de compiling to investigate the app, and they make the review process longer to investigate thoroughly.

@MhmdSalah it means you have to remove Youtube feature from your app? If so, it is not a solution for this issue.

Nope! i managed to create a solution. As of now, my solution is not as good as having this lib inside the guts of my app, but it is working. It will not be suitable for every app because my app is a special condition. Best of luck to you.

@MhmdSalah Were you requested to provide some documents proof? How did you reply? Thx.

darkForestCat commented 4 years ago

Hello again everybody, I can confirm, removing this lib and submitting got the new version approved, but it took apple one full week of "in review" time to get it approved. If i had to guess, i think they are doing some kind of de compiling to investigate the app, and they make the review process longer to investigate thoroughly.

@MhmdSalah it means you have to remove Youtube feature from your app? If so, it is not a solution for this issue.

Nope! i managed to create a solution. As of now, my solution is not as good as having this lib inside the guts of my app, but it is working. It will not be suitable for every app because my app is a special condition. Best of luck to you.

So are you using official YouTube library?And how did you managed the documentation problem?

jlott1 commented 4 years ago

I have not updated my app since these new changes by Apple but I plan on pushing an update this week. I may get the same response. Just FYI, I did get a similar rejection from Apple before and all I had to do was mention that I was a part of the Google Developer Program for developing for YouTube API and provided my Google Client ID as proof. That's what worked for me in the past, but I'll let you know what happens after my next update.

kdk0 commented 4 years ago

I was approved a few days ago with this library included in my app. I think maybe it depends on each reviewer...

chaocharleswang commented 4 years ago

Are your app approved for the first submission?


From: Ki Kim notifications@github.com Sent: Friday, June 26, 2020 4:39:09 PM To: 0xced/XCDYouTubeKit XCDYouTubeKit@noreply.github.com Cc: Charles chaocharleswang@gmail.com; Comment comment@noreply.github.com Subject: Re: [0xced/XCDYouTubeKit] App Store Rejection (#485)

I was approved a few days ago with this library included in my app. I think maybe it depends on each reviewer...

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/0xced/XCDYouTubeKit/issues/485#issuecomment-650415055, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABRRLVYSRBPCTHII6ZQOB3DRYUIP3ANCNFSM4N6KZAAQ.

kdk0 commented 4 years ago

Yeah it was first submission.

darkForestCat commented 4 years ago

I was approved a few days ago with this library included in my app. I think maybe it depends on each reviewer...

maybe it depends on the type of the app...

oososo commented 4 years ago

I was approved a few days ago with this library included in my app. I think maybe it depends on each reviewer...

maybe it depends on the type of the app...

what 's the type of your app?

kdk0 commented 4 years ago

Mine is shopping info app - https://apps.apple.com/us/app/pebble-fun-beauty-shopping/id1519076154

huynguyencong commented 4 years ago

Mine is shopping info app - https://apps.apple.com/us/app/pebble-fun-beauty-shopping/id1519076154

Yeah, I think only streaming app is rejected by Apple. Your app is shoping app, although it uses this library, but streaming is not the main function.

darkForestCat commented 4 years ago

Is anyone who has passed the review process and has sent the documents to the App Review Team?

Frankenxtein commented 4 years ago

I have not updated my app since these new changes by Apple but I plan on pushing an update this week. I may get the same response. Just FYI, I did get a similar rejection from Apple before and all I had to do was mention that I was a part of the Google Developer Program for developing for YouTube API and provided my Google Client ID as proof. That's what worked for me in the past, but I'll let you know what happens after my next update.

Was your update approved?

perepechin commented 4 years ago

I don't use this library, but I am also using embedded YouTube videos in my app for about 2-3 months, and my latest app update was rejected by Apple because of the same reason today - "5. 2.3 Legal: Intellectual Property - Audio/Video Downloading". My app doesn't allow to download videos, but the second part of 5.2.3 also includes "streaming". This is pain.. I will provide an update here if I find a solution.

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. Documentation must be provided upon request.

perepechin commented 4 years ago

I didn't find a solution at this point, and decided to completely remove YouTube features from my iOS app. I don't have any issues with the same app in the Google Play. for example, in my case, the app was rejected even when I removed ability to play YouTube videos via YouTube IFrame API directly inside the app, but I was still displaying the video thumbnails in my app. so now I don't display thumbnails, and I don't allow to play video inside the app via YouTube IFrame API (btw this way we can play only videos for which "Allow Embedding" is set to Yes, and I still don't know how this breaks 5.2.3 section of their guidance), and I only provide a link to YouTube video, because playing videos is not a main thing in my app, so this is not a big issue in my case, but I still cannot agree with these things and I still want to find a nice solution.

for example, I see that Twitter embeds videos without any issues, and it is unclear why the same things cannot be implemented in other apps.

if "Allow Embedding" is set to Yes for a video - this video can be embedded on the 3rd party sites and apps without any permissions from the author of the user, see "YouTube Video Permission and Rights" section in Embedded YouTube Videos and Copyright Infringement article

if you sell your app and YouTube integration is main selling point - in that case it is very possible that these things are not allowed, but in my case all YouTube features are available even in the free version of the app, and I don't display any ads in my app as well :/

perepechin 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 :/

perepechin commented 4 years ago

fun tweets for this topic: https://twitter.com/tN023/status/1291497973394935809?s=20 and https://twitter.com/PhilLB1239/status/1291503688528388098?s=20

perepechin 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.

jlott1 commented 4 years ago

Hello,

I'm also facing same rejection, I replied Apple Review Team in Resolution Center, and got replied today, and yes they are asking for documentary evidence.

Reply from Apple:

`Hello,

Thank you for your response.

During our review we have found that your app provides a curated list of YouTube videos that users can watch and listen to. We understand that the YouTube API is public, however the App Store Review Guidelines state that you need to provide documentation that demonstrates that you have permission to stream the videos.

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.

Best regards,

App Store Review`

How can I get document from YouTube, and why they will provide document to individuals ?

I would suggest that you that keep disputing their rejection and show them the google developers TOS.
https://developers.google.com/terms

denkeni 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.