7
votes

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

3
Yup also happened to me.I manually added the files and changed the path of file in the youtubeplayer file :/. Now found a better solution.Muhammad Zohaib Ehsan
@MuhammadZohaibEhsan Seems like you just have to set the version number to 0.1.4 and it works without any additional steps.LuckyLuke

3 Answers

3
votes

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'
3
votes

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.

1
votes

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.