From fdd95d73f3682500c70f7cdc593f0affd496f402 Mon Sep 17 00:00:00 2001 From: dvirlabs Date: Sun, 3 Aug 2025 02:54:48 +0000 Subject: [PATCH] Get more accurate when search artist name --- .../__pycache__/downloader.cpython-310.pyc | Bin 1777 -> 1804 bytes backend/downloader.py | 16 ++++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/backend/__pycache__/downloader.cpython-310.pyc b/backend/__pycache__/downloader.cpython-310.pyc index d0dbdb15da0682d7cc0830d49cb969c08c80430a..665b4d12df9f6f8386091ab926391611f6528cb5 100644 GIT binary patch delta 695 zcmY*WJ8u&~5Z;;Hd-%>ac9eiYh8QFwEE0*xNIXPKK>>}6C=HgCaqP?EEbU!Hu+B9*n)yYa()6063|lf1JYBZ07OB@YtD)#va9)SzuE6*wBP*5?dNmdT+S1`zI=Y! z`S3RP4wf*br%Up88qo}sp%}tC5)i&{`FT(pD{-e8R!$yp z@19%P4#J(d74-_KVyhdrrvkH&S6A@Z-)`Zo1wLU{H%}G zJ-BXuT6Y&yf1>*gv*4lvn@vs8<1#E1U_-Pkb?dOXSNoIPFar$=tCD%lqXW$VGS-%3jD(x zeb{A!?=WFbGs>)ev&sbf8x?yobHs+Msi+lq+-f6gx1)Gsb<(I1yK?-Tk&cr z168lZ!NGO9u;T>lQM{qTM1RDy7G&OfZBzfmVA`Rs3k4{HGw93^yL7x=-!M+!L^(kN zaxw=yhw&VS2(q#NhnH5OrV6D;jf4{vfO9#ed&VjFsy`U#w*qCRY#U@bWnBi?^StzZpF4`(06kZ^^!hoT_-2v$)!qPPty3WLNR z-m|-g8WN?{*hXN=?Rlx;_Tj}ym#4f}(0BO6{Sh%5L6yz2r2Yti<^GUD9PyR0#d{UZ z>~>9tu}U&0+>8>n)N0&5$p5?JJyuCrlgsrhmlrzjaWSi3^EHef=(70|eErruSImrN z7-weEZbpjq_+rk(jGnZv-5t%9x bool: def is_youtube_url(query: str) -> bool: return query.startswith("http") -def max_duration_filter(max_seconds): +def duration_range_filter(min_seconds, max_seconds): def _filter(info, *, incomplete): duration = info.get('duration') - if duration and duration > max_seconds: - return f"Skipping: {info.get('title')} is longer than {max_seconds//60} minutes" + if duration: + if duration < min_seconds: + return f"Skipping: {info.get('title')} is shorter than {min_seconds//60} minutes" + if duration > max_seconds: + return f"Skipping: {info.get('title')} is longer than {max_seconds//60} minutes" return _filter def download_song(query: str): @@ -24,11 +27,8 @@ def download_song(query: str): elif is_playlist(query): yt_query = query noplaylist = False - elif len(query.split()) == 1: - yt_query = f"ytsearch50:{query}" - noplaylist = True else: - yt_query = f"ytsearch1:{query}" + yt_query = f"ytsearch10:{query}" # Always search for 10 results for any artist/song query noplaylist = True ydl_opts = { @@ -40,7 +40,7 @@ def download_song(query: str): }, { 'key': 'FFmpegMetadata', }], - 'match_filter': max_duration_filter(10 * 60), # 5 minutes in seconds + 'match_filter': duration_range_filter(2 * 60, 9 * 60), # 2 to 9 minutes 'noplaylist': noplaylist, 'quiet': False, 'verbose': True,