you-get
- 簡介
- 安裝方法
- 依賴環境:
- 方法1:通過pip
- 方法2:Git克隆
- 驗證
- 升級
- 卸載
- 視頻下載
- B站視頻下載
- 設定下載檔案的路徑和名稱
- 在媒體播放器中流式傳輸在線視頻
- 音樂下載
- 圖片下載
- 自動搜索下載視頻
- python代碼批量下載
- 結語
簡介
You-Get是一個很小的命令列程式,可以從網站下載媒體內容(視頻,音頻,影像),具體的用處有:
- 從B站,愛奇藝,網易云音樂等熱門網站下載視頻/音頻,
- 通過抓取網頁下載(感興趣的)影像,
- 在媒體播放器中流式傳輸在線視頻,
- 爬取最多300條B站彈幕
安裝方法
依賴環境:
- Python 3.2或以上
- FFmpeg 1.0或以上
python的安裝可以參考其他博客,建議安裝python3.7
其中FFmpeg的下載界面:FFmpeg下載
方法1:通過pip
可以直接通過命令列安裝:
pip3 install you-get
或者通過鏡像安裝:
pip install you-get -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
方法2:Git克隆
即使您不經常使用Python撰寫代碼,這也是所有開發人員的推薦方法,
git clone git://github.com/soimort/you-get.git
然后將克隆的目錄放入您的PATH中,或運行./setup.py install以安裝you-get到永久路徑,
驗證
在命令列輸入:
you-get
如果得到如下界面,則成功:
usage: you-get [OPTION]... URL...
A tiny downloader that scrapes the web
optional arguments:
-V, --version Print version and exit
-h, --help Print this help message and exit
Dry-run options:
(no actual downloading)
-i, --info Print extracted information
-u, --url Print extracted information with URLs
--json Print extracted URLs in JSON format
Download options:
-n, --no-merge Do not merge video parts
--no-caption Do not download captions (subtitles, lyrics, danmaku, ...)
-f, --force Force overwriting existing files
--skip-existing-file-size-check
Skip existing file without checking file size
-F STREAM_ID, --format STREAM_ID
Set video format to STREAM_ID
-O FILE, --output-filename FILE
Set output filename
-o DIR, --output-dir DIR
Set output directory
-p PLAYER, --player PLAYER
Stream extracted URL to a PLAYER
-c COOKIES_FILE, --cookies COOKIES_FILE
Load cookies.txt or cookies.sqlite
-t SECONDS, --timeout SECONDS
Set socket timeout
-d, --debug Show traceback and other debug info
-I FILE, --input-file FILE
Read non-playlist URLs from FILE
-P PASSWORD, --password PASSWORD
Set video visit password to PASSWORD
-l, --playlist Prefer to download a playlist
-a, --auto-rename Auto rename same name different files
-k, --insecure ignore ssl errors
Proxy options:
-x HOST:PORT, --http-proxy HOST:PORT
Use an HTTP proxy for downloading
-y HOST:PORT, --extractor-proxy HOST:PORT
Use an HTTP proxy for extracting only
--no-proxy Never use a proxy
-s HOST:PORT or USERNAME:PASSWORD@HOST:PORT, --socks-proxy HOST:PORT or USERNAME:PASSWORD@HOST:PORT
Use an SOCKS5 proxy for downloading
里面也包含了可用引數和命令,
其中比較重要的有:
| 選項 | 說明 |
|---|---|
| -i | 顯示資源資訊,比如說格式、清晰度、大小等 |
| -u | 指定下載或查看的url,有時候可以省略-u直接加上url |
| -o | 設定輸出檔案夾,即保存路徑,若不指定,則保存在當前作業目錄 |
| -O | 設定檔案名,可采用默認檔案名 |
| -f | 強制覆寫已存在的檔案 |
| -l | 優先下載整個串列 |
| -P | 使用密碼(若訪問視頻需要密碼) |
| -t | 設定超時時間,單位是秒 |
| -c | 使用cookie,加載cookies.txt 或者cookies.sqlite |
升級
通過以下命令列進行升級:
pip install --upgrade you-get
卸載
卸載的指令也和其他差不多:
pip uninstall you-get
視頻下載
B站視頻下載
需要使用 --info/-i 選項查看所有可用的質量和格式:
在命令列輸入:
you-get -i '視頻鏈接'
以B站視頻為例:
you-get -i 'https://www.bilibili.com/video/BV1iz4y1m7KF?spm_id_from=333.851.b_62696c695f7265706f72745f6469676974616c.46'
會得到如下界面:

