Youtube là một trang web nơi bạn có thể tự do tải lên và chia sẻ video trực tuyến. Nhưng nếu có một cách dễ dàng hơn để tải xuống những video này hơn là cố gắng tìm URL của chúng thông qua mã nguồn thì sao? . Có nhiều thư viện lập trình khác nhau giúp việc tải xuống từ Youtube trở nên đơn giản hơn rất nhiều. Trong hướng dẫn này, chúng tôi sẽ tải xuống video Youtube bằng Python. Chúng tôi sẽ sử dụng PYtube giúp chúng tôi tải xuống cả video Youtube, tiêu đề, hình thu nhỏ thậm chí cả danh sách phát hoàn chỉnh. Chúng ta sẽ tạo hai chương trình. phiên bản đầu tiên là trình tải xuống dựa trên dòng lệnh và một phiên bản dựa trên GUI khác mà chúng tôi sẽ xây dựng bằng Tkinter
nội dung
Khách quan
- Tìm nạp tiêu đề video youtube
- Tìm nạp hình ảnh thu nhỏ của video youtube
- Tải video từ youtube
- Tải xuống video từ youtube ở độ phân giải cụ thể
- Danh sách phát từ youtube
- Tạo trình tải xuống youtube dựa trên GUI bằng Tkinter
điều kiện tiên quyết
PYtube
PyTube là một mô-đun Python mã nguồn mở và là tiện ích dòng lệnh để tải xuống nội dung và siêu dữ liệu YouTube. Nếu bạn đã quen thuộc với YouTube-DL, thì PyTube cũng có ý tưởng tương tự nhưng được viết bằng Python. Công cụ này cần rất ít để chạy, hoạt động trên các hệ thống Windows, Mac và Linux với Python 2 và 3.
Bạn có thể tải xuống pytube bằng lệnh sau trong dấu nhắc lệnh hoặc thiết bị đầu cuối của bạn
pip install pytube3
tkinter
Tkinter là một mô-đun GUI nâng cao cho Python. Nó cho phép bạn tạo giao diện người dùng đồ họa linh hoạt và mạnh mẽ. Thay vì chỉ cung cấp một cửa sổ đơn giản với các widget bên trong, bạn có thể đặt nhiều widget lại với nhau, thay đổi thuộc tính của chúng và liên kết chúng với dữ liệu. Widget là các thành phần GUI cơ bản cho phép bạn tạo các thành phần GUI tiêu chuẩn nhất. Chúng tồn tại trong nhiều ngôn ngữ lập trình, bao gồm cả Python
Bạn có thể tải xuống Tkinter bằng lệnh sau trong dấu nhắc lệnh hoặc thiết bị đầu cuối
pip install tkinter
Bước 1. Tìm nạp tiêu đề video youtube
from pytube import YouTube
url = '//www.youtube.com/watch?v=DODLEX4zzLQ'
yt_video = YouTube[url]
print[yt_video.title]
giải thích mã
- Nhập các gói
- Thêm URL của video youtube mà chúng tôi muốn tải xuống
- Gọi phương thức youtube
- In tiêu đề
đầu ra.
Như bạn có thể thấy nó đã hoạt động thành công và chúng tôi có tiêu đề của video youtube
Bước 2. Tìm nạp hình ảnh thu nhỏ của video youtube
from pytube import YouTube
url = '//www.youtube.com/watch?v=DODLEX4zzLQ'
yt_video = YouTube[url]
print[yt_video.thumbnail_url]
giải thích mã.
- Nhập các gói
- Thêm URL của video youtube mà chúng tôi muốn tải xuống
- gọi phương thức youtube
- Lấy hình thu nhỏ của video bằng phương pháp hình thu nhỏ
đầu ra
Bạn sẽ nhận được một liên kết ở đầu ra và nếu bạn mở liên kết, hình ảnh sẽ được hiển thị. Bạn có thể tải xuống từ đó.
Bước 3. Tải video từ Youtube
from pytube import YouTube
url = '//www.youtube.com/watch?v=DODLEX4zzLQ'
yt_video = YouTube[url]
# this method will download the highest resolution that video is available
yt_video = my_video.streams.get_highest_resolution[]
methodyt_video.download[]
print['your video is downloaded successfully']
giải thích mã
- Nhập các gói
- Thêm URL của video youtube mà chúng tôi muốn tải xuống
- Gọi phương thức youtube
- Để tải xuống video từ youtube, trước tiên chúng tôi cần xác định độ phân giải luồng
- Để tải video từ youtube chúng ta sẽ sử dụng cách download
Sau khi chạy mã, nó sẽ bắt đầu tải xuống video và sau khi hoàn thành, video youtube của bạn sẽ nằm trong cùng thư mục với tệp python của bạn.
Bước 4. Tải xuống video từ youtube ở độ phân giải cụ thể
Nếu bạn muốn tải xuống video ở độ phân giải cụ thể ở định dạng chỉ có âm thanh thì bạn có thể sử dụng đoạn mã sau
from pytube import YouTube
url = '//www.youtube.com/watch?v=DODLEX4zzLQ'
yt_video = YouTube[url]
# here we are fetching a list of all the video resolution
videos = yt_video.streams.all[]
# we are using enumerate to get the index number
res_list = list[enumerate[videos]]
for i in res_list:
print[i]
resolution = int[input["Enter the index number of the video : "]]
videos[resolution].download[]
print['your video is downloaded successfully']
giải thích mã
- Nhập các gói
- Thêm URL của video youtube mà chúng tôi muốn tải xuống
- Gọi phương thức youtube
- Ở đây chúng tôi đang tìm nạp danh sách tất cả các độ phân giải video
- Chúng tôi đang sử dụng kiểu liệt kê để lấy số chỉ mục
đầu ra
Ở đầu ra, nó sẽ hỏi bạn muốn tải xuống phiên bản video nào và bạn chỉ cần nhập số chỉ mục và nó sẽ tự động tải xuống
Bạn có thể sử dụng phương pháp lọc để lọc âm thanh duy nhất hoặc chỉ video
Để chỉ tải xuống âm thanh
# for getting only audio list
videos = yt_video.streams.filter[only_audio=True]
đầu ra
Chỉ tải xuống video
# for getting only video list
videos = yt_video.streams.filter[only_audio=True]
đầu ra
Bước -5. Tải xuống danh sách phát từ Youtube
________số 8_______giải thích mã.
- Nhập các gói
- Tạo một biến để lưu trữ dữ liệu của danh sách phát
- Thêm liên kết của danh sách phát
- in tên của video hiện đang tải xuống
Và đó là nó
Bước -6. Tạo trình tải xuống Youtube dựa trên GUI bằng trình thiết kế QT
# import required libraries
import string
import tkinter as tk
from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
from cv2 import dft
from pytube import YouTube
def createwidgits[]:
# creating a button
link_label = Label[root, text ='Paste URL: ', bg="#999999"]
# placing the label
link_label.grid[row=1, column=0, pady=10, padx=10]
# creating a entry point
root.link_text = Entry[root, width=60 , textvariable=video_link]
# placing the point
root.link_text.grid[row=1, column=1,pady=10, padx=10]
# creating a destination label
destination_label = Label[root, text ='Destination: ', bg="#999999"]
# placing the label
destination_label.grid[row=2, column=0, pady=10, padx=10]
# creating a destination box
root.destination_label = Entry[root, width=60 , textvariable=Download_path]
# placing the box
root.destination_label.grid[row=2, column=1,pady=10, padx=10]
# create a browse button
browse_but = Button[root, text="Browse", command=browse, width=10, bg="#ffffff"]
# place the button
browse_but.grid[row=2, column=2, pady=10, padx=10]
# create a download button
download_but = Button[root, text="Download", command=download_video, width=15, bg="#ff0000"]
# place the button
download_but.grid[row=3, column=1, pady=3, padx=3]
# define browse button function
def browse[]:
# set directory
downlaod_dir = filedialog.askdirectory[initialdir="Downlaod path"]
Download_path.set[downlaod_dir]
# create youtube video download function
def download_video[]:
url = video_link.get[]
folder = Download_path.get[]
get_video = YouTube[url]
get_stream = get_video.streams.first[]
get_stream.download[folder]
messagebox.showinfo["Your video downloaded successfully"]
# creating an instance
root = tk.Tk[]
# size of the window
root.geometry["600x120"]
root.resizable[False,False]
# name of the window
root.title["downloader"]
# colors of the window
root.config[background="#999999"]
video_link = StringVar[]
Download_path = StringVar[]
createwidgits[]
root.mainloop[]
đầu ra
Từ cuối cùng
Chúng tôi đã thảo luận về hai phương pháp mà bạn có thể sử dụng để tải xuống video Youtube bằng Python, ở bất kỳ chất lượng nào về máy tính của bạn trong vòng chưa đầy một phút. Phiên bản đầu tiên là trình tải xuống dựa trên dòng lệnh và phiên bản dựa trên GUI khác. Điều này có thể rất hữu ích để tải xuống video bài giảng trực tuyến, hướng dẫn trực tuyến, video hội nghị trực tuyến, bài nói chuyện hội nghị trực tuyến, lớp đào tạo trực tuyến, v.v. Bạn có thể sao chép và dán mã vào thiết bị đầu cuối của mình