Σήμερα θα δούμε πως μπορούμε με το ανοιχτού κώδικα, youtube-dl να κατεβάσουμε το ηχητικό κομμάτι του Video (ομιλία, μουσική κλπ) από το youtube, να κατεβάσουμε ολόκληρη μια playlist και να φτιάξουμε ένα μικρό προγραμματάκι που θα μας διευκολύνει πολύ.
Υπάρχουν πολλές λύσεις για να το κάνεις αυτό, κυρίως μέσω πρόσθετων στον browser, αλλά πολλά χρησιμοποιούν τρίτες υπηρεσίες, που από την μια δεν υπάρχει λόγος ενώ πολλές φορές σταματάνε να δουλεύουν. Επίσης δεν γνωρίζω και κανένα να κατεβάζει playlists. Αν κάποιος θέλει ας μεταφέρει την εμπειρία του από άλλες λύσεις.
Να προσθέσω πως εκτός από το youtube μπορεί να κατεβάσει βίντεο και ήχο από πολλά άλλα site όπως το vimeo το Dailymotion, από εμπορικά όπως το Lynda, από καθαρά μουσικά όπως το soundcloud και πολλά άλλα.
Εγκατάσταση Youtube-dl
Υπάρχουν τρεις τρόποι για την λήψη και εγκατάσταση του youtube-dl. Ο πρώτος είναι απευθείας λήψη από την επίσημη τοποθεσία ο άλλος είναι μέσω των αποθετηρίων της διανομής σας και ο τρίτος είναι για τις διανομές APT μέσω PPA.
Λήψη youtube-dl απο την επίσημη πηγή
Για να το κάνετε λήψη απλά τρέχετε τις παρακάτω εντολές οι οποίες θα κατεβάσουν το youtube-dl και θα το τοποθετήσουν στο σύστημά σας για να είναι προσβάσιμο με μια εντολή:
$ sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl
Λήψη και εγκατάσταση youtube-dl μέσω αποθετηρίου
To youtube-dl θα το βρείτε στα αποθετήρια σχεδόν όλων των διανομών και μπορείτε να το αναζητήσετε και να το κάνετε εγκατάσταση από το κέντρο λογισμικού ή μέσω τερματικού με τις αντίστοιχες εντολές εγκατάστασης (apt, dnf, yaourt κλπ)
….. μια αναζήτηση είναι… κάντε και κάτι… :)

Στην φωτογραφία το gui επί το έργον. Κατέβασμα μιας εξαιρετικά καλής playlist, με υπότιτλους όπου υπάρχουν, αριθμημένη για γραμμική άλγεβρα.
Οδηγίες χρήσης Youtube-dl
Θα εστιάσουμε στην χρήση του youtube-dl μέσω τερματικού μιας και όπως είπαμε θα φτιάξουμε το δικό μας προγραμματάκι για να το χρησιμοποιούμε πιο εύκολα.
Η χρήση του είναι απλή. Γράφετε το όνομα youtube-dl και βάζετε είτε όλο το λινκ είτε μόνο το τελευταίο τμήμα του. π.χ. Για να κατεβάσουμε την τελευταία εκπομπή του technopolitan.gr αντιγράφουμε είτε όλο το λινκ είτε μόνο το τελευταίο τμήμα του:

