Python之You-Get庫學習

今天學習一下You-Get這個第三方庫,體驗一下視頻下載的快樂。

簡介

You-Get庫是一個基於Python3的視頻下載工具,支持多數國內外主流視頻站點的視頻下載。看一下項目主頁的README.md,真的是十分的nice啊,基本都支持了,像B站、騰訊視頻、土豆、優酷等等。

項目主頁:https://github.com/soimort/you-get

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ZnwB2tmT-1584577815778)(upload\image-20200315113053631.png)]

安裝

安裝有三種方法,可以再github主頁下載安裝,也可以用pip下載,還可以用Antigen安裝。

我在這裏使用的是pip安裝,使用pip3 intall you-get命令來安裝you-get庫。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ZLIdFQH7-1584577815780)(upload\image-20200315120409853.png)]

由於pip更換了國內源,很快就完成安裝了。

實例

接下來就來體驗一把這個you-get庫的實力,那麼就編一個實例來在B站上下個視頻看看。

系統:Windows 10 version 1909

Python:Python 3.7.4

You-Get: You-Get 0.4.1410

第一種就是直接使用命令行執行

下載視頻

使用命令you-get -o 存儲路徑 URL , 注意一點URL不可以使用’'包起來,不然就會報錯。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ICDTgcPU-1584577815781)(upload\image-20200315132428382.png)]

可以看到這個視頻已經安詳地躺在了目錄下。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-hro1m6kT-1584577815781)(upload\image-20200315132803024.png)]

查看視頻信息

使用命令you-get -i https://www.bilibili.com/video/av10298843?from=search&seid=17023892018446291553

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-PpKHewz8-1584577815782)(upload\image-20200315134037302.png)]

第二種是通過編寫Python程序實現批量的下載

寫了一個小程序,不多說上代碼

源代碼

import os

def main():
    info()
    tag = input("請選擇:")
    if tag == 'a':
        print('-----------------------進入批量下載模式-----------------------\n')
        file2 , url2 = getchara()
        mutildownload( file2 , url2 )
    elif tag == 'b':
        print("-----------------------進入單次下載模式-----------------------\n")    
        file1 , url1 = getcharb()
        download( file1 , url1 )
    else:
        print("無效的選項,程序將會關閉\n" + "5\n" + '4\n' + "3\n" + "2\n" +"1")
        exit()

def info():
    print("-----------------------A1andNS video download-----------------------" + '\n' + "This is a program \
based on you-get , you can use it to download the video from vidoe website , such as \
bilibili , tencent video and so on.")
    print("請輸入字母a以批量下載或輸入字母b以單次下載!!!")

def getcharb():
    file1 = input("請輸入一個保存路徑:")
    url1 = input("請輸入一個視頻鏈接:")
    return file1 , url1

def getchara():
    file2 = input("請輸入一個保存路徑:")
    url2 = input("請輸入你存放URL的文本文件的絕對路徑(注意:URL應當每行只存放一個):")
    return file2 , url2

def download(file1 , url1):
    try:
        os.system("you-get " + '-o ' + file1 + " " + url1)
        print("運行成功!!!")
    except:
        print("運行失敗!!!\n" + "5\n" +'4\n' + "3\n" + "2\n" + "1")
        exit()

def mutildownload( file2 , url2 ):
    f = open( url2 )
    lines = f.readlines()
    try:
        for line in lines:
            download( file2 , line )
        print("運行成功")
    except:
        print("運行失敗!!!" + "5\n" +'4\n' + "3\n" + "2\n" + "1")
    f.closed()

main()

單次下載

成功下載結果如下:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-L4ImNCps-1584577815784)(upload\image-20200315145322670.png)]

批量下載

批量下載時,使用一個url字典來實現,url存儲格式如下圖:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-db53B320-1584577815785)(upload\image-20200315151136841.png)]

成功執行,把3個視頻都下載下來了。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-vYRYHPwI-1584577815786)(upload\image-20200315151001025.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-vibi7DRB-1584577815787)(upload\image-20200315151039426.png)]

這個You-get工具正是一個好東西啊,感覺很棒,開發者大大牛逼。吹爆!!!

注意

(1)各大視頻網站需要登錄觀看的視頻無法直接下載

(2)有些網站視頻需要設置代理

寫在最後

這個博客可能不怎麼寫了,換了一個新的博客。但是如果可能,可以兩邊一起發,但是機率較低。
新博客:https://a1andns.github.io

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章