- vformats = []
- for asset in assets.findall("asset"):
- if asset.find("downloadUrl") is None:
- continue
- vformat = {}
- vformat["url"] = asset.find("downloadUrl").text
- vformat["ext"] = asset.find("mediaType").text
- vformat["format_id"] = asset.get("type")
- vformat["width"] = int(asset.find("frameWidth").text)
- vformat["height"] = int(asset.find("frameHeight").text)
- vformat["resolution"] = "%ix%i" % (vformat["width"], vformat["height"])
- vformat["tbr"] = int(asset.find("bitrateVideo").text)
- vformat["abr"] = int(asset.find("bitrateAudio").text)
- vformat["vcodec"] = asset.find("codecVideo").text
- vformat["container"] = vformat["ext"]
- vformat["filesize"] = int(asset.find("size").text)
- vformat["preference"] = vformat["quality"] = -1
- vformat["format"] = "%s container with %i Kbps %s" % (vformat["container"], vformat["tbr"], vformat["vcodec"])
- vformats.append(vformat)
- self._sort_formats(vformats)
- return vformats
+ formats = [{
+ "url": asset.find("downloadUrl").text,
+ "ext": asset.find("mediaType").text,
+ "format_id": asset.get("type"),
+ "width": int(asset.find("frameWidth").text),
+ "height": int(asset.find("frameHeight").text),
+ "tbr": int(asset.find("bitrateVideo").text),
+ "abr": int(asset.find("bitrateAudio").text),
+ "vcodec": asset.find("codecVideo").text,
+ "container": asset.find("mediaType").text,
+ "filesize": int(asset.find("size").text),
+ } for asset in assets.findall("asset")
+ if asset.find("downloadUrl") is not None]
+
+ self._sort_formats(formats)
+ return formats