Compare commits

..

No commits in common. "7a75805423f11023711e4cec636f16732f3039d4" and "e2330a15c4b7cbb8343a6bd37a8806d8b64156fb" have entirely different histories.

5 changed files with 5 additions and 22 deletions

View file

@ -14,6 +14,3 @@ run-frontend:
test: test:
python3 -m unittest discover -vcs ./backend python3 -m unittest discover -vcs ./backend
clean:
rm -rf backend/__pycache__ .ruff_cache

View file

@ -23,9 +23,6 @@ class Config:
# Proxy URL for yt_proxied downloader (can be used for geo-restricted content) # Proxy URL for yt_proxied downloader (can be used for geo-restricted content)
self.yt_proxy = os.getenv('YT_PROXY') or None self.yt_proxy = os.getenv('YT_PROXY') or None
# Proxy for soundcloud
self.sc_proxy = os.getenv('SC_PROXY') or None
self.save_lyrics = _parse_bool(os.getenv('SAVE_LYRICS'), True) self.save_lyrics = _parse_bool(os.getenv('SAVE_LYRICS'), True)
self.save_cover = _parse_bool(os.getenv('SAVE_COVER'), True) self.save_cover = _parse_bool(os.getenv('SAVE_COVER'), True)

View file

@ -22,7 +22,7 @@ class InfoYouTubePP(PostProcessor):
if not 'track' in information: if not 'track' in information:
information['track'] = information['title'] information['track'] = information['title']
if not 'artist' in information: if not 'artist' in information:
information['artist'] = information['uploader'].removesuffix(' - Topic') information['artist'] = information['channel'].removesuffix(' - Topic')
if not 'artists' in information: if not 'artists' in information:
information['artists'] = [information['artist']] information['artists'] = [information['artist']]

View file

@ -27,16 +27,6 @@ class _CreateYDL:
ydl.params['proxy'] = proxy ydl.params['proxy'] = proxy
return ydl return ydl
@staticmethod
def soundcloud() -> YoutubeDL:
ydl = YoutubeDL({'format': 'ba[ext=mp3]/ba'})
ydl.add_post_processor(id3pp.InfoYouTubePP(), when='pre_process')
proxy = config.get().sc_proxy
if proxy is not None:
ydl.params['proxy'] = proxy
ydl.add_post_processor(FFmpegExtractAudioPP(preferredcodec='mp3'), when='post_process')
return ydl
@staticmethod @staticmethod
def yandex() -> YoutubeDL: def yandex() -> YoutubeDL:
return YoutubeDL() return YoutubeDL()
@ -45,14 +35,13 @@ class _CreateYDL:
create_ydl_fn = { create_ydl_fn = {
'youtube': _CreateYDL.youtube, 'youtube': _CreateYDL.youtube,
'yt_proxied': _CreateYDL.yt_proxied, 'yt_proxied': _CreateYDL.yt_proxied,
'soundcloud': _CreateYDL.soundcloud,
'yandex': _CreateYDL.yandex, 'yandex': _CreateYDL.yandex,
} }
ydl_fn_keys = create_ydl_fn.keys() ydl_fn_keys = create_ydl_fn.keys()
# need process=True for track title in extract_info output # need process=True for track title in extract_info output
NP_YDLS = {'yandex', 'soundcloud'} NP_YDLS = {'yandex'}
class YdlLogger: class YdlLogger:
@ -84,8 +73,9 @@ class Downloader:
def __init__(self, logger: YdlLogger | None = None) -> None: def __init__(self, logger: YdlLogger | None = None) -> None:
self.ydls: dict[str, YoutubeDL | None] = { self.ydls: dict[str, YoutubeDL | None] = {
key: None 'youtube': None,
for key in ydl_fn_keys 'yt_proxied': None,
'yandex': None,
} }
self.cur_ydl: YoutubeDL | None = None self.cur_ydl: YoutubeDL | None = None

View file

@ -16,7 +16,6 @@
<select id="site-select"> <select id="site-select">
<option value="youtube" selected>YouTube</option> <option value="youtube" selected>YouTube</option>
<option value="yt_proxied">YT proxied</option> <option value="yt_proxied">YT proxied</option>
<option value="soundcloud">SoundCloud</option>
<option value="yandex">Yandex Music</option> <option value="yandex">Yandex Music</option>
</select> </select>
</div> </div>