```python
εισαγωγή os
από το pytube import YouTube
αιτήματα εισαγωγής
εισαγωγή soundcloud
από την εισαγωγή bandcamp Bandcamp
από την εισαγωγή bs4 BeautifulSoup
def YouTube_Downloader(url):
δοκιμή:
Δημιουργία # αντικειμένου χρησιμοποιώντας το YouTube
# που εισήχθη στην αρχή
yt =Youtube(url)
# μορφές και αναλύσεις που μπορούν να είναι
Θα εμφανιστεί η # λήψη σύμφωνα με το σύστημά σας
#εδώ
print ("Διαθέσιμες λύσεις:")
all_res =yt.streams.all()
για i in all_res:
εκτύπωση (i)
# το βίντεο με την υψηλότερη ανάλυση
Επιλέχθηκε # λήφθηκε
ys =yt.streams.get_highest_resolution()
# διαδρομή όπου όλα τα βίντεο θα αποθηκευτούν
yt_path =os.getcwd()
Γίνεται λήψη # βίντεο στο καθορισμένο
# τοποθεσία
ys.download(yt_path)
print("Η λήψη ολοκληρώθηκε :", yt_path)
εκτός Εξαίρεσης ως e:
εκτύπωση(στρ(ε))
def Soundcloud_Downloader(url):
δοκιμή:
# διαδρομή όπου θα αποθηκευτούν όλοι οι ήχοι
sc_path =os.getcwd()
Δημιουργία # αντικειμένου με χρήση soundcloud
client =soundcloud.Client()
# track =client.get(url) είναι ένα αντικείμενο
# αλλά καθώς θέλουμε μόνο ήχο με δυνατότητα ροής
# URL για λήψη οπότε 'stream_url'
audio =client.get(url, επίλυση =False)
stream_url =audio.stream_url
# λάβετε αίτημα για λήψη των περιεχομένων
answer =requests.get(stream_url, stream =True)
# ονομάστε το αρχείο ήχου
# εδώ ονομάζω το αρχείο ήχου όπως
# ο τίτλος του κομματιού με επέκταση .mp3
όνομα αρχείου =sc_path + '/' + audio.title.replace("/", "") + ".mp3"
# open method στην python ανοίγει το αρχείο σε εγγραφή
λειτουργία # για να αποθηκεύσετε τα περιεχόμενα στο αρχείο. Εδώ,
# το αρχείο ήχου θα αποθηκευτεί στο σύστημα.
με open(όνομα αρχείου, "wb") ως f:
για chunk στο answer.iter_content(chunk_size=1024):
αν είναι κομμάτι:
f.write(κομμάτι)
print("Η λήψη ολοκληρώθηκε:", όνομα αρχείου)
εκτός Εξαίρεσης ως e:
εκτύπωση(στρ(ε))
def Bandcamp_Downloader(url):
δοκιμή:
# διαδρομή όπου θα αποθηκευτούν όλοι οι ήχοι
bc_path =os.getcwd()
# η συνάρτηση παίρνει τη διεύθυνση url του άλμπουμ ως
# όρισμα και επιστρέφει το αντικείμενο για αυτό
# συγκεκριμένο άλμπουμ
άλμπουμ =Bandcamp(url)
# το παρακάτω for loops εκτυπώνει το όνομα του κομματιού
# και διεύθυνση URL όλων των κομματιών που υπάρχουν στο
# άλμπουμ
για κομμάτι στο album.tracks():
print("Track:", track.title, track.url)
# επιλέξτε οποιαδήποτε μορφή λήψης εδώ επιλέγω
# Μορφή "mp3-v0" που είναι mp3 320k
μορφή ="mp3-v0"
Η λειτουργία # θα πραγματοποιήσει λήψη του τραγουδιού/ήχου με
# χρήστης εισήγαγε όνομα και πραγματοποιεί λήψη του ήχου
# καθορισμένη μορφή
για κομμάτι στο album.tracks():
track.download(bc_path, track.title.replace("/","")+"."
+ μορφή)
print("Η λήψη ολοκληρώθηκε:", bc_path)
εκτός Εξαίρεσης ως e:
εκτύπωση(στρ(ε))
def main():
ενώ Αλήθεια:
print ("Επιλέξτε μια επιλογή:")
print ("1. YouTube Downloader")
print ("2. SoundCloud Downloader")
print ("3. Bandcamp Downloader")
εκτύπωση ("4. Έξοδος")
επιλογή =εισαγωγή ("Εισαγάγετε την επιλογή σας:")
εάν επιλογή =="1":
url =input ("Εισαγάγετε τη διεύθυνση URL του YouTube:")
YouTube_Downloader(url)
elif επιλογή =="2":
url =input ("Εισαγάγετε τη διεύθυνση URL του Soundcloud:")
Soundcloud_Downloader(url)
elif επιλογή =="3":
url =input ("Εισαγάγετε τη διεύθυνση URL του Bandcamp:")
Bandcamp_Downloader(url)
elif επιλογή =="4":
εκτύπωση ("Έξοδος...")
διακοπή
εάν __name__ =="__main__":
κύριος()
```