mirror of
https://github.com/nathom/streamrip.git
synced 2025-05-12 22:26:16 -04:00
119 lines
4.2 KiB
Python
119 lines
4.2 KiB
Python
import os
|
|
import shutil
|
|
import subprocess
|
|
|
|
from click import echo, secho
|
|
|
|
test_urls = {
|
|
"qobuz": "https://www.qobuz.com/us-en/album/blackest-blue-morcheeba/h4nngz0wgqesc",
|
|
"tidal": "https://tidal.com/browse/album/183284294",
|
|
"deezer": "https://www.deezer.com/us/album/225281222",
|
|
"soundcloud": "https://soundcloud.com/dj-khaled/sets/khaled-khaled",
|
|
}
|
|
|
|
|
|
def reset_config():
|
|
global cfg_path
|
|
global new_cfg_path
|
|
|
|
p = subprocess.Popen(
|
|
["rip", "config", "-p"], stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
|
)
|
|
out, err = p.communicate()
|
|
cfg_path = out.decode("utf-8").strip()
|
|
# cfg_path = re.search(
|
|
# r"(/[\w\d\s]+(?:/[\w\d \.]+)*)", out.decode("utf-8")
|
|
# ).group(1)
|
|
new_cfg_path = f"{cfg_path}.tmp"
|
|
shutil.copy(cfg_path, new_cfg_path)
|
|
subprocess.Popen(["rip", "config", "--update"])
|
|
|
|
|
|
def restore_config():
|
|
global cfg_path
|
|
global new_cfg_path
|
|
|
|
os.remove(cfg_path)
|
|
shutil.move(new_cfg_path, cfg_path)
|
|
|
|
|
|
def download_albums():
|
|
rip_url = ["rip", "-nd", "-u"]
|
|
procs = []
|
|
for url in test_urls.values():
|
|
procs.append(subprocess.run([*rip_url, url]))
|
|
|
|
for p in procs:
|
|
echo(p)
|
|
|
|
|
|
def check_album_dl_success(folder, correct):
|
|
if set(os.listdir(folder)) != set(correct):
|
|
secho(f"Check for {folder} failed!", fg="red")
|
|
else:
|
|
secho(f"Check for {folder} succeeded!", fg="green")
|
|
|
|
|
|
def main():
|
|
reset_config()
|
|
download_albums()
|
|
check_album_dl_success(
|
|
"/Users/nathan/StreamripDownloads/Morcheeba - Blackest Blue (2021) [FLAC] [24B-44.1kHz]",
|
|
{
|
|
"04. Morcheeba - Say It's Over.flac",
|
|
"01. Morcheeba - Cut My Heart Out.flac",
|
|
"02. Morcheeba - Killed Our Love.flac",
|
|
"07. Morcheeba - Namaste.flac",
|
|
"03. Morcheeba - Sounds Of Blue.flac",
|
|
"10. Morcheeba - The Edge Of The World.flac",
|
|
"08. Morcheeba - The Moon.flac",
|
|
"09. Morcheeba - Falling Skies.flac",
|
|
"cover.jpg",
|
|
"05. Morcheeba - Sulphur Soul.flac",
|
|
"06. Morcheeba - Oh Oh Yeah.flac",
|
|
},
|
|
)
|
|
|
|
check_album_dl_success(
|
|
"/Users/nathan/StreamripDownloads/KHALED KHALED",
|
|
{
|
|
"05. DJ Khaled - I DID IT (feat. Post Malone, Megan Thee Stallion, Lil Baby & DaBaby).mp3",
|
|
"09. DJ Khaled - THIS IS MY YEAR (feat. A Boogie Wit Da Hoodie, Big Sean, Rick Ross & Puff Daddy).mp3",
|
|
"01. DJ Khaled - THANKFUL (feat. Lil Wayne & Jeremih).mp3",
|
|
"12. DJ Khaled - I CAN HAVE IT ALL (feat. Bryson Tiller, H.E.R. & Meek Mill).mp3",
|
|
"02. DJ Khaled - EVERY CHANCE I GET (feat. Lil Baby & Lil Durk).mp3",
|
|
"08. DJ Khaled - POPSTAR (feat. Drake).mp3",
|
|
"13. DJ Khaled - GREECE (feat. Drake).mp3",
|
|
"04. DJ Khaled - WE GOING CRAZY (feat. H.E.R. & Migos).mp3",
|
|
"10. DJ Khaled - SORRY NOT SORRY (Harmonies by The Hive) [feat. Nas, JAY-Z & James Fauntleroy].mp3",
|
|
"03. DJ Khaled - BIG PAPER (feat. Cardi B).mp3",
|
|
"14. DJ Khaled - WHERE YOU COME FROM (feat. Buju Banton, Capleton & Bounty Killer).mp3",
|
|
"07. DJ Khaled - BODY IN MOTION (feat. Bryson Tiller, Lil Baby & Roddy Ricch).mp3",
|
|
"06. DJ Khaled - LET IT GO (feat. Justin Bieber & 21 Savage).mp3",
|
|
"11. DJ Khaled - JUST BE (feat. Justin Timberlake).mp3",
|
|
},
|
|
)
|
|
|
|
check_album_dl_success(
|
|
"/Users/nathan/StreamripDownloads/Paul Weller - Fat Pop (2021) [FLAC] [24B-44.1kHz]",
|
|
{
|
|
"01. Paul Weller - Cosmic Fringes.flac",
|
|
"11. Paul Weller - In Better Times.flac",
|
|
"05. Paul Weller - Glad Times.flac",
|
|
"08. Paul Weller - That Pleasure.flac",
|
|
"04. Paul Weller - Shades Of Blue.flac",
|
|
"12. Paul Weller - Still Glides The Stream.flac",
|
|
"03. Paul Weller - Fat Pop.flac",
|
|
"cover.jpg",
|
|
"02. Paul Weller - True.flac",
|
|
"09. Paul Weller - Failed.flac",
|
|
"06. Paul Weller - Cobweb Connections.flac",
|
|
"10. Paul Weller - Moving Canvas.flac",
|
|
"07. Paul Weller - Testify.flac",
|
|
},
|
|
)
|
|
restore_config()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|