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:[email protected]:PORT, --socks-proxy HOST:PORT or USERNAME:[email protected]: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音樂暫時下載下傳不了。
以網易雲音樂為例:
指令行輸入:
就可以得到具體資訊:
由于隻有一個版本,是以預設下載下傳就行:
得到:
同時下載下傳了歌詞和歌曲:
圖檔下載下傳
從官方表格來看,支援圖檔下載下傳的國内網站不是很多,隻有B站、百度貼吧和快手。
直接以圖檔的位址為例:
得到資訊,代表成功:
下載下傳輸入指令行:
即可下載下傳完成。
自動搜尋下載下傳視訊
可以将任何内容傳遞給you-get。如果該網址無效,you-get将進行Google搜尋并為您下載下傳最相關的視訊。(這可能不完全是您希望看到的東西,但仍然很有可能。)
官網給出的例子是:
但是我沒有成功,不知道原因。
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