Paling suka diakhir pekan dengerin music slowrock sambil mikir-mikir ide yang akan ditulis. Koleksi music sekarang sudah sangat gampang karena ada Youtube dan paket data yang murah. Nah siapa yang disini suka koleksi mp3 dari Youtube? hemm…. pasti suka menggunakan converter berbasis online dan yang menyebalkan sekali banyak iklan sana-sini tanpa kita klik pun iklan muncul di tab yang baru.
Sebenarnya sih itu nggak masalah sih, karena juga namanya orang lagi cari makan. Tapi kalau tab browser sampai ada 3 kali muncul iklan sudah sangat mengganggu. Yo wes terpaksa kita coding saja yaitu kita buat aplikasi berbasis terminal/console saja yuk! Hanya dengan copy pastekan alamat URL dan otomatis terdownload youtube ke mp3 tanpa iklan!
Ada 2 topik yang akan kita bahas yaitu library FFMPEG dan library Downloader nya. Library FFMPEG banyak digunakan oleh developer untuk melakukan convert file media ke beberapa format sedangkan library downloader nya untuk melakukan download file youtube dengan format .webm yang kemudian kita convert ke mp3 tentu menggunakan Library FFMPEG.
Aplikasi yang nanti kita buat sudah saya coba gunakan sampai sekarang untuk urusan download file Mp3 di Youtube tentu tanpa iklan!
Library FFMPEG
Contents
Converter Youtube ke Mp3 tanpa iklan butuh library pihak ketiga dan tentunya free dan open source. Library FFMPEG merupakan tools utama untuk melakukan banyak konversi file media dari video ataupun audio. Beberapa format audio seperti Mp3 secara default itu bukan opensource sehingga di beberapa OS linux kita harus install sendiri library pemutar file Mp3.
Youtube menggunakan format audio seperti *.webm yang merupakan format khusus file media yang dikembangkan untuk internet sehingga memudahkan peramban seperti chrome, firefox, edge. Webm bersifat open source ini dikembangkan oleh Google berdasarkan Matroska dan disandikan oleh VP8 dan Vorbis (diperbarui ke VP9 dan Opus sejak 2013).
library FFMPEG tersedia di banyak OS karena sifatnya yang opensource, kalian bisa download di https://www.ffmpeg.org/download.html#build-windows atau langsung saja bagi pengguna windows 64 bit https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n4.4-latest-win64-gpl-4.4.zip
Setelah kalian download maka lakukan saja extract ke C:\ffmpeg-n4.4-latest-win64-gpl-4.4\bin
dan lakukan setting path Set Path di Windows . Buka command prompt dan ketikan ffmpeg untuk mencoba apakah sudah dikenali oleh system? ketikan ffmpeg
ffmpeg version n4.4.2-3-gd4b7b3c03e-20220907 Copyright (c) 2000-2021 the FFmpeg developers built with gcc 12.1.0 (crosstool-NG 1.25.0.55_3defb7b) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --disable-frei0r --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --enable-libvidstab --disable-vulkan --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20220907 libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Use -h to get full help or, even better, run 'man ffmpeg'
Convert *.webm ke *.mp3
Misalkan saja, kita punya file *.webm yang akan di konversi ke *.mp3, maka perintah yang digunakan untuk convert yaitu
ffmpeg -i file.webm file.mp3
outputnya yaitu
Input #0, matroska,webm, from 'file.webm': Metadata: encoder : google/video-file Duration: 00:08:56.14, start: -0.007000, bitrate: 136 kb/s Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default) File 'file.mp3' already exists. Overwrite? [y/N] y Stream mapping: Stream #0:0 -> #0:0 (opus (native) -> mp3 (libmp3lame)) Press [q] to stop, [?] for help Output #0, mp3, to 'file.mp3': Metadata: TSSE : Lavf58.76.100 Stream #0:0(eng): Audio: mp3, 48000 Hz, stereo, fltp (default) Metadata: encoder : Lavc58.134.100 libmp3lame size= 3840kB time=00:04:06.96 bitrate= 127.4kbits/s speed=41.1x
Untuk memastikan convert nya berhasil atau tidak, play saja file tersebut pakai VLC atau media player yang lainnya. Bila ingin overwrite file yang sudah ada, ketikan saja -y
ffmpeg -y -i file.webm file.mp3
Library Downloader Youtube
Selanjutnya kita butuh library untuk downloader file media youtube yaitu pytube, untuk install cukup menggunakan perintah pip yaitu
pip install pytube==12.1.0
karena ada bugs, kita update fix bugsnya menggunakan perintah
python -m pip install git+https://github.com/Zeecka/pytube@fix_1060
berdasarkan link https://stackoverflow.com/questions/68680322/pytube-urllib-error-httperror-http-error-410-gone
PyTube
Kita akan mencoba Converter Youtube ke Mp3 tanpa iklan menggunakan PyTube
from pytube import YouTube as YT link = "https://www.youtube.com/watch?v=3ABXCFzvq3I" yt = YT(link)
Bila kalian ingin tahu detail video nya
print("Judul: ",yt.title) print("Jumlah penonton: ",yt.views) print("Panjang Video: ",yt.length) print("Rating Video: ",yt.rating)
atau Langsung saja kita ambil audionya saja
#ambil yang paling akhir karena yang tertinggi ys = yt.streams.filter(only_audio=True)[-1] ys.download(filename=yt.title+".webm") #artinnya current location
langkah selanjutnya yaitu memanggil FFMPEG menggunakan subprocess
PyTube hanya bisa download file berformat *.webm di youtube, oleh sebab itu kita modifikasi dengan menambahkan FFMPEG
import subprocess print(subprocess.run('ffmpeg -y -i "'+ yt.title+'.webm" "' + yt.title+'.mp3"',shell=True,capture_output=True))
perintah -y diatas agar overwrite dengan file yang ada.
Membuat aplikasi terminal
Tentu menggunakan cara diatas kurang praktis, kita buat saja versi aplikasi terminalnya. Kita berikan saja nama file nya youtube.py . Kita perbaiki saja agar remove file *.webm serta menghilangkan illegal character
from pytube import YouTube as YT import subprocess from pytube.cli import on_progress import os import re def run(): link = input("masukan donk alamat URL Video youtube:") yt = YT(link, on_progress_callback=on_progress) print("Judul: ",yt.title) print("Jumlah views: ",yt.views) #ambil yang paling akhir karena yang tertinggi ys = yt.streams.filter(only_audio=True)[-1] filename = yt.title filename = re.sub('[^A-Za-z0-9]+', ' ', filename) ys.download(filename=filename+".webm") #artinnya current location subprocess.run('ffmpeg -y -i "'+ filename+'.webm" "' + filename+'.mp3"',shell=True,capture_output=True) #hapus file *.webm nya os.remove(filename+".webm") print("Download selesai... {}".format(link)) if __name__=='__main__': run()
Yuk kita coba, buka terminal ketikan
python youtube.py
hasilnya
masukan donk alamat URL Video youtube:https://www.youtube.com/watch?v=o0y6LVeHKlo Judul: Laptop Paling Worth it di Kelasnya, Udah sih Beli aja | Realme Book Review Jumlah views: 114608 Download selesai... https://www.youtube.com/watch?v=o0y6LVeHKlo██████| 100.0%
Agar lebih mudah kalian menggunakan youtube.py, maka copy saja file tersebut di C:/ dan pastikan kalian dari awal sudah set path nya ya! sehingga tidak perlu set path lagi. Sekarang kalian bisa panggil youtube.py di command prompt dan masukan URL nya dan nikmati musik slow rock nya
Gimana menurut kalian? Converter Youtube ke Mp3 tanpa iklan. Bila ada yang ingin download video di youtbe bisa kok, nanti kita edit lagi kode diatas atau ingin tahu lebih lanjut bisa pelajari https://towardsdatascience.com/build-a-youtube-downloader-with-python-8ef2e6915d97