LuckyLuke
LuckyLuke

Reputation: 49097

Unable to embed YouTube video with YTPlayerView NSCocoaErrorDomain Code=258

Embedding YouTube videos with YTPlayerView doesn't work. It only gives me this error in the log:

2015-12-12 20:19:45.229 Wax-room[8545:3426005] Received error rendering template: Error Domain=NSCocoaErrorDomain Code=258 "The file name is invalid."

So I Googled it and it obviously has something to do with "YTPlayerView-iframe-player.html" is missing. I have tried all the locations suggested but either they are wrong or I am doing something wrong.The documentation is so bad on using it with Swift (2.x), Cocoapods and iOS 9.

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

There is no Assets folder in the pod either.

Just stumbled over this:

The issue is that the YTPlayerView-iframe-player.html file is not being copied over anymore. I reverted back to 0.1.4 and now I see the html page and it works again https://github.com/youtube/youtube-ios-player-helper/issues/160

Its a bug in version 0.1.5 which is the latest. Changed to 0.1.4 and it works now. Check this: https://github.com/youtube/youtube-ios-player-helper/issues/157

Upvotes: 7

Views: 2415

Answers (4)

Alejandro S
Alejandro S

Reputation: 27

I changed the pod name in the Podfile from: pod 'youtube-ios-player-helper' (that is what the official documentation tells you to do)

To: pod 'youtube-ios-player-helper-swift'

I also had to change the import to youtube_ios_player_helper_swift on my files, and some methods have slightly different names.

I tried most of the answers above to no avail. I would just get a white rectangle for a view. Hope this works for you.

(As of Nov 2021, pod version 1.1 of the pod 'youtube-ios-player-helper-swift')

Upvotes: 0

flame3
flame3

Reputation: 2992

The changes for Podfile didn't help me.

Finally I made it work in these steps.

  1. Remove youtube-ios-player-helper from Podfile
  2. Run 'pod update'
  3. Now you have cleaned up the pod for youtube-ios-player-helper. Now drag YTPlayerView.m, YTPlayerView.h to the project and select "copy files if needed". Copy the YTPlayerView-iframe-player.html to the project folder and add it into the "Supporting Files" group.
  4. In YTPlayerView.m Change from this:

NSString *path = [[NSBundle mainBundle] pathForResource:@"YTPlayerView-iframe-player" ofType:@"html" inDirectory:@"Assets"];

To: NSString *path = [[NSBundle mainBundle] pathForResource:@"YTPlayerView-iframe-player" ofType:@"html"];

I have tested this in my mobiles and it works well.

Upvotes: 3

Marimuthu
Marimuthu

Reputation: 447

Add "Assets.bundle" included in "youtube-ios-player-helper" folder(after unzipping the project folder from Git) into your xcode project. This fixed the issue for me.

Upvotes: 1

JAL
JAL

Reputation: 42479

Rather than rolling back to version 0.1.4, you could manually add the YTPlayerView-iframe-player.html to your Xcode project (or the Cocoapods project/target), or point Cocoapods at the master branch:

pod 'youtube-ios-player-helper', :git=>'https://github.com/youtube/youtube-ios-player-helper', :commit=>'head'

Upvotes: 3

Related Questions