如何一分钟用Python自制应用下载Youtube视频

已收录   阅读次数: 1,470
2021-01-2223:47:50 发表评论
摘要

伯衡君此前分享过几个用Python轻松下载YouTube视频的方法,具体可以参看下方的前情提要,而这次伯衡君想到何不制作一个应用来让操作更加简便呢,有了图形界面,是不是更好操作呢?大家一分钟就可以制作完成,使用这样书写的代码的话(从头写的话那就是几十分钟了,嘿嘿),分享给大家……

分享至:
如何一分钟用Python自制应用下载Youtube视频

开篇寄语

伯衡君此前分享过几个用Python轻松下载YouTube视频的方法,具体可以参看下方的前情提要,而这次伯衡君想到何不制作一个应用来让操作更加简便呢,有了图形界面,是不是更好操作呢?大家一分钟就可以制作完成,使用这样书写的代码的话(从头写的话那就是几十分钟了,嘿嘿),分享给大家。

前情提要

内容详情

本篇以Windows系统为例,其他系统打包,生成该系统可用的应用。撰写代码,肯定是需要一个IDE来撰写的,伯衡君使用的是Pycharm,其他诸如VScode,Notepad++等等也可以酌情使用。

伯衡君使用了前情提要中的第一篇文章的库,pytube,请先下载安装好,之后打开pycharm,输入以下代码,伯衡君已经写好了:

from pytube import YouTube
from tkinter import (
	Tk,
	Label,
	Entry,
	Button,
	StringVar,
	messagebox,
	filedialog
)

root = Tk()
download_path = StringVar()
video_link = StringVar()
win_width = 600
win_height = 300
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
start_x = int(screen_width / 2 - win_width / 2)
start_y = int(screen_height / 2 - win_height / 2)


def app_meta_data():
    root.geometry('{}x{}+{}+{}'.format(win_width, win_height, start_x, start_y))
    root.title('Youtube Downloader')
    root.resizable(False, False)
    root.configure(bg="#ff0022")


def heading():
    text = "YT Downloader"
    font = ("Microsoft YaHei", 18, "bold")
    heading = Label(root, text=text, font=font, bg="#ff0022", fg="#ffffff", padx=10)
    heading.pack()


def video_link_label():
    text = "Youtube Link"
    font = ("Microsoft YaHei", 12, "bold")
    link_label = Label(root, text=text, font=font, bg="#ff0022", fg="#000000")
    link_label.place(relx=0.03, rely=0.26)


def file_path():
    text = "File Save Path"
    font = ("Microsoft YaHei", 12, "bold")
    path_label = Label(root, text=text, font=font, bg="#ff0022", fg="#000000")
    path_label.place(relx=0.03, rely=0.46)


def youtube_input():
    font = ("Microsoft YaHei", 10)
    yt_link = Entry(root, width=40, textvariable=video_link, relief="solid", font=font)
    yt_link.place(relx=0.3, rely=0.25, relheight=0.1)


def file_save():
    font = ("Microsoft Yahei", 10)
    file_path = Entry(root, width=30, textvariable=download_path, relief="solid", font=font)
    file_path.place(relx=0.3, rely=0.45, relheight=0.1)


def browser_button():
    text = "Browser"
    font = ("Microsoft Yahei", 10, "bold")
    browser_file = Button(root, text=text, font=font, command=browse)
    browser_file.place(relx=0.73, rely=0.45)


def browse():
    download_directory = filedialog.askdirectory()
    download_path.set(download_directory)


def download_button():
    text = "Download"
    font = ("Microsoft Yahei", 10, "bold")
    download_file = Button(root, text=text, font=font, command=download_video)
    download_file.place(relx=0.45, rely=0.8)


def download_video():
    try:
        youtube_link = video_link.get()
        download_folder = download_path.get()
        get_video = YouTube(youtube_link)
        video_stream = get_video.streams.first()
        video_stream.download(download_folder)
        messagebox.showinfo("Success")
    except:
        messagebox.showinfo("Fail")


def main():
    app_meta_data()
    heading()
    video_link_label()
    file_path()
    file_save()
    youtube_input()
    browser_button()
    download_button()
    root.mainloop()


if __name__ == '__main__':
    main()

在编辑器里面就是这个样子的,如下图所示:

如何一分钟用Python自制应用下载Youtube视频

保存好后,找到该文件所在地,咱们要将它打包为应用,如何打包呢?这里需要用到python的一个库,名字叫做pyinstaller,按下“win”+ "R",调出运行窗口,然后输入cmd,调出命令窗口,输入“pip install pyinstaller”,如下图所示:

如何一分钟用Python自制应用下载Youtube视频

伯衡君已经安装过了,所以是这个样子,未安装的会有进度条的。

安装好后,再返回那个文件所在的文件夹,就是IDE编辑器左侧列出的那个文件所在的文件夹。

如何一分钟用Python自制应用下载Youtube视频

找到后,在该页面按住"shift"+鼠标右键,有一个powershell选项,将它调用出来,如下图所示:

如何一分钟用Python自制应用下载Youtube视频

之后在该窗口先是输入cmd,回车,在输入"pyinstaller main.py",之后等待完成,如下图所示:

如何一分钟用Python自制应用下载Youtube视频

之后,生成的exe应用就在dist这个文件夹内,打开后,找到exe程序运行即可,如下图所示:

如何一分钟用Python自制应用下载Youtube视频

之后再地址栏复制粘贴YouTube视频地址,之后选择保存地址,然后点击下载就可以了。

温馨提示

如果你不想写,那么伯衡君就把生成好的应用打包了,又想要的可以下载使用,对了,如果你在中国大陆的话,请使用VPN等科学上网翻墙方式来下载,不然会失败的。

文件下载 Youtube_donwloader
下载地址
  • 我的微信
  • 微信扫一扫加好友
  • weinxin
  • 我的微信公众号
  • 扫描关注公众号
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: