Berikut ini catatan belajar tentang koding Python untuk membuat aplikasi konverter video youtube ke MP3, dll. Syarat:
1. Di komputer sudah terinstall Python. 
2. Sudah mempunyai file yt-dlp, bila belum ada silakan unduh yt-dlp dari github gratis.
3. Sudah mempunya file ffmpeg, bila belum ada silakan unduh dari sini dan ekstrak.
Berikut ini prosedurnya berdasarkan praktik saya.
Pada praktiknya file yt-dlp dan semua file hasil ekstrak-an dari ffmpeg saya letakkan dalam folder D:\Software\YoutubeCLI. Silakan menyesuaikannya sendiri. Jangan lupa mengeditnya juga dalam file py.
import tkinter as tk
from tkinter import filedialog, messagebox
import subprocess
import os
# Path ke yt-dlp dan ffmpeg
YT_DLP_PATH = r"D:\Software\YoutubeCLI\yt-dlp.exe"  # Path ke yt-dlp.exe
FFMPEG_PATH = r"D:\Software\YoutubeCLI\ffmpeg.exe"  # Path ke ffmpeg.exe
# Fungsi untuk memilih folder penyimpanan
def choose_folder():
    folder = filedialog.askdirectory()
    if folder:
        folder_path.set(folder)
# Fungsi untuk memulai konversi
def start_conversion():
    url = url_entry.get()
    folder = folder_path.get()
    file_format = format_var.get()
    file_name = file_name_entry.get()
    if not url or not folder or not file_name:
        messagebox.showerror("Error", "URL, folder penyimpanan, dan nama file harus diisi!")
        return
    try:
        # Perintah yt-dlp
        command = [
            YT_DLP_PATH,
            "-x",  # Ekstrak audio
            "--audio-format", file_format,  # Format output
            "--ffmpeg-location", FFMPEG_PATH,  # Path ke ffmpeg
            "-o", os.path.join(folder, f"{file_name}.%(ext)s"),  # Lokasi penyimpanan dan nama file
            url  # URL YouTube
        ]
        # Jalankan perintah
        process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        stdout, stderr = process.communicate()
        if process.returncode == 0:
            messagebox.showinfo("Sukses", "Konversi berhasil!")
        else:
            messagebox.showerror("Error", f"Terjadi kesalahan:\n{stderr.decode()}")
    except Exception as e:
        messagebox.showerror("Error", f"Terjadi kesalahan: {str(e)}")
# Buat GUI
app = tk.Tk()
app.title("YouTube to MP3 Converter")
# Input URL
tk.Label(app, text="URL YouTube:").grid(row=0, column=0, padx=10, pady=10)
url_entry = tk.Entry(app, width=50)
url_entry.grid(row=0, column=1, padx=10, pady=10)
# Input Nama File
tk.Label(app, text="Nama File:").grid(row=1, column=0, padx=10, pady=10)
file_name_entry = tk.Entry(app, width=30)
file_name_entry.grid(row=1, column=1, padx=10, pady=10)
# Pilih Format
tk.Label(app, text="Format Output:").grid(row=2, column=0, padx=10, pady=10)
format_var = tk.StringVar(value="mp3")  # Default format MP3
format_menu = tk.OptionMenu(app, format_var, "mp3", "wav", "aac", "m4a")
format_menu.grid(row=2, column=1, padx=10, pady=10)
# Pilih Folder Penyimpanan
tk.Label(app, text="Folder Penyimpanan:").grid(row=3, column=0, padx=10, pady=10)
folder_path = tk.StringVar()
folder_entry = tk.Entry(app, textvariable=folder_path, width=40)
folder_entry.grid(row=3, column=1, padx=10, pady=10)
tk.Button(app, text="Pilih Folder", command=choose_folder).grid(row=3, column=2, padx=10, pady=10)
# Tombol Konversi
tk.Button(app, text="Konversi", command=start_conversion).grid(row=4, column=1, padx=10, pady=20)
# Jalankan aplikasi
app.mainloop()
Kode Python yang harus dibuat, boleh menggunakan Notepad++ dan disimpan dengan nama ber-ekstensi .py. Saya memberinya nama youtube_converter_gui.py. Boleh saja diganti sesuai keinginan tentang nama file ini.
Untuk menjalankan setelah file py ini tersimpan dalam folder yang ditentukan, silakan klik ganda file youtube_converter_gui.py.
Tampilan GUI seharusnya seperti berikut ini.
Silakan isikan:
- URL YouTube dengan menyalinnya dari browser.
- Tulis Nama File
- Pilih Format Output dengan memilihnya pada kotak mp3. Format audio yang tersedia mp3, wav, aac, dan m4a. Format ini sebenarnya dapat disesuai dalam file dot py.
- Tentukan Folder Penyimpanan-nya dengan klik Pilih Folder.
- Tekan Tombol Konversi.
 
 




Tidak ada komentar:
Posting Komentar