Hướng Dẫn Chi Tiết Tải và Chuyển Đổi Video YouTube Sang MP3 Bằng Python

Làm sao để chuyển đổi video YouTube sang MP3 bằng Python ?

Trong bài viết này, chúng ta sẽ cùng nhau xây dựng một đoạn mã Python để chuyển đổi video YouTube sang MP3. Quá trình này bao gồm việc cài đặt các công cụ cần thiết, viết mã để xử lý và đảm bảo rằng tên file đầu ra không chứa các ký tự gây lỗi đường dẫn. Hãy xem thêm các đoạn code cập nhật mới mỗi ngày tại openaimobi.com

Bước 1: Cài Đặt Công Cụ Cần Thiết

1. Python

Đảm bảo rằng bạn đã cài đặt Python trên máy tính. Bạn có thể tải và cài đặt Python từ python.org.

2. yt-dlp

yt-dlp là một fork của youtube-dl, giúp tải video từ YouTube. Cài đặt yt-dlp bằng pip:

pip install yt_dlp

3. FFmpeg

FFmpeg là một công cụ xử lý đa phương tiện, giúp chuyển đổi định dạng file. Tải và cài đặt FFmpeg từ ffmpeg.org. Sau khi tải xong, giải nén và thêm đường dẫn bin của FFmpeg vào biến môi trường PATH. Ví dụ: C:\ffmpeg\bin.

Bước 2: Viết Mã Python

Tạo một file Python mới, ví dụ: youtube_to_mp3.py, và chèn đoạn mã sau:

import os
import re
import yt_dlp

def sanitize_filename(filename):
    """
    Remove invalid characters from the filename.
    """
    return re.sub(r'[\/*?:"<>|]', "", filename)

def download_and_convert_to_mp3(youtube_url, output_path):
    try:
        # Create output directory if it doesn't exist
        os.makedirs(output_path, exist_ok=True)
        
        # Define the output template for the downloaded file
        # Use a placeholder for title sanitization
        output_template = os.path.join(output_path, '%(id)s.%(ext)s')
        
        # Download the audio using yt-dlp
        ydl_opts = {
            'format': 'bestaudio/best',
            'outtmpl': output_template,
            'postprocessors': [{
                'key': 'FFmpegExtractAudio',
                'preferredcodec': 'mp3',
                'preferredquality': '192',
            }],
            'postprocessor_args': ['-ar', '44100'],
            'prefer_ffmpeg': True,
            'keepvideo': False,
            'ffmpeg_location': 'C:\ffmpeg-N-116151-gcd9ceaef22-win64-gpl\ffmpeg-N-116151-gcd9ceaef22-win64-gpl\bin'  # Update this path if necessary
        }

        with yt_dlp.YoutubeDL(ydl_opts) as ydl:
            info_dict = ydl.extract_info(youtube_url, download=True)
            title = sanitize_filename(info_dict.get('title', 'video'))
            temp_video_path = os.path.join(output_path, f"{info_dict['id']}.m4a")
            mp3_path = os.path.join(output_path, f"{title}.mp3")

            # Rename the file to the sanitized title
            if os.path.exists(temp_video_path):
                os.rename(temp_video_path, mp3_path)

        print(f"Đã chuyển đổi và lưu file MP3 vào {mp3_path}")

    except Exception as e:
        print(f"Lỗi: {str(e)}")

# Sử dụng hàm download_and_convert_to_mp3 với đường dẫn và link YouTube
youtube_url = "https://youtu.be/LymGUEgscTk?si=P0OBzfxaRosTT3CP"
output_path = "D:\Youtube\MP3"
download_and_convert_to_mp3(youtube_url, output_path)

Bước 3: Giải Thích Mã

Thư Viện

  • osre: Các thư viện chuẩn của Python để xử lý hệ thống tệp và biểu thức chính quy.
  • yt_dlp: Thư viện dùng để tải video từ YouTube.

Hàm sanitize_filename

Hàm này dùng để loại bỏ các ký tự không hợp lệ trong tên file.

Hàm download_and_convert_to_mp3

Hàm này thực hiện việc tải video từ YouTube và chuyển đổi nó sang định dạng MP3.

  • yt_dlp.YoutubeDL: Được cấu hình để tải âm thanh tốt nhất và chuyển đổi nó sang MP3 sử dụng FFmpeg.

Cấu Hình yt-dlp

  • format: Chọn định dạng âm thanh tốt nhất.
  • outtmpl: Định dạng tên file đầu ra.
  • postprocessors: Dùng FFmpeg để chuyển đổi định dạng file.
  • ffmpeg_location: Đường dẫn đến thư mục bin của FFmpeg.

Bước 4: Chạy Mã Python

Mở terminal hoặc command prompt, chuyển đến thư mục chứa file youtube_to_mp3.py, và chạy lệnh:

python youtube_to_mp3.py

Đoạn mã sẽ tải video từ YouTube và chuyển đổi nó sang MP3, lưu file MP3 vào thư mục D:\Youtube\MP3.

Kết Luận

Với các bước trên, bạn đã hoàn thành việc xây dựng một công cụ Python để chuyển đổi video YouTube sang MP3. Công cụ này hữu ích trong việc lưu trữ các nội dung âm thanh yêu thích từ YouTube trên máy tính của bạn.

Code hoàn thiện

[highlight_code lang="python"] import os import re import yt_dlp def sanitize_filename(filename): """ Remove invalid characters from the filename. """ return re.sub(r'[\\/*?:"<>|]', "", filename) def download_and_convert_to_mp3(youtube_url, output_path): try: # Create output directory if it doesn't exist os.makedirs(output_path, exist_ok=True) # Define the output template for the downloaded file # Use a placeholder for title sanitization output_template = os.path.join(output_path, '%(id)s.%(ext)s') # Download the audio using yt-dlp ydl_opts = { 'format': 'bestaudio/best', 'outtmpl': output_template, 'postprocessors': [{ 'key': 'FFmpegExtractAudio', 'preferredcodec': 'mp3', 'preferredquality': '192', }], 'postprocessor_args': ['-ar', '44100'], 'prefer_ffmpeg': True, 'keepvideo': False, 'ffmpeg_location': 'C:\\ffmpeg-N-116151-gcd9ceaef22-win64-gpl\\ffmpeg-N-116151-gcd9ceaef22-win64-gpl\\bin' # Update this path if necessary } with yt_dlp.YoutubeDL(ydl_opts) as ydl: info_dict = ydl.extract_info(youtube_url, download=True) title = sanitize_filename(info_dict.get('title', 'video')) temp_video_path = os.path.join(output_path, f"{info_dict['id']}.m4a") mp3_path = os.path.join(output_path, f"{title}.mp3") # Rename the file to the sanitized title if os.path.exists(temp_video_path): os.rename(temp_video_path, mp3_path) print(f"Đã chuyển đổi và lưu file MP3 vào {mp3_path}") except Exception as e: print(f"Lỗi: {str(e)}") # Sử dụng hàm download_and_convert_to_mp3 với đường dẫn và link YouTube youtube_url = "https://youtu.be/LymGUEgscTk?si=P0OBzfxaRosTT3CP" output_path = "D:\\Youtube\\MP3" download_and_convert_to_mp3(youtube_url, output_path) [/highlight_code]
0/5 (0 Reviews)

We will be happy to hear your thoughts

Leave a reply

openaimobile.com
Logo
Compare items
  • Total (0)
Compare
0
Shopping cart