里面包含了可以下載的視頻的格式,在
# download-with: you-get --format=flv [URL]
中有提示下載方法,以上面flv視頻為例:
you-get --format=flv 'https://www.bilibili.com/video/BV1iz4y1m7KF?spm_id_from=333.851.b_62696c695f7265706f72745f6469676974616c.46'

在檔案夾中查看,默認下載到主檔案夾那里,

除了視頻檔案之外,還下載了300條B站彈幕,
設定下載檔案的路徑和名稱
使用–output-dir/-o選項設定路徑,并使用–output-filename/-O設定下載檔案的名稱,例:
you-get -o ~/Videos -O videos '視頻鏈接'
在媒體播放器中流式傳輸在線視頻
使用–player/-p選項將視頻輸入到您選擇的媒體播放器中,例如mpv或vlc,而不用下載它:
you-get -p vlc '視頻鏈接'
或者,如果您希望在瀏覽器中觀看視頻,而沒有廣告或評論部分:
you-get -p chromium '視頻鏈接'
經過我自己的測驗,利用ubuntu的火狐瀏覽器,有反應,打開了一個視窗但是報錯了,可能和B站的策略有關吧,

音樂下載
經過實測以及官方表格,QQ音樂暫時下載不了,
以網易云音樂為例:
命令列輸入:
you-get -i 'https://music.163.com/#/song?id=1804797118'
就可以得到具體資訊:

由于只有一個版本,所以默認下載就行:
you-get 'https://music.163.com/#/song?id=1804797118'
得到:

同時下載了歌詞和歌曲:

圖片下載
從官方表格來看,支持圖片下載的國內網站不是很多,只有B站、百度貼吧和快手,
直接以圖片的地址為例:
you-get -i 'https://w.wallhaven.cc/full/72/wallhaven-7232p9.jpg'
得到資訊,代表成功:

下載輸入命令列:
you-get 'https://w.wallhaven.cc/full/72/wallhaven-7232p9.jpg'
即可下載完成,

自動搜索下載視頻
可以將任何內容傳遞給you-get,如果該網址無效,you-get將進行Google搜索并為您下載最相關的視頻,(這可能不完全是您希望看到的東西,但仍然很有可能,)
官網給出的例子是:
you-get "Richard Stallman eats"
但是我沒有成功,不知道原因,
python代碼批量下載
只需要把你要下載的視頻放在urls串列里,path改成你要保存的地址,即可批量下載,
# !/usr/bin/env python
# -*-coding:utf-8-*-
import sys
import you_get
# urls_list
urls = ['https://www.bilibili.com/video/BV1iz4y1m7KF?spm_id_from=333.851.b_62696c695f7265706f72745f6469676974616c.48',
'https://www.bilibili.com/video/BV1qV411t7ma/?spm_id_from=333.788.recommend_more_video.2',
'https://www.bilibili.com/video/BV1pv411e7Cd/?spm_id_from=333.788.recommend_more_video.5']
def download(url, path):
sys.argv = ['you-get', '-o', path, url]
you_get.main()
if __name__ == '__main__':
# 視頻輸出的位置
path = '/home/視頻'
for i in range(len(urls)):
download(urls[i], path)
盡量用命令列運行,編譯器不知道為啥報錯,比如:
python youget.py
效果如下:

結語
總之還是非常好用的,
以上就是全部分享了,官方鏈接如下:GitHub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/257366.html
標籤:其他
