import cookielib
import cgi
-import itertools
import json
from lxml import html
import os
return player_config
def get_best_video(player_config):
- url_data = urlparse.parse_qs(player_config["args"]["url_encoded_fmt_stream_map"])
- url_data = itertools.izip_longest(
- url_data["url"],
- url_data["type"],
- url_data["quality"],
- url_data.get("sig", []),
- )
+ url_data_list = player_config["args"]["url_encoded_fmt_stream_map"].split(",")
+
best_url = None
best_quality = None
best_extension = None
- for video_url, mimetype, quality, signature in url_data:
- mimetype = mimetype.split(";")[0]
+ for url_data in url_data_list:
+ url_data = urlparse.parse_qs(url_data)
+ video_url = url_data["url"][0]
+ mimetype = url_data["type"][0].split(";")[0]
+ quality = url_data["quality"][0]
+ signature = url_data["sig"][0]
+
+ if quality not in QUALITIES:
+ continue
if mimetype not in MIMETYPES:
continue
+
extension = MIMETYPES[mimetype]
- quality = QUALITIES.get(quality.split(",")[0], -1)
+ quality = QUALITIES.get(quality, -1)
+
if best_quality is None or quality > best_quality:
if signature:
video_url = append_to_qs(video_url, {"signature": signature})