]> code.delx.au - youtube-cgi/commitdiff
fixes for recent changes
authorJames Bunton <jamesbunton@delx.net.au>
Wed, 9 Apr 2014 13:00:26 +0000 (23:00 +1000)
committerJames Bunton <jamesbunton@delx.net.au>
Wed, 9 Apr 2014 13:00:26 +0000 (23:00 +1000)
youtube.cgi

index fef9beb175adf9799c3093d2911aae6feca1ed35..56b89371a968318a7851f0209785097039192df5 100755 (executable)
@@ -117,36 +117,18 @@ def append_to_qs(url, params):
        url = urlparse.urlunsplit(r)
        return url
 
-def convert_from_old_itag(player_config):
-       url_data = urlparse.parse_qs(player_config["args"]["url_encoded_fmt_stream_map"])
-       url_data["url"] = []
-       for itag_url in url_data["itag"]:
-               pos = itag_url.find("url=")
-               url_data["url"].append(itag_url[pos+4:])
-       player_config["args"]["url_encoded_fmt_stream_map"] = urllib.urlencode(url_data, True)
-
 def get_player_config(doc):
        player_config = None
        for script in doc.xpath("//script"):
                if not script.text:
                        continue
                for line in script.text.split("\n"):
-                       if "yt.playerConfig =" in line:
-                               p1 = line.find("=")
-                               p2 = line.rfind(";")
-                               if p1 >= 0 and p2 > 0:
-                                       return json.loads(line[p1+1:p2])
-                       if "ytplayer.config =" in line:
-                               p1 = line.find("ytplayer.config =")
-                               p2 = line.rfind(";")
+                       s = "ytplayer.config = {"
+                       if s in line:
+                               p1 = line.find(s) + len(s) - 1
+                               p2 = line.find("};", p1) + 1
                                if p1 >= 0 and p2 > 0:
-                                       return json.loads(line[p1+18:p2])
-                       if "'PLAYER_CONFIG': " in line:
-                               p1 = line.find(":")
-                               if p1 >= 0:
-                                       player_config = json.loads(line[p1+1:])
-                                       convert_from_old_itag(player_config)
-                                       return player_config
+                                       return json.loads(line[p1:p2])
 
 def extract_function(output, script, func_name):
        p1 = script.find("function " + func_name + "(")