一、前期准備
有時候我們想下載自己喜歡的電影,但很多時候要么需要安裝客戶端才能下載,或者干脆不提供下載的服務,很是不爽,
因此這里我們介紹使用python來實現網站的電影下載功能,凡是能在線觀看的,都是可以下載滴!
需要使用的工具有:1、python 2、you_get模塊,使用pip安裝 3、ffmpeg,ffmpeg需要去網站下載一個,加壓完之后,將bin目錄配置到環境變量中
控制台輸入ffmpeg說明配置成功了
二、開始編碼,下載視頻
目前我遇到的下載視頻的方式有兩種,1種就是使用you_get來直接獲取,但是有時候對於某些小網站獲取不到,
咱也不知道,咱也不敢問針對這種情況,我分析了這些網站的請求,使用requests庫直接進行下載,下面咱們一起來看下代碼:
1、使用you_get+ffmpeg代碼如下:
1 from you_get import common as you_get 2 url = "http://www.pengwei168.com/play/41952-1-1.html" #視頻網址 3 # 4 dir = r"C:\film" #下載目錄 5 os.environ["path"] = os.environ.get("path")+r";C:\film\ffmpeg-20160626-074fdf4-win32-static\bin"#設置ffmpeg到項目環境 6 sys.argv = ["you-get","--debug","-o",dir,url] #下載視頻 7 # sys.argv = ["you-get","-i",url]#查看視頻信息 8 # sys.argv = ["you-get","--format=4k","-o",dir,url]#選擇清晰度下載視頻 9 you_get.main()
上面的例子為優酷的下載視頻,下載速度極快,而且上面下載的這個視頻即使你是優酷vip都不給你下載,所以只能用黑科技了。
上面的代碼我自己親測對優酷,愛奇藝,搜狐視頻都能輕松下載。
2、使用requests庫下載電影,當遇到某些視頻網站you_get無法下載的話(獲取可以下載,我可能不知道),我們可以使用request來下載。
首先我們分析一下電影網站的請求,發現了如下的請求:
這個截圖主要有兩類請求,第一個是視頻的請求頭文件,請求里面會返回這個商品總共有多少個小的視頻組成,后面框起來的就是這些小片段的視頻了。
我們的思路很簡單:挨次請求這些小的片段視頻,將其寫到本地的一個文件里面就可以了,話不多說,上才藝!
1 import requests 2 url = "https://youku.cdn7-okzy.com/20200728/20369_e1b41301/1000k/hls/2788bc741cc" 3 with open('c:/film/活着2020.mp4', "ab") as mp4: 4 for segment in range(0,1460): 5 if segment<10: 6 segment = "00000"+str(segment) 7 elif segment<100: 8 segment = "0000" + str(segment) 9 elif segment<1000: 10 segment = "000" + str(segment) 11 else: 12 segment = "00" + str(segment) 13 print(url+str(segment)+".ts") 14 rs = requests.get(url+str(segment)+".ts", stream=True) 15 for chunk in rs.iter_content(chunk_size=1024 * 1024): 16 if chunk: 17 mp4.write(chunk)
上面這個列子是下載的人人視頻的電影【活着2020】,還有1905電影網也可以使用這種方式下載。
以上就是python下載電影的2種方式了,你學廢了嗎????
-------------------------------美麗的分割線-----------------------
對於vip才能看的電影,如果想下載,需要攜帶cookie信息,這時候我們用you-get的時候
需要帶上cookier信息:
首先先在瀏覽器里面登錄vip賬號,這時候我們的瀏覽器會將cookie信息寫入本地瀏覽器文件,我的火狐cookie的路徑如上。
然后再設置參數的時候使用:-c,cookies就可以下載vip電影了。