Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VIDEO NOT PLAYING (CHECK THIS BEFORE CREATING NEW) #548

Open
NikKovIos opened this issue Aug 6, 2021 · 23 comments
Open

VIDEO NOT PLAYING (CHECK THIS BEFORE CREATING NEW) #548

NikKovIos opened this issue Aug 6, 2021 · 23 comments

Comments

@NikKovIos
Copy link

NikKovIos commented Aug 6, 2021

Ok, every new guy think that it's good to start a new thread about that youtube is not playing. I decided to summarize and create one issue to prevent creating others.

Here are related issues:
#527
#523
#515
#547
#544
#543
#541
#534
#531
#530
#529

Top solutions from them:
#526
#547 (comment)
#545
#541 (comment)
#530 (comment)

But I think that the problem is because the youtube decided to prevent connecting with them without authentication. So now we need to use youtube API Key.
How to create it: https://www.slickremix.com/docs/get-api-key-for-youtube/
Google docs about it: https://developers.google.com/youtube/v3/getting-started?hl=en_US
Also take a look: https://github.com/google/google-api-objectivec-client-for-rest/search?q=youtube
PR with implementing it: #545
However I think in this PR you need to create OWN api key and set in INNERTUBE_API_KEY property.

@gonzo-oin
Copy link

gonzo-oin commented Aug 8, 2021

Thank you for creating this issue.
I follow #545 by using the armendh's fork

pod 'XCDYouTubeKit', git: '[email protected]:armendh/XCDYouTubeKit.git', branch: 'master'

I created an API key following your explanation link and call setInnertubeApiKey before anything else and it's working great. I'm in Europe if that matter.

        XCDYouTubeClient.setInnertubeApiKey("MY_API_KEY")

Next step should be create an PR with a README update no ?

@NikKovIos
Copy link
Author

NikKovIos commented Aug 11, 2021

Next step should be create an PR with a README update no ?

Yep
And we need someone, who can merge this MR.

@NikKovIos
Copy link
Author

pod 'XCDYouTubeKit', :git => 'https://github.com/armendh/XCDYouTubeKit', :branch => 'master', :commit => '651a6a51c695c5819eb51ba2f98d0b64094315b9'

https://console.cloud.google.com/apis/credentials?project=**projectName**
image

XCDYouTubeClient.setInnertubeApiKey(**key**)

@tungdangplus
Copy link

tungdangplus commented Aug 19, 2021

Thank @NikKovIos .
I tried your solution. It's working for me. But it doesn't work with livestream video.
Can you check it?

@NikKovIos
Copy link
Author

@tungdangplus sorry, don't have time for it. By the way, i'm not a owner of the repo, just a regular senior ios dev. You can find a solution by yourself and put it here. Just spend time.

@ryanfrancesconi
Copy link

Thanks for this,
Ryan

@dcristolovean
Copy link

the problem is this will work... until it won't again. Not the nicest thing to happen when you have dozens of apps in production using it and all clients suddenly can't access some YT content.
Happened at least twice already, so it's better to avoid this lib altogether if you're doing any real production work and just go for the official lib.

@gonzo-oin
Copy link

@dcristolovean I agree with you but there is no official SDK available on tvOS. What to do then ?

@dcristolovean
Copy link

well, yeah, then you're stuck. My advice is for the rest of 99% of the devs that don't use tvOS.

@NikKovIos
Copy link
Author

@dcristolovean give a link for the official lib please.

@dcristolovean
Copy link

https://developers.google.com/youtube/v3/guides/ios_youtube_helper

"Lib" might be too much to say, but after you play a bit with it, you can fit in it any design and make it behave like needed. You gotta face that YT will not just give you urls to play the content and will require a webview with their content inside in the future.
I didn't want to use this myself, preferred to get the URLs with xcdyoutubekit and then play them myself, but after 2-3 big failures over time, when the lib didn't work anymore and I have to republish tens of apps, I gave up on it and just moved to the webview approach.

@dcristolovean
Copy link

@dcristolovean I agree with you but there is no official SDK available on tvOS. What to do then ?

Actually, webviews are the way to go there too. Considering that's what youtube_helper does anyway, you can directly use that one or create one yourself. I never coded for tvOS but I'm sure there's a way.

@gonzo-oin
Copy link

I never coded for tvOS but I'm sure there's a way.

Sadly, I don't think so: youtube/youtube-ios-player-helper#148

@dcristolovean
Copy link

dcristolovean commented Aug 31, 2021

kinda old discussion, 2015.... anyway, another interesting thing:

"It's against the ToS because it won't display the ads."

That's why I said that at some point, surely you won't be able to just get a video url from YT and play it. There are so many reasons why they won't let you do that, I don't see a bright future for XCDYoutube.

@dcristolovean
Copy link

defagos commented on Jan 22, 2016

You should really check out XCDYouTubeKit, it works great and supports tvOS as well.
@mikerz
mikerz commented on Jan 22, 2016

@defagos That's not a good recommendation, as it is against YouTube's terms of service. It bypasses their player and analytics. It should not be used in any production code beyond some fun prototype.

Exactly what I'm saying.

@weiran
Copy link

weiran commented Sep 14, 2021

For those looking for an alternative for tvOS, you can link to a video directly on the YouTube app with this URL scheme: youtube://watch/videoID

@Anvar102b
Copy link

pod 'XCDYouTubeKit', :git => 'https://github.com/armendh/XCDYouTubeKit', :branch => 'master', :commit => '651a6a51c695c5819eb51ba2f98d0b64094315b9'

https://console.cloud.google.com/apis/credentials?project=**projectName**
image

XCDYouTubeClient.setInnertubeApiKey(**key**)

From today today there problems with playing videos with this solution

@NikKovIos
Copy link
Author

@Anvar102b place any logs. What is broken? What error?

@alexisbronchart
Copy link

Now I have Type 'XCDYouTubeClient' has no member 'setInnertubeApiKey'. I couldn't find any declaration of it? Where is it supposed to be defined?

@secret3579
Copy link

@NikKovIos Thank you so much, it works well.
I just wondering why the commit (651a6a5) hasn't been merged yet.

@gonzo-oin
Copy link

@secret3579 It should be documented before merging. If you have time to contribute 😉

@NikKovIos
Copy link
Author

It would be great if the owner of repo would do something. The community already did a lot!

@KODIKAS-NL
Copy link

@tungdangplus I also had issues with livestreams, I fixed my issues here -> https://github.com/KODIKAS-NL/XCDYouTubeKit.git
It also seems to work without setting the API key.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants