Skip to content

Commit

Permalink
Merge branch 'release/2.7.3'
Browse files Browse the repository at this point in the history
  • Loading branch information
SoneeJohn committed Jan 18, 2019
2 parents ceb082d + b645719 commit 4dc4119
Show file tree
Hide file tree
Showing 47 changed files with 923 additions and 898 deletions.
4 changes: 2 additions & 2 deletions .jazzy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ source_directory: XCDYouTubeKit
framework_root: .
umbrella_header: XCDYouTubeKit/XCDYouTubeKit.h
module: XCDYouTubeKit
module_version: 2.7.2
module_version: 2.7.3

author: Cédric Luthi
author_url: https://twitter.com/0xced

readme: README.md
github_url: https://github.com/0xced/XCDYouTubeKit
github_file_prefix: https://github.com/0xced/XCDYouTubeKit/tree/2.7.2/XCDYouTubeKit
github_file_prefix: https://github.com/0xced/XCDYouTubeKit/tree/2.7.3/XCDYouTubeKit
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
#### Version 2.7.3

* Adaptation to YouTube API change. (#419, #422. #421)
* Fix JavaScript exception: ReferenceError (#418, #420)

#### Version 2.7.2

* Adaptation to YouTube API change. (#417)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -760,7 +760,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 2.7.2;
CURRENT_PROJECT_VERSION = 2.7.3;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
Expand Down Expand Up @@ -804,7 +804,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 2.7.2;
CURRENT_PROJECT_VERSION = 2.7.3;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,19 @@
"body" : "",
"error" : {
"code" : -1009,
"domain" : "NSURLErrorDomain",
"localizedDescription" : "The Internet connection appears to be offline.",
"userInfo" : "YnBsaXN0MDDUAQIDBAUGVldYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QFgcIGxwdHh8gISkqODk6OzxCSUpLTFFVJG51bGzTCQoLDBMaV05TLmtleXNaTlMub2JqZWN0c1YkY2xhc3OmDQ4PEBESgAKAA4AEgAWABoAHphQVFhcYGYAIgA6AD4ASgBGAE4AUXxARTlNVbmRlcmx5aW5nRXJyb3JfEBpOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleV8QFE5TRXJyb3JGYWlsaW5nVVJMS2V5XxAYX2tDRlN0cmVhbUVycm9yRG9tYWluS2V5XxAWX2tDRlN0cmVhbUVycm9yQ29kZUtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb27UIiMkCyUmJyhWTlNDb2RlWk5TVXNlckluZm9YTlNEb21haW4T\/\/\/\/\/\/\/\/\/A+ACoAJgBVfEBdrQ0ZFcnJvckRvbWFpbkNGTmV0d29ya9MJCgsrMRqlLC0REDCAC4AMgAaABYANpRUWGBcZgA6AD4ARgBKAE4AUXxAaTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXlfEBROU0Vycm9yRmFpbGluZ1VSTEtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb25fEEBodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD9oYXNfdmVyaWZpZWQ9MSZobD1lbiZ2PUVkZVZhVC16WnQ00z0LPj9AFVdOUy5iYXNlW05TLnJlbGF0aXZlgACAEIAO0kNERUZaJGNsYXNzbmFtZVgkY2xhc3Nlc1VOU1VSTKJHSFVOU1VSTFhOU09iamVjdBAIEAxfEC5UaGUgSW50ZXJuZXQgY29ubmVjdGlvbiBhcHBlYXJzIHRvIGJlIG9mZmxpbmUu0kNETU5cTlNEaWN0aW9uYXJ5ok9QXE5TRGljdGlvbmFyeVhOU09iamVjdNJDRFJTV05TRXJyb3KiVFVXTlNFcnJvclhOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctFYWVRyb290gAEACAARABoAIwAtADIANwBQAFYAXQBlAHAAdwB+AIAAggCEAIYAiACKAJEAkwCVAJcAmQCbAJ0AnwCzANAA5wECARsBNAE9AUQBTwFYAWEBYwFlAWcBgQGIAY4BkAGSAZQBlgGYAZ4BoAGiAaQBpgGoAaoBxwHeAfcCOgJBAkkCVQJXAlkCWwJgAmsCdAJ6An0CgwKMAo4CkALBAsYC0wLWAuMC7ALxAvkC\/AMEAw0DHwMiAycAAAAAAAACAQAAAAAAAABaAAAAAAAAAAAAAAAAAAADKQ=="
"userInfo" : "YnBsaXN0MDDUAQIDBAUGUVJYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QFgcIGxwdHh8gISkqODk6OzxCSElKS05VJG51bGzTCQoLDBMaV05TLmtleXNaTlMub2JqZWN0c1YkY2xhc3OmDQ4PEBESgAKAA4AEgAWABoAHphQVFhcYGYAIgA6AD4ASgBGAE4AUXxARTlNVbmRlcmx5aW5nRXJyb3JfEBpOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleV8QFE5TRXJyb3JGYWlsaW5nVVJMS2V5XxAYX2tDRlN0cmVhbUVycm9yRG9tYWluS2V5XxAWX2tDRlN0cmVhbUVycm9yQ29kZUtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb27UIiMkCyUmJyhWTlNDb2RlWk5TVXNlckluZm9YTlNEb21haW4T\/\/\/\/\/\/\/\/\/A+ACoAJgBVfEBdrQ0ZFcnJvckRvbWFpbkNGTmV0d29ya9MJCgsrMRqlLC0REDCAC4AMgAaABYANpRUWGBcZgA6AD4ARgBKAE4AUXxAaTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXlfEBROU0Vycm9yRmFpbGluZ1VSTEtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb25fEFFodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD9icGN0cj05OTk5OTk5OTk5Jmhhc192ZXJpZmllZD0xJmhsPWVuJnY9RWRlVmFULXpadDTTPQs+P0AVV05TLmJhc2VbTlMucmVsYXRpdmWAAIAQgA7SQ0RFRlokY2xhc3NuYW1lWCRjbGFzc2VzVU5TVVJMokVHWE5TT2JqZWN0EDIQAV8QLlRoZSBJbnRlcm5ldCBjb25uZWN0aW9uIGFwcGVhcnMgdG8gYmUgb2ZmbGluZS7SQ0RMTVxOU0RpY3Rpb25hcnmiTEfSQ0RPUFdOU0Vycm9yok9HXxAPTlNLZXllZEFyY2hpdmVy0VNUVHJvb3SAAQAIABEAGgAjAC0AMgA3AFAAVgBdAGUAcAB3AH4AgACCAIQAhgCIAIoAkQCTAJUAlwCZAJsAnQCfALMA0ADnAQIBGwE0AT0BRAFPAVgBYQFjAWUBZwGBAYgBjgGQAZIBlAGWAZgBngGgAaIBpAGmAagBqgHHAd4B9wJLAlICWgJmAmgCagJsAnECfAKFAosCjgKXApkCmwLMAtEC3gLhAuYC7gLxAwMDBgMLAAAAAAAAAgEAAAAAAAAAVQAAAAAAAAAAAAAAAAAAAw0=",
"domain" : "NSURLErrorDomain"
},
"method" : "GET",
"status" : 0,
"uri" : "https:\/\/www.youtube.com\/watch?has_verified=1&hl=en&v=EdeVaT-zZt4"
"uri" : "https:\/\/www.youtube.com\/watch?bpctr=9999999999&has_verified=1&hl=en&v=EdeVaT-zZt4"
},
{
"body" : "",
"error" : {
"code" : -1009,
"domain" : "NSURLErrorDomain",
"localizedDescription" : "The Internet connection appears to be offline.",
"userInfo" : "YnBsaXN0MDDUAQIDBAUGVldYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QFgcIGxwdHh8gISkqODk6OzxCSUpLTFFVJG51bGzTCQoLDBMaV05TLmtleXNaTlMub2JqZWN0c1YkY2xhc3OmDQ4PEBESgAKAA4AEgAWABoAHphQVFhcYGYAIgA6AD4ASgBGAE4AUXxARTlNVbmRlcmx5aW5nRXJyb3JfEBpOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleV8QFE5TRXJyb3JGYWlsaW5nVVJMS2V5XxAYX2tDRlN0cmVhbUVycm9yRG9tYWluS2V5XxAWX2tDRlN0cmVhbUVycm9yQ29kZUtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb27UIiMkCyUmJyhWTlNDb2RlWk5TVXNlckluZm9YTlNEb21haW4T\/\/\/\/\/\/\/\/\/A+ACoAJgBVfEBdrQ0ZFcnJvckRvbWFpbkNGTmV0d29ya9MJCgsrMRqlLC0REDCAC4AMgAaABYANpRUWGBcZgA6AD4ARgBKAE4AUXxAaTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXlfEBROU0Vycm9yRmFpbGluZ1VSTEtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb25fEFhodHRwczovL3d3dy55b3V0dWJlLmNvbS9nZXRfdmlkZW9faW5mbz9lbD1lbWJlZGRlZCZobD1lbiZwcz1kZWZhdWx0JnZpZGVvX2lkPUVkZVZhVC16WnQ00z0LPj9AFVdOUy5iYXNlW05TLnJlbGF0aXZlgACAEIAO0kNERUZaJGNsYXNzbmFtZVgkY2xhc3Nlc1VOU1VSTKJHSFVOU1VSTFhOU09iamVjdBAIEAxfEC5UaGUgSW50ZXJuZXQgY29ubmVjdGlvbiBhcHBlYXJzIHRvIGJlIG9mZmxpbmUu0kNETU5cTlNEaWN0aW9uYXJ5ok9QXE5TRGljdGlvbmFyeVhOU09iamVjdNJDRFJTV05TRXJyb3KiVFVXTlNFcnJvclhOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctFYWVRyb290gAEACAARABoAIwAtADIANwBQAFYAXQBlAHAAdwB+AIAAggCEAIYAiACKAJEAkwCVAJcAmQCbAJ0AnwCzANAA5wECARsBNAE9AUQBTwFYAWEBYwFlAWcBgQGIAY4BkAGSAZQBlgGYAZ4BoAGiAaQBpgGoAaoBxwHeAfcCUgJZAmECbQJvAnECcwJ4AoMCjAKSApUCmwKkAqYCqALZAt4C6wLuAvsDBAMJAxEDFAMcAyUDNwM6Az8AAAAAAAACAQAAAAAAAABaAAAAAAAAAAAAAAAAAAADQQ=="
"userInfo" : "YnBsaXN0MDDUAQIDBAUGUVJYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QFgcIGxwdHh8gISkqODk6OzxCSElKS05VJG51bGzTCQoLDBMaV05TLmtleXNaTlMub2JqZWN0c1YkY2xhc3OmDQ4PEBESgAKAA4AEgAWABoAHphQVFhcYGYAIgA6AD4ASgBGAE4AUXxARTlNVbmRlcmx5aW5nRXJyb3JfEBpOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleV8QFE5TRXJyb3JGYWlsaW5nVVJMS2V5XxAYX2tDRlN0cmVhbUVycm9yRG9tYWluS2V5XxAWX2tDRlN0cmVhbUVycm9yQ29kZUtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb27UIiMkCyUmJyhWTlNDb2RlWk5TVXNlckluZm9YTlNEb21haW4T\/\/\/\/\/\/\/\/\/A+ACoAJgBVfEBdrQ0ZFcnJvckRvbWFpbkNGTmV0d29ya9MJCgsrMRqlLC0REDCAC4AMgAaABYANpRUWGBcZgA6AD4ARgBKAE4AUXxAaTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXlfEBROU0Vycm9yRmFpbGluZ1VSTEtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb25fEFhodHRwczovL3d3dy55b3V0dWJlLmNvbS9nZXRfdmlkZW9faW5mbz9lbD1lbWJlZGRlZCZobD1lbiZwcz1kZWZhdWx0JnZpZGVvX2lkPUVkZVZhVC16WnQ00z0LPj9AFVdOUy5iYXNlW05TLnJlbGF0aXZlgACAEIAO0kNERUZaJGNsYXNzbmFtZVgkY2xhc3Nlc1VOU1VSTKJFR1hOU09iamVjdBAyEAFfEC5UaGUgSW50ZXJuZXQgY29ubmVjdGlvbiBhcHBlYXJzIHRvIGJlIG9mZmxpbmUu0kNETE1cTlNEaWN0aW9uYXJ5okxH0kNET1BXTlNFcnJvcqJPR18QD05TS2V5ZWRBcmNoaXZlctFTVFRyb290gAEACAARABoAIwAtADIANwBQAFYAXQBlAHAAdwB+AIAAggCEAIYAiACKAJEAkwCVAJcAmQCbAJ0AnwCzANAA5wECARsBNAE9AUQBTwFYAWEBYwFlAWcBgQGIAY4BkAGSAZQBlgGYAZ4BoAGiAaQBpgGoAaoBxwHeAfcCUgJZAmECbQJvAnECcwJ4AoMCjAKSApUCngKgAqIC0wLYAuUC6ALtAvUC+AMKAw0DEgAAAAAAAAIBAAAAAAAAAFUAAAAAAAAAAAAAAAAAAAMU",
"domain" : "NSURLErrorDomain"
},
"method" : "GET",
"status" : 0,
Expand All @@ -27,9 +25,8 @@
"body" : "",
"error" : {
"code" : -1009,
"domain" : "NSURLErrorDomain",
"localizedDescription" : "The Internet connection appears to be offline.",
"userInfo" : "YnBsaXN0MDDUAQIDBAUGVldYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QFgcIGxwdHh8gISkqODk6OzxCSUpLTFFVJG51bGzTCQoLDBMaV05TLmtleXNaTlMub2JqZWN0c1YkY2xhc3OmDQ4PEBESgAKAA4AEgAWABoAHphQVFhcYGYAIgA6AD4ASgBGAE4AUXxARTlNVbmRlcmx5aW5nRXJyb3JfEBpOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleV8QFE5TRXJyb3JGYWlsaW5nVVJMS2V5XxAYX2tDRlN0cmVhbUVycm9yRG9tYWluS2V5XxAWX2tDRlN0cmVhbUVycm9yQ29kZUtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb27UIiMkCyUmJyhWTlNDb2RlWk5TVXNlckluZm9YTlNEb21haW4T\/\/\/\/\/\/\/\/\/A+ACoAJgBVfEBdrQ0ZFcnJvckRvbWFpbkNGTmV0d29ya9MJCgsrMRqlLC0REDCAC4AMgAaABYANpRUWGBcZgA6AD4ARgBKAE4AUXxAaTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXlfEBROU0Vycm9yRmFpbGluZ1VSTEtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb25fEFpodHRwczovL3d3dy55b3V0dWJlLmNvbS9nZXRfdmlkZW9faW5mbz9lbD1kZXRhaWxwYWdlJmhsPWVuJnBzPWRlZmF1bHQmdmlkZW9faWQ9RWRlVmFULXpadDTTPQs+P0AVV05TLmJhc2VbTlMucmVsYXRpdmWAAIAQgA7SQ0RFRlokY2xhc3NuYW1lWCRjbGFzc2VzVU5TVVJMokdIVU5TVVJMWE5TT2JqZWN0EAgQDF8QLlRoZSBJbnRlcm5ldCBjb25uZWN0aW9uIGFwcGVhcnMgdG8gYmUgb2ZmbGluZS7SQ0RNTlxOU0RpY3Rpb25hcnmiT1BcTlNEaWN0aW9uYXJ5WE5TT2JqZWN00kNEUlNXTlNFcnJvcqJUVVdOU0Vycm9yWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hpdmVy0VhZVHJvb3SAAQAIABEAGgAjAC0AMgA3AFAAVgBdAGUAcAB3AH4AgACCAIQAhgCIAIoAkQCTAJUAlwCZAJsAnQCfALMA0ADnAQIBGwE0AT0BRAFPAVgBYQFjAWUBZwGBAYgBjgGQAZIBlAGWAZgBngGgAaIBpAGmAagBqgHHAd4B9wJUAlsCYwJvAnECcwJ1AnoChQKOApQClwKdAqYCqAKqAtsC4ALtAvAC\/QMGAwsDEwMWAx4DJwM5AzwDQQAAAAAAAAIBAAAAAAAAAFoAAAAAAAAAAAAAAAAAAAND"
"userInfo" : "YnBsaXN0MDDUAQIDBAUGUVJYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QFgcIGxwdHh8gISkqODk6OzxCSElKS05VJG51bGzTCQoLDBMaV05TLmtleXNaTlMub2JqZWN0c1YkY2xhc3OmDQ4PEBESgAKAA4AEgAWABoAHphQVFhcYGYAIgA6AD4ASgBGAE4AUXxARTlNVbmRlcmx5aW5nRXJyb3JfEBpOU0Vycm9yRmFpbGluZ1VSTFN0cmluZ0tleV8QFE5TRXJyb3JGYWlsaW5nVVJMS2V5XxAYX2tDRlN0cmVhbUVycm9yRG9tYWluS2V5XxAWX2tDRlN0cmVhbUVycm9yQ29kZUtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb27UIiMkCyUmJyhWTlNDb2RlWk5TVXNlckluZm9YTlNEb21haW4T\/\/\/\/\/\/\/\/\/A+ACoAJgBVfEBdrQ0ZFcnJvckRvbWFpbkNGTmV0d29ya9MJCgsrMRqlLC0REDCAC4AMgAaABYANpRUWGBcZgA6AD4ARgBKAE4AUXxAaTlNFcnJvckZhaWxpbmdVUkxTdHJpbmdLZXlfEBROU0Vycm9yRmFpbGluZ1VSTEtleV8QFk5TTG9jYWxpemVkRGVzY3JpcHRpb25fEFpodHRwczovL3d3dy55b3V0dWJlLmNvbS9nZXRfdmlkZW9faW5mbz9lbD1kZXRhaWxwYWdlJmhsPWVuJnBzPWRlZmF1bHQmdmlkZW9faWQ9RWRlVmFULXpadDTTPQs+P0AVV05TLmJhc2VbTlMucmVsYXRpdmWAAIAQgA7SQ0RFRlokY2xhc3NuYW1lWCRjbGFzc2VzVU5TVVJMokVHWE5TT2JqZWN0EDIQAV8QLlRoZSBJbnRlcm5ldCBjb25uZWN0aW9uIGFwcGVhcnMgdG8gYmUgb2ZmbGluZS7SQ0RMTVxOU0RpY3Rpb25hcnmiTEfSQ0RPUFdOU0Vycm9yok9HXxAPTlNLZXllZEFyY2hpdmVy0VNUVHJvb3SAAQAIABEAGgAjAC0AMgA3AFAAVgBdAGUAcAB3AH4AgACCAIQAhgCIAIoAkQCTAJUAlwCZAJsAnQCfALMA0ADnAQIBGwE0AT0BRAFPAVgBYQFjAWUBZwGBAYgBjgGQAZIBlAGWAZgBngGgAaIBpAGmAagBqgHHAd4B9wJUAlsCYwJvAnECcwJ1AnoChQKOApQClwKgAqICpALVAtoC5wLqAu8C9wL6AwwDDwMUAAAAAAAAAgEAAAAAAAAAVQAAAAAAAAAAAAAAAAAAAxY=",
"domain" : "NSURLErrorDomain"
},
"method" : "GET",
"status" : 0,
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

This file was deleted.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Binary file modified XCDYouTubeKit Tests/Cookies/adultUserCookieData
Binary file not shown.
Binary file modified XCDYouTubeKit Tests/Cookies/minorUserCookieData
Binary file not shown.
2 changes: 1 addition & 1 deletion XCDYouTubeKit Tests/XCDYouTubeClientTestCase.m
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ - (void) testMobileRestrictedVideo
- (void) testLiveVideo
{
__weak XCTestExpectation *expectation = [self expectationWithDescription:@""];
[[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"c6tZznkHX6g" completionHandler:^(XCDYouTubeVideo *video, NSError *error)
[[XCDYouTubeClient defaultClient] getVideoWithIdentifier:@"hHW1oY26kxQ" completionHandler:^(XCDYouTubeVideo *video, NSError *error)
{
XCTAssertNil(error);
XCTAssertNotNil(video.title);
Expand Down
3 changes: 2 additions & 1 deletion XCDYouTubeKit Tests/XCDYouTubeProtectedVideosTestCase.m
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ - (void) testProtectedVideoWithPlayerScriptConnectionError_offline
[self waitForExpectationsWithTimeout:1 handler:nil];
}

// Edit testProtectedVideoWithoutSignatureFunction.json by replacing `"akamaized",` with `"Xakamaized",`
// Edit testProtectedVideoWithoutSignatureFunction.json by replacing `c&&d.set(b,encodeURIComponent(` with `c&&d.Xset(b,encodeURIComponent(`
- (void) testProtectedVideoWithoutSignatureFunction_offline
{
__weak XCTestExpectation *expectation = [self expectationWithDescription:@""];
Expand All @@ -437,6 +437,7 @@ - (void) testProtectedVideoWithoutSignatureFunction_offline
}

// Edit testProtectedVideoWithBrokenSignatureFunction.json by returning null in the signature function
//Replace `(function(g){var window` with `(function(g){return void 0!==a};{var window`
- (void) testProtectedVideoWithBrokenSignatureFunction_offline
{
__weak XCTestExpectation *expectation = [self expectationWithDescription:@""];
Expand Down
2 changes: 1 addition & 1 deletion XCDYouTubeKit.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "XCDYouTubeKit"
s.version = "2.7.2"
s.version = "2.7.3"
s.summary = "YouTube video player for iOS and OS X."
s.homepage = "https://github.com/0xced/XCDYouTubeKit"
s.screenshot = "https://raw.github.com/0xced/XCDYouTubeKit/#{s.version}/Screenshots/XCDYouTubeVideoPlayerViewController.png"
Expand Down
18 changes: 14 additions & 4 deletions XCDYouTubeKit.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
objects = {

/* Begin PBXBuildFile section */
016A6A0E21F234F1006E1D1F /* XMLHTTPRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 016A6A0D21F234F0006E1D1F /* XMLHTTPRequest.m */; };
016A6A0F21F23505006E1D1F /* XMLHTTPRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 016A6A0D21F234F0006E1D1F /* XMLHTTPRequest.m */; };
016A6A1021F23531006E1D1F /* XMLHTTPRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 016A6A0C21F234F0006E1D1F /* XMLHTTPRequest.h */; };
01D2370A1FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m in Sources */ = {isa = PBXBuildFile; fileRef = 01D237091FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m */; };
01D2370B1FA03ADE00A13E5F /* XCDYouTubeDashManifestXML.h in Headers */ = {isa = PBXBuildFile; fileRef = 01D237081FA03AC100A13E5F /* XCDYouTubeDashManifestXML.h */; };
01D2370C1FA03AF100A13E5F /* XCDYouTubeDashManifestXML.m in Sources */ = {isa = PBXBuildFile; fileRef = 01D237091FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m */; };
Expand Down Expand Up @@ -98,6 +101,8 @@
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
016A6A0C21F234F0006E1D1F /* XMLHTTPRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLHTTPRequest.h; sourceTree = "<group>"; };
016A6A0D21F234F0006E1D1F /* XMLHTTPRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMLHTTPRequest.m; sourceTree = "<group>"; };
01D237081FA03AC100A13E5F /* XCDYouTubeDashManifestXML.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCDYouTubeDashManifestXML.h; sourceTree = "<group>"; };
01D237091FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCDYouTubeDashManifestXML.m; sourceTree = "<group>"; };
01FB237B2191F98100DC8019 /* Cookies */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Cookies; sourceTree = "<group>"; };
Expand Down Expand Up @@ -223,6 +228,8 @@
C2FB52DC1918F88C00B2CBE6 /* XCDYouTubePlayerScript.h */,
C2FB52DD1918F88C00B2CBE6 /* XCDYouTubePlayerScript.m */,
C26DF31518D8544D002248A9 /* XCDYouTubeVideo+Private.h */,
016A6A0C21F234F0006E1D1F /* XMLHTTPRequest.h */,
016A6A0D21F234F0006E1D1F /* XMLHTTPRequest.m */,
C25308C618D739EB00132734 /* XCDYouTubeVideo.h */,
C25308C718D739EB00132734 /* XCDYouTubeVideo.m */,
C24C162C18E9A139005E92E9 /* XCDYouTubeVideoOperation.h */,
Expand Down Expand Up @@ -283,6 +290,7 @@
C2F0E5931944F84700D8EBA8 /* XCDYouTubeVideo.h in Headers */,
C2F0E5941944F84A00D8EBA8 /* XCDYouTubeVideoOperation.h in Headers */,
C215BEB91BE2E5B500F9783B /* XCDYouTubeVideoWebpage.h in Headers */,
016A6A1021F23531006E1D1F /* XMLHTTPRequest.h in Headers */,
C2F0E5951944F85500D8EBA8 /* XCDYouTubeVideoPlayerViewController.h in Headers */,
C2F0E5921944F84400D8EBA8 /* XCDYouTubeVideo+Private.h in Headers */,
C2F0E5911944F84200D8EBA8 /* XCDYouTubePlayerScript.h in Headers */,
Expand Down Expand Up @@ -496,6 +504,7 @@
01D2370A1FA03AC100A13E5F /* XCDYouTubeDashManifestXML.m in Sources */,
C25308C818D739EB00132734 /* XCDYouTubeVideo.m in Sources */,
C2597EA61B0CE6D80030E9F2 /* XCDYouTubeLogger.m in Sources */,
016A6A0E21F234F1006E1D1F /* XMLHTTPRequest.m in Sources */,
C2FB52DE1918F88C00B2CBE6 /* XCDYouTubePlayerScript.m in Sources */,
C2A3F2D817F4827800AC1C3B /* XCDYouTubeVideoPlayerViewController.m in Sources */,
C2386B1F1974036300646123 /* XCDYouTubeVideoWebpage.m in Sources */,
Expand All @@ -511,6 +520,7 @@
01D2370C1FA03AF100A13E5F /* XCDYouTubeDashManifestXML.m in Sources */,
C2F0E59A1944F8C700D8EBA8 /* XCDYouTubePlayerScript.m in Sources */,
C2597EA71B0CE6D80030E9F2 /* XCDYouTubeLogger.m in Sources */,
016A6A0F21F23505006E1D1F /* XMLHTTPRequest.m in Sources */,
C2F0E59B1944F8CA00D8EBA8 /* XCDYouTubeVideo.m in Sources */,
C2F0E59D1944F8D600D8EBA8 /* XCDYouTubeVideoPlayerViewController.m in Sources */,
C29951B5197DBD85001718A8 /* XCDYouTubeVideoWebpage.m in Sources */,
Expand Down Expand Up @@ -612,10 +622,10 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 32;
CURRENT_PROJECT_VERSION = 33;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 2.0.0;
DYLIB_CURRENT_VERSION = 2.7.2;
DYLIB_CURRENT_VERSION = 2.7.3;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
Expand Down Expand Up @@ -690,10 +700,10 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 32;
CURRENT_PROJECT_VERSION = 33;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 2.0.0;
DYLIB_CURRENT_VERSION = 2.7.2;
DYLIB_CURRENT_VERSION = 2.7.3;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
Expand Down
11 changes: 8 additions & 3 deletions XCDYouTubeKit/XCDYouTubePlayerScript.m
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#import <JavaScriptCore/JavaScriptCore.h>

#import "XCDYouTubeLogger+Private.h"
#import "XMLHTTPRequest.h"

@interface XCDYouTubePlayerScript ()
@property (nonatomic, strong) JSContext *context;
Expand All @@ -21,6 +22,10 @@ - (instancetype) initWithString:(NSString *)string
return nil; // LCOV_EXCL_LINE

_context = [JSContext new];

XMLHttpRequest *xmlHttpRequest = [XMLHttpRequest new];
[xmlHttpRequest extend:_context];

_context.exceptionHandler = ^(JSContext *context, JSValue *exception) {
XCDYouTubeLogWarning(@"JavaScript exception: %@", exception);
};
Expand Down Expand Up @@ -73,9 +78,9 @@ - (instancetype) initWithString:(NSString *)string
//See list of regex patterns here https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L1179
NSArray<NSString *>*patterns = @[@"\\.sig\\|\\|([a-zA-Z0-9$]+)\\(",
@"[\"']signature[\"']\\s*,\\s*([^\\(]+)",
@"yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*c\\s*&&d.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)",
@"\\bcs*&&\\s*d\\.set\\([^,]+\\s*,\\s*([a-zA-Z0-9$]+)\\C",
@"\\bc\\s*&&\\s*d\\.set\\([^,]+\\s*,\\s*\\([^)]*\\)\\s*\\(\\s*([a-zA-Z0-9$]+)\\("
@"yt\\.akamaized\\.net/\\)\\s*\\|\\|\\s*.*?\\s*c\\s*&&\\s*d\\.set\\([^,]+\\s*,\\s*(?:encodeURIComponent\\s*\\()?([a-zA-Z0-9$]+)\\(",
@"\\bc\\s*&&\\s*d\\.set\\([^,]+\\s*,\\s*(?:encodeURIComponent\\s*\\()?\\s*([a-zA-Z0-9$]+)\\(",
@"\\bc\\s*&&\\s*d\\.set\\([^,]+\\s*,\\s*\\([^)]*\\)\\s*\\(\\s*([a-zA-Z0-9$]+)\\("
];

NSMutableArray<NSRegularExpression *>*validRegularExpressions = [NSMutableArray new];
Expand Down
Loading

0 comments on commit 4dc4119

Please sign in to comment.