Innitial commit

This commit is contained in:
geezo 2024-12-22 18:17:12 +00:00
commit b3bda35de1

77
main.py Normal file
View File

@ -0,0 +1,77 @@
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)