···18181919library_file = here / "library.tsv"
2020library = [
2121- t.replace("/", "⁄").split("\t", 2)
2222- for t in library_file.read_text("UTF-8").splitlines()
2323-]
2121+ t.replace("/", "⁄").split("\t", 2)
2222+ for t in library_file.read_text("UTF-8").splitlines()
2323+ ]
24242525def tag_track(title: str, artists: set[str], file: Path) -> bool:
2626 """
···4949 if not list(here.glob(f"{hash}*.mp3")):
5050 try:
5151 run(
5252- [
5353- "yt-dlp",
5454- "-x",
5555- "--audio-format",
5656- "mp3",
5757- "--output",
5858- str(here / f"{hash}%(id)s.mp3"),
5959- f"ytsearch15:{artist} {title}",
6060- "--max-downloads=1",
6161- "--ignore-errors",
6262- "--age-limit=20" # to prevent download errors due to agewall
6363- ]
6464- )
5252+ [
5353+ "yt-dlp",
5454+ "-x",
5555+ "--audio-format",
5656+ "mp3",
5757+ "--output",
5858+ str(here / f"{hash}%(id)s.mp3"),
5959+ f"ytsearch15:{artist} {title}",
6060+ "--max-downloads=1",
6161+ "--ignore-errors",
6262+ "--age-limit=20" # to prevent download errors due to agewall
6363+ ]
6464+ )
6565 except KeyboardInterrupt:
6666 print("Download skipped by user, continuing…")
6767 return
···7171 youtube_id = file.name.split('.')[0].replace(hash, "")
7272 try:
7373 tag_track(artists=artist.split(", "), title=title, file=file)
7474- file.rename(here / f"{artist}\t{title.replace('/', '∕')}\t{youtube_id}.mp3")
7474+ file.rename(here / f"{artist} {title.replace('/', '∕')} {youtube_id}.mp3")
7575 except OSError as e:
7676 print(f"Couldn't rename file: {e}")
7777 except IndexError as e:
···9090 already_downloaded = False
91919292 for file in library_file.parent.iterdir():
9393- if file.name.startswith("\t".join(track)):
9393+ if file.name.startswith(("\t".join(track), (" " * 2).join(track))):
9494 already_downloaded = True
9595 break
9696 # if file.name.startswith("⣎⡇ꉺლ"):
+5
library.tsv
···261261Bace I Can't
262262Bad Computer 2U
263263Bad Computer Destroy Me
264264+Bad Computer, Skyelle Silhouette
264265Bad Omens THE DEATH OF PEACE OF MIND
265266BAILE Gone
266267Bakermat, GoldFish, Marie Plassard Games Continued (feat. Marie Plassard) - Radio Edit
···16031604Jeremy Blake Like the World Is New
16041605Jeremy Blake Tellenous
16051606Jeremy Blake Tenellous
16071607+Jerome Isma-Ae, Alastor Reflection
16061608Jerry Folk Blinker
16071609Jerry Folk, Tilla Low
16081610Jesper Ryom Nights
···17381740Kidnap Untroubled
17391741Kiiara, No Mana Bipolar - No Mana Remix
17401742Kill Paris where r u
17431743+KILL SCRIPT, Crooked Bangs Forever
17411744Kindrid, notsure Breathless
17421745Kinokoteikoku ありふれた言葉
17431746Kinokoteikoku パラノイドパレード
···23722375Noordpool Orchestra Weird Fishes
23732376Nordfold Letter To Lillehammer
23742377No Spirit Happy Moments
23782378+Notaker From Dust & Ashes
23752379Notaker The Storm
23762380Nothingtosay Reflection
23772381notsure Dialed In
···34493453Tigran Hamasyan To Negate
34503454Tigran Hamasyan, Tosin Abasi Vortex (feat. Tosin Abasi)
34513455Tigran Hamasyan Vardavar
34563456+Tinlicker Bird Feeder
34523457Tinlicker Compound
34533458Tinlicker, CUT_ If I Was
34543459Tinlicker, CUT_ If I Was - Extended Mix