Με άλλα λόγια στο τερματικό γράφετε:
$ youtube-dl Chbprg4gza4
όπου τα ακατανόητα όπως είπα πιο πάνω είναι το τελευταίο τμήμα του url της playlist ή του βίντεο. Εναλλακτικά είπαμε, μπορείς απλά να δώσεις το πλήρες URL.
Δημιουργία μικρο-εφαρμογής για το youtube-dl
To youtube-dl όπως το γράψαμε πάνω είναι στην απλή του μορφή. Μπορείς να επιλέγεις φορμάτ, ποιότητα, υπότιτλους και πολλά άλλα για να έχεις περισσότερο έλεγχο. Αυτά και πολλά άλλα θα τα βρεις στην σελίδα του https://github.com/rg3/youtube-dl/
Όταν μια συνήθεια επαναλαμβάνεται, καλό είναι να το αυτοματοποιούμε. Αν για παράδειγμα κατεβάσουμε μια μουσική με άδεια royalty free απο το youtube και κάθε φορά θέλουμε να έχουμε το ίδιο format .mp3 και να έχει το όνομα του τραγουδιού τότε μπορούμε όλο αυτό να το κάνουμε μια μικρο εφαρμογή.
Είχαμε μιλήσει στο άρθρο «φτιάξτε τις δικές σας εντολές» οπότε θα γράψουμε ένα απλό bash script που θα
- κατεβάζει πάντα την τελευταία έκδοση του youtube-dl
- θα κάνει εξαγωγή το τραγούδι ή τον ήχο από βίντεο σε mp3
- και θα το αποθηκεύει με το όνομά του
Αφού διάβασες το άρθρο που προτείναμε, άνοιξε έναν απλό κειμενογράφο (π.χ. VIM…) και γράψε τον παρακάτω κώδικα:
#!/bin/bash clear echo "Γίνεται λήψη της τελευταίας έκδοσης του youtube-dl" sleep 2 sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl sleep 1 echo "" echo "" read -rp " Δώσε μου το url link από το βίντεο η την playlist: " videolist /usr/local/bin/youtube-dl --extract-audio --audio-format mp3 -o '%(title)s.%(ext)s' $videolist
Αποθηκεύστε το αρχείο ως «youtube-downloader» και μεταφέρετε το στον φάκελο /usr/local/bin και το μετατρέπετε σε εκτελέσιμο sudo chmod +x /usr/local/bin/youtube-downloader
Έπειτα το τρέχετε στο τερματικό ως youtube-downloader και αυτόματα θα κατεβάσει την τελευταία έκδοση του youtube-dl, θα σας ζητήσει το λινκ του βίντεο από όπου θέλετε να εξάγετε τον ήχο και έπειτα θα το μετατρέψει σε mp3.
Η σειρά άρθρων #cinnamon_linux_tips και #linuxmint_tips είναι μια σειρά μικρών και χρήσιμων συμβουλών, όπως δημοσιεύθηκαν στην κοινότητα Linux Mint και αντιγράφτηκαν εδώ με την σύμφωνη γνώμη του Διόνυσου Ασφοδελάκη (Talos)
$ /usr/local/bin/youtube-dl –extract-audio –audio-format mp3 -o ‘%(title)s.%(ext)s’ $videolist
Δεν μου φαίνεται η καλύτερη λύση γιατί κατεβάζει το βίντεο για να ριπάρει τον ήχο κάτι που δεν είναι πάντα αναγκαίο. Είναι δυνατό να επιλεγούν μόνο τα audio strems (με σειρά opus/vorbis/m4a):
$ /usr/local/bin/youtube-dl -f 251/250/172/171/141/140 -x –audio-format opus -o ‘%(title)s.%(ext)s’ $videolist
Το transcode χρειάζεται μόνο στη περίπτωση του m4a (aac encoding) καθώς θέλουμε royalty-free formats. Φυσικά opus > mp3 εκτός και αν κάποιος έχει συσκευές χωρίς υποστήριξη. Τα format έρχονται με τρία bitrates, στην εντολή έχω επιλέξει μόνο τα δυο υψηλότερα.
Ωραίος !!! Πολύ καλή υλοποίηση. Για αυτό είπα ότι υπάρχουν πολλές επιλογές που μπορεί κάποιος να δει και να διαμορφώσει ανάλογα με τις ανάγκες του και τους αυτοματισμούς που θέλει.
Και μικρό αλλά ολίγο σημαντικό typo.
>sudo apt install youtube-dlg
s/dlg/dl
το youtube-dlg είναι για το GUI, εξου και το `g` στο τέλος.
Πράγματι. Δεν γνώριζα καν ότι υπήρχε GUI για το youtube-dl και δεν πρόσεξα τη φωτογραφία.
«`bash
#!/bin/bash
echo What is the artist of the song?
read ARTIST
echo What is the name of the song?
read NAME
youtube-dl –extract-audio –audio-format mp3 «ytsearch:$ARTIST $NAME album version»
«`
Next level… :) Εσύ έφτιαξες την αναζήτηση να γίνεται στο τερματικό και να μην χρειάζεται να πας στο Youtube. Το θέμα είναι πόσο ακριβές είναι, γιατί στις δοκιμές μου… δεν ήταν :)
Πολύ χρήσιμο εργαλείο το youtube-dl, ειδικά για τραγούδια. Το μόνο μου θέμα ήταν τα album, τα οποία συχνά δημοσιεύονται ως ένα ενιαίο βίντεο, αλλά όταν τα κατεβάζω προτιμώ να έχω το κάθε κομμάτι αποθηκευμένο σε ξεχωριστό αρχείο.
Είχα φτιάξει ένα σκριπτάκι που αποθηκεύει τα album ως ξεχωριστά κομμάτια – ίσως φανεί χρήσιμο και σε κάποιον άλλον: https://github.com/Pab0/album_splitter
Τα timestamps τα τραβάει από την περιγραφή του βίντεο, αν υπάρχουν – ευτυχώς οι περισσότεροι uploaders τα παραθέτουν.
Μπράβο ! Να, άλλη μια καλή υλοποίηση !