78 lines
4.0 KiB
Python
78 lines
4.0 KiB
Python
import requests
|
|
from bs4 import BeautifulSoup
|
|
import os
|
|
import urllib
|
|
from urllib.parse import unquote
|
|
|
|
MUSIC_FORMAT = "mp3"
|
|
DOWNLOAD_DIRECTORY = "/home/geezo/Documents/navidrome/music"
|
|
mixtapes_to_download = [
|
|
"https://archive.org/details/themoviepart2_front/"
|
|
"https://archive.org/details/da-drought-3-lil-wayne",
|
|
"https://archive.org/details/dedication-2-lil-wayne",
|
|
"https://archive.org/details/no-ceilings-lil-wayne",
|
|
"https://archive.org/details/the-drought-is-over-2-lil-wayne",
|
|
"https://archive.org/details/VA-The_Empire_Presents_Lil_Wayne_-_The_Drought_Is_Over_Vol.5Grand_ClosingBoot",
|
|
"https://archive.org/details/sorry-4-the-wait-2-lil-wayne",
|
|
"https://archive.org/details/DJ_Whiteowl_NY_CEO_Presents_Lil_Wayne-New_Orleans_Nightmare_8_The_Saga_Continue",
|
|
"https://archive.org/details/VA-The_Empire_Presents_Lil_Wayne-The_Drought_Is_Over_Pt.4Bootleg-2007-JL",
|
|
"https://archive.org/details/guccimanethemovie",
|
|
"https://archive.org/details/FrankOceanNostalgiaULTRAMixtapeManic",
|
|
"https://archive.org/details/trap-back-gucci-mane",
|
|
"https://archive.org/details/theburrprint",
|
|
"https://archive.org/details/VA-DJ_Smallz_-_Southern_Smoke_Radio_2_Hosted_By_DJ_Drama-2011",
|
|
"https://archive.org/details/00-cover_20211207_2352",
|
|
"https://archive.org/details/Waka_Flocka_Flame_-_Salute_Me_Or_Shoot_Me_4",
|
|
"https://archive.org/details/eastside-piru",
|
|
"https://archive.org/details/01-gucci-mane-ft-shawty-lo-waka-flocka-and-nicki-minaj-movie",
|
|
"https://archive.org/details/VA-Trap-A-Holics_-_Trap_Music_Hosted_By_Tity_Boi-2010",
|
|
"https://archive.org/details/va-dj-smallz-best-thing-smokin-vol.-9-bootleg-2007-cr",
|
|
"https://archive.org/details/VA-The_Empire_Presents_Lil_Wayne-The_Drought_Is_Over_Pt.4Bootleg-2007-JL",
|
|
"https://archive.org/details/slime-season-young-thug",
|
|
"https://archive.org/details/Young_Thug_-_Slime_Season_2-2015",
|
|
"https://archive.org/details/rich-forever-rick-ross",
|
|
"https://archive.org/details/dj_smallz_and_lil_wayne-the_le4k-bootleg-2008-ragemp3",
|
|
# "https://archive.org/details/future-1000",
|
|
"https://archive.org/details/20200530_20200530_1609",
|
|
"https://archive.org/details/DJScrewChapter003DuckSick1996",
|
|
"https://archive.org/details/VA-Juelz_Santana_Lil_Wayne_Trap-A-Holics-I_Cant_Feel_My_Face_The_Prequel-Boot",
|
|
"https://archive.org/details/Drake_-_Heartbreak_Drake_4-2010",
|
|
"https://archive.org/details/VA-Trap-A-Holics_-_Trap_Music_2012",
|
|
"https://archive.org/details/dj-drama-gucci-mane-mr.-zone-6",
|
|
"https://archive.org/details/so-icey-survivors",
|
|
"https://archive.org/details/00-cover_20211206",
|
|
"https://archive.org/details/VA-Trap-A-Holics_-_Trap_Music_Trick_Or_Trap-2010",
|
|
"https://archive.org/details/rich-boy-the-life-and-times-of-cartier-benjamin",
|
|
"https://archive.org/details/14-bowling",
|
|
"https://archive.org/details/rich-boy-bigger-than-the-mayor",
|
|
"https://archive.org/details/00-cover_20210107_2255",
|
|
"https://archive.org/details/00-cover_20220612",
|
|
"https://archive.org/details/00-cover_20220612_1730"
|
|
]
|
|
|
|
def download_mixtape(url):
|
|
archive_url = url
|
|
response=requests.get(archive_url)
|
|
soup = BeautifulSoup(response.text)
|
|
links = soup.find_all("link", {"itemprop": "associatedMedia"})
|
|
|
|
title = soup.find("meta", {"property": "og:title"})
|
|
album_title = str(title["content"]).split(":")[0]
|
|
|
|
mp3_links = [item["href"] for item in links if item["href"][-3:] == MUSIC_FORMAT]
|
|
|
|
if not os.path.exists(f"{DOWNLOAD_DIRECTORY}/{album_title}"):
|
|
os.makedirs(f"{DOWNLOAD_DIRECTORY}/{album_title}")
|
|
|
|
for song in mp3_links:
|
|
song_title = unquote(song.split("/")[-1])
|
|
if not os.path.isfile(f"{DOWNLOAD_DIRECTORY}/{album_title}/{song_title}"):
|
|
print(f"{song_title} has not been downloaded yet.")
|
|
print(f"downloadingt {song_title}")
|
|
urllib.request.urlretrieve(song, f"{DOWNLOAD_DIRECTORY}/{album_title}/{song_title}")
|
|
else:
|
|
print(f"{song_title} has already been downloaded")
|
|
|
|
for url in mixtapes_to_download:
|
|
download_mixtape(url)
|