music-kraken-core/src/download_links.py

54 lines
1.5 KiB
Python

import requests
import logging
import musify
import youtube_music
from metadata import database
class Download:
def __init__(self, metadata_csv: str = ".cache1.csv", proxies: dict = None) -> None:
if proxies is not None:
musify.set_proxy(proxies)
self.urls = []
for row in database.get_tracks_to_download():
row['artists'] = [artist['name'] for artist in row['artists']]
id_ = row['id']
# check musify
musify_url = musify.get_musify_url(row)
if musify_url is not None:
self.add_url(musify_url, 'musify', id_)
continue
# check YouTube
youtube_url = youtube_music.get_youtube_url(row)
if youtube_url is not None:
self.add_url(youtube_url, 'youtube', id_)
continue
# check musify again, but with a different methode that takes longer
musify_url = musify.get_musify_url_slow(row)
if musify_url is not None:
self.add_url(musify_url, 'musify', id_)
continue
logging.warning(f"Didn't find any sources for {row['title']}")
def add_url(self, url: str, src: str, id_: str):
database.set_download_data(id_, url, src)
if __name__ == "__main__":
proxies = {
'http': 'socks5h://127.0.0.1:9150',
'https': 'socks5h://127.0.0.1:9150'
}
s = requests.Session()
s.proxies = proxies
download = Download()