diff --git a/setup.py b/setup.py index 76b8a53..ce1a882 100755 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ setup( name="yturl", - version="2.0.2", + version="2.0.3", python_requires=">=3.5", description="Gets direct media URLs to YouTube media", long_description=README, diff --git a/yturl.py b/yturl.py index b9e98ab..01c2bd7 100755 --- a/yturl.py +++ b/yturl.py @@ -76,9 +76,15 @@ def itags_for_video(video_id): try: streams = api_response["url_encoded_fmt_stream_map"].split(",") except KeyError: - raise NotImplementedError( - "Live and streaming videos are unsupported." - ) from None + try: + import json + return collections.OrderedDict([(i['itag'], i['url']) for i in + json.loads(api_response['player_response'])['streamingData'][ + 'formats']]) + except: + raise NotImplementedError( + "Live and streaming videos are unsupported." + ) from None videos = [parse_qs_single(stream) for stream in streams] return collections.OrderedDict((vid["itag"], vid["url"]) for vid in videos)