internal YouTubeVideo(string title, UnscrambledQuery query, string jsPlayer) { this.Title = title; this.uri = query.Uri; this.jsPlayer = jsPlayer; this.encrypted = query.IsEncrypted; this.FormatCode = int.Parse(new Query(uri)["itag"]); }
internal YouTubeVideo(string title, UnscrambledQuery query, string jsPlayer, Func<string, Task<string>> sourceFactory) { this.Title = title; this.uri = query.Uri; this.jsPlayer = jsPlayer; this.encrypted = query.IsEncrypted; this.sourceFactory = sourceFactory; this.FormatCode = int.Parse(new Query(uri)["itag"]); }
internal YouTubeVideo(string title, UnscrambledQuery query, string jsPlayer, bool manifestExist = false) { this.Title = title; this.uri = query.Uri; this.jsPlayer = jsPlayer; this.encrypted = query.IsEncrypted; if (manifestExist) { // Link contain "key/value" // separated by slash string x = uri.Substring(uri.IndexOf("itag/") + 5, 3); x = x.TrimEnd('/'); // In case format is 2-digit this.FormatCode = int.Parse(x); } else this.FormatCode = int.Parse(new Query(uri)["itag"]); }