Skip to content

Commit 89da62b

Browse files
committed
Rely on youtube-dl resolver
1 parent f4765ab commit 89da62b

File tree

1 file changed

+10
-25
lines changed

1 file changed

+10
-25
lines changed

cmd/resolver/resolver.py

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -140,32 +140,17 @@ def _yt_choose_url(ytdl, info, metadata):
140140
is_video = metadata['format'] == 'video'
141141
is_high_quality = metadata['quality'] == 'high'
142142

143-
if not is_video:
143+
if is_video:
144+
fmt = 'best[ext=mp4]' if is_high_quality else 'worst[ext=mp4]'
145+
else:
144146
fmt = 'bestaudio' if is_high_quality else 'worstaudio'
145-
selector = ytdl.build_format_selector(fmt)
146-
try:
147-
selected = next(selector(info))
148-
if 'fragment_base_url' in selected:
149-
return selected['fragment_base_url']
150-
except KeyError:
151-
pass
152-
153-
# Filter formats by file extension
154-
ext = 'mp4' if is_video else 'm4a'
155-
fmt_list = [x for x in info['formats'] if x['ext'] == ext and 'acodec' in x and x['acodec'] != 'none']
156-
if not len(fmt_list):
157-
return info['url']
158-
159-
# Sort list by field (width for videos, file size for audio)
160-
sort_field = 'width' if is_video else 'filesize'
161-
# Sometime 'filesize' field can be None
162-
if not all(x[sort_field] is not None for x in fmt_list):
163-
sort_field = 'format_id'
164-
ordered = sorted(fmt_list, key=lambda x: x[sort_field], reverse=True)
165-
166-
# Choose an item depending on quality, better at the beginning
167-
item = ordered[0] if is_high_quality else ordered[-1]
168-
return item['url']
147+
148+
selector = ytdl.build_format_selector(fmt)
149+
selected = next(selector(info))
150+
if 'fragment_base_url' in selected:
151+
return selected['fragment_base_url']
152+
153+
return selected['url']
169154

170155

171156
def _vimeo_choose_url(info, metadata):

0 commit comments

Comments
 (0)