python 視頻下載神器(you-get)

you-get是github上python的一個(gè)開源庫(https://github.com/soimort/you-get)封拧,使用you-get你只需要取得視頻所在網(wǎng)頁鏈接地址就可以很輕松的下載下來误趴,目前you-get所支持的網(wǎng)站包含國內(nèi)外幾十個(gè)網(wǎng)站(youtube、twitter、騰訊成福、愛奇藝、優(yōu)酷困食、bilibili等),基本上可以滿足你的需求翎承。

1.you-get可以直接通過命令行使用(前提是你要先安裝you-get:pip install you-get

下載命令:you-get ?your-url

l例如:you-get? https://www.bilibili.com/bangumi/play/ep118488?from=search&seid=5050973611974373611

效果如下:(我直接在pycharm的終端命令行執(zhí)行)

2.通過python 簡單調(diào)用you-get庫

# 硕盹!/usr/bin/env python

# -*-coding:utf-8-*-

import sys

import you_get

def download(url, path):

? ? sys.argv = ['you-get', '-o', path, url]

? ? you_get.main()

if __name__ == '__main__':

? ? # 視頻網(wǎng)站的地址

? ? url = 'https://www.bilibili.com/bangumi/play/ep118488?from=search&seid=5050973611974373611'

? ? # 視頻輸出的位置

? ? path = 'G:/test'

? ? download(url, path)

3.python 簡單集成 tkinter,通過GUI的形式展現(xiàn)(單線程叨咖,未做優(yōu)化瘩例,后續(xù)做優(yōu)化處理)

import re,sys甸各,you_get垛贤,webbrowser

import tkinter as tk

import tkinter.messagebox as msgbox

"""

視頻下載類

"""

class DownloadApp:

? ? # construct

? ? def __init__(self, width=800, height=200):

? ? ? ? self.w = width

? ? ? ? self.h = height

? ? ? ? self.title = '視頻下載助手'

? ? ? ? self.root = tk.Tk(className=self.title)

? ? ? ? self.url = tk.StringVar()

? ? ? ? self.start = tk.IntVar()

? ? ? ? self.end = tk.IntVar()

? ? ? ? self.path = tk.StringVar()

? ? ? ? self.path.set('D:/DownloadApp')

? ? ? ? # define frame

? ? ? ? frame_1 = tk.Frame(self.root)

? ? ? ? frame_2 = tk.Frame(self.root)

? ? ? ? frame_3 = tk.Frame(self.root)

? ? ? ? frame_4 = tk.Frame(self.root)

? ? ? ? # menu

? ? ? ? menu = tk.Menu(self.root)

? ? ? ? self.root.config(menu=menu)

? ? ? ? menu1 = tk.Menu(menu, tearoff=0)

? ? ? ? menu.add_cascade(label='Menu', menu=menu1)

? ? ? ? menu1.add_command(label='about me', command=lambda: webbrowser.open('https://blog.csdn.net/zwx19921215'))

? ? ? ? menu1.add_command(label='exit', command=lambda: self.root.quit())

? ? ? ? # set frame_1

? ? ? ? label1 = tk.Label(frame_1, text='請(qǐng)輸入視頻鏈接:')

? ? ? ? entry_url = tk.Entry(frame_1, textvariable=self.url, highlightcolor='Fuchsia', highlightthickness=1, width=35)

? ? ? ? # set frame_2

? ? ? ? s_lable = tk.Label(frame_2, text='起始值:')

? ? ? ? e_lable = tk.Label(frame_2, text='結(jié)束值:')

? ? ? ? start = tk.Entry(frame_2, textvariable=self.start, highlightcolor='Fuchsia', highlightthickness=1, width=10)

? ? ? ? end = tk.Entry(frame_2, textvariable=self.end, highlightcolor='Fuchsia', highlightthickness=1, width=10)

? ? ? ? # set frame_3

? ? ? ? label2 = tk.Label(frame_3, text='請(qǐng)輸入視頻輸出地址:')

? ? ? ? entry_path = tk.Entry(frame_3, textvariable=self.path, highlightcolor='Fuchsia', highlightthickness=1, width=35)

? ? ? ? down = tk.Button(frame_3, text='下載', font=('楷體', 12), fg='green', width=3, height=-1,

? ? ? ? ? ? ? ? ? ? ? ? command=self.video_download)

? ? ? ? # set frame_4

? ? ? ? label_desc = tk.Label(frame_4, fg='black', font=('楷體', 12),

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? text='\n注意:支持youtube、twitter痴晦、騰訊南吮、愛奇藝、優(yōu)酷誊酌、bilibili等大部分主流網(wǎng)站視頻下載部凑、圖片下載!')

? ? ? ? label_warning = tk.Label(frame_4, fg='blue', font=('楷體', 12), text='\nauthor:xiaofeng')

? ? ? ? # layout

? ? ? ? frame_1.pack()

? ? ? ? frame_2.pack()

? ? ? ? frame_3.pack()

? ? ? ? frame_4.pack()

? ? ? ? label1.grid(row=0, column=0)

? ? ? ? entry_url.grid(row=0, column=1)

? ? ? ? s_lable.grid(row=1, column=0)

? ? ? ? start.grid(row=1, column=1)

? ? ? ? e_lable.grid(row=1, column=2)

? ? ? ? end.grid(row=1, column=3)

? ? ? ? label2.grid(row=2, column=0)

? ? ? ? entry_path.grid(row=2, column=1)

? ? ? ? down.grid(row=2, column=2, ipadx=20)

? ? ? ? label_desc.grid(row=3, column=0)

? ? ? ? label_warning.grid(row=4, column=0)

? ? """

? ? 視頻下載

? ? """

? ? def video_download(self):

? ? ? ? # 正則表達(dá)是判定是否為合法鏈接

? ? ? ? url = self.url.get()

? ? ? ? path = self.path.get()

? ? ? ? if re.match(r'^https?:/{2}\w.+$', url):

? ? ? ? ? ? if path != '':

? ? ? ? ? ? ? ? msgbox.showwarning(title='警告', message='下載過程中窗口如果出現(xiàn)短暫卡頓說明文件正在下載中碧浊!')

? ? ? ? ? ? ? ? try:

? ? ? ? ? ? ? ? ? ? sys.argv = ['you-get', '-o', path, url]

? ? ? ? ? ? ? ? ? ? you_get.main()

? ? ? ? ? ? ? ? except Exception as e:

? ? ? ? ? ? ? ? ? ? print(e)

? ? ? ? ? ? ? ? ? ? msgbox.showerror(title='error', message=e)

? ? ? ? ? ? ? ? msgbox.showinfo(title='info', message='下載完成涂邀!')

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? msgbox.showerror(title='error', message='輸出地址錯(cuò)誤!')

? ? ? ? else:

? ? ? ? ? ? msgbox.showerror(title='error', message='視頻地址錯(cuò)誤箱锐!')

? ? def center(self):

? ? ? ? ws = self.root.winfo_screenwidth()

? ? ? ? hs = self.root.winfo_screenheight()

? ? ? ? x = int((ws / 2) - (self.w / 2))

? ? ? ? y = int((hs / 2) - (self.h / 2))

? ? ? ? self.root.geometry('{}x{}+{}+{}'.format(self.w, self.h, x, y))

? ? def event(self):

? ? ? ? self.root.resizable(False, False)

? ? ? ? self.center()

? ? ? ? self.root.mainloop()

if __name__ == '__main__':

? ? app = DownloadApp()

? ? app.event()


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末比勉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子驹止,更是在濱河造成了極大的恐慌浩聋,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臊恋,死亡現(xiàn)場離奇詭異衣洁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)抖仅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門坊夫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撤卢,你說我怎么就攤上這事环凿。” “怎么了放吩?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵智听,是天一觀的道長。 經(jīng)常有香客問我,道長瞭稼,這世上最難降的妖魔是什么忽洛? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮环肘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘集灌。我一直安慰自己悔雹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布欣喧。 她就那樣靜靜地躺著腌零,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唆阿。 梳的紋絲不亂的頭發(fā)上益涧,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音驯鳖,去河邊找鬼闲询。 笑死,一個(gè)胖子當(dāng)著我的面吹牛浅辙,可吹牛的內(nèi)容都是我干的扭弧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼记舆,長吁一口氣:“原來是場噩夢啊……” “哼鸽捻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泽腮,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤御蒲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后诊赊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厚满,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年豪筝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痰滋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡续崖,死狀恐怖敲街,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情严望,我是刑警寧澤多艇,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站像吻,受9級(jí)特大地震影響峻黍,放射性物質(zhì)發(fā)生泄漏复隆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一姆涩、第九天 我趴在偏房一處隱蔽的房頂上張望挽拂。 院中可真熱鬧,春花似錦骨饿、人聲如沸亏栈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绒北。三九已至,卻和暖如春察署,著一層夾襖步出監(jiān)牢的瞬間闷游,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國打工贴汪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脐往,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓嘶是,卻偏偏與公主長得像钙勃,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子聂喇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359