Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 512
LuckyLuke Avatar asked Dec 12 '15 19:12

LuckyLuke


3 Answers

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'
like image 194
JAL Avatar answered Oct 31 '22 20:10

JAL


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.

like image 26
flame3 Avatar answered Oct 31 '22 18:10

flame3


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.

like image 26
Marimuthu Avatar answered Oct 31 '22 18:10

Marimuthu