0
  if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"https://www.youtube.com/watch?v=VideoID"]]) {

        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.youtube.com/watch?v=VideoID"]];
    }

Output : -canOpenURL: failed for URL: "youtube://www.youtube.com/watch?v=UFccvtrP1d8" - error: "This app is not allowed to query for scheme youtube"

Ramkumar Paulraj
  • 1,841
  • 2
  • 20
  • 40

2 Answers2

7

try this

In iOS 9 you must whitelist any URL schemes your App wants to query in Info.plist under the LSApplicationQueriesSchemes key (an array of strings):

add string as youtube

for example

<key>LSApplicationQueriesSchemes</key>
<array>
 <string>youtube</string>
   </array>

secondary check that the youtube app is available or not in your device

for example

 NSString *Name = @"VideoID";

NSURL *linkToApp = [NSURL URLWithString:[NSString stringWithFormat:@"youtube://watch?v=%@",Name]]; // I dont know excatly this one 
NSURL *linkToWeb = [NSURL URLWithString:[NSString stringWithFormat:@"https://www.youtube.com/watch?v=%@",Name]]; // this is correct


if ([[UIApplication sharedApplication] canOpenURL:linkToApp]) {
    // Can open the youtube app URL so launch the youTube app with this URL
    [[UIApplication sharedApplication] openURL:linkToApp];
}
else{
    // Can't open the youtube app URL so launch Safari instead
    [[UIApplication sharedApplication] openURL:linkToWeb];
}

for more information about play Youtube Video

Anbu.Karthik
  • 82,064
  • 23
  • 174
  • 143
0

Nowadays (xCode 14.2) you will need to add "Queried URL Schemes" with "youtube" as one of its items on info.plist.

Nowadays you will need to add "Queried URL Schemes" with "YouTube" as one of the items

Monza
  • 2,304
  • 1
  • 10
  • 8