日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python通過m3u8文件下載合并ts視頻的操作

瀏覽:30日期:2022-06-22 11:57:34

前段時間,接到一個需求,要求下載某一個網站的視頻,然后自己從網上查閱了相關的資料,在這里做一個總結。

1. m3u8文件

m3u8是蘋果公司推出一種視頻播放標準,是一種文件檢索格式,將視頻切割成一小段一小段的ts格式的視頻文件,然后存在服務器中(現在為了減少I/o訪問次數,一般存在服務器的內存中),通過m3u8解析出來路徑,然后去請求,是現在比較流行的一種加載方式。目前,很多新聞視頻網站都是采用這種模式去加載視頻。

M3U8文件是指UTF-8編碼格式的M3U文件。M3U文件是記錄了一個索引純文本文件,打開它時播放軟件并不是播放它,而是根據它的索引找到對應的音視頻文件的網絡地址進行在線播放。原視頻數據分割為很多個TS流,每個TS流的地址記錄在m3u8文件列表中。

下面就是m3u8文件的格式。

#EXTM3U#EXT-X-VERSION:3#EXT-X-MEDIA-SEQUENCE:0#EXT-X-ALLOW-CACHE:YES#EXT-X-TARGETDURATION:15#EXTINF:6.916667,out000.ts#EXTINF:10.416667,out001.ts#EXTINF:10.416667,out002.ts#EXTINF:1.375000,out003.ts#EXTINF:1.541667,out004.ts#EXTINF:7.666667,out005.ts#EXTINF:10.416667,2. ts文件處理

只有m3u8文件,需要下載ts文件

ts文件能正常播放,但太多而小,需要合并 有ts文件

但因為被加密無法播放,需要解碼

在這里我只記錄下前兩個步驟,因為,我目前研究的比較少,還沒有遇到ts被加密的情況。

3. 分析舉例

那么下面,我就正式舉一個網站,第一財經網(直接點擊)跟大家正式的講解下。

這是該網站的視頻。如下圖:

Python通過m3u8文件下載合并ts視頻的操作

點擊第一個視頻,這就是我們這次要爬取的視頻。

Python通過m3u8文件下載合并ts視頻的操作

然后鼠標右鍵點擊,選擇'檢查' 或者按F12鍵,進入開發者模式,查看網頁代碼。

然后,點擊Network ,再點擊other,尋找請求地址中帶有m3u8和ts標記的請求地址。

不懂,請看下圖。有一點,很重要。網站通過切割后ts加載視頻,并不是沒有規律的,而是通過m3u8文件附帶的。也就說,網站一定是先加載m3u8文件,然后根據m3u8文件,去請求ts文件。所以,如果你找不到m3u8文件的話,你可以先找第一個ts文件,然后往上面翻,一定能找到m3u8文件。

Python通過m3u8文件下載合并ts視頻的操作

再點擊這個m3u8文件,右側對應的就是它的請求地址。

Python通過m3u8文件下載合并ts視頻的操作

請求地址如下:

https://ycalvod.yicai.com/record/live/cbn/ca233887-1443-4bdf-b762-3b4b3a217085_LD.m3u8?auth_key=1575703722-0-0-6f09e9a156491f027a035e31c238c48c&ycfrom=yicaiwww

你可以把上面那個地址,輸入瀏覽器地址框內,下載下來。也可以通過查看源碼,找到該功能的對應的html代碼。

這是下載下來的m3u8文件。

Python通過m3u8文件下載合并ts視頻的操作

Python通過m3u8文件下載合并ts視頻的操作

從圖片可以看出來,每一個ts文件都是相對的地址,所以下面我們就需要找到絕對地址。

Python通過m3u8文件下載合并ts視頻的操作

ts文件地址如下:

https://ycalvod.yicai.com/record/live/cbn_yld/1575111614_3446078.ts

上面,我們已經把這個網站的視頻加載模式分析的很透徹,下面就開始擼代碼了。

4. 獲取ts文件

def getTsUrl(): ts_url_list = [] baseUrl = 'https://ycalvod.yicai.com/record/live' with open('ca233887-1443-4bdf-b762-3b4b3a217085_LD.m3u8', 'r', encoding='utf-8') as f:m3u8Contents = f.readlines()for content in m3u8Contents: if content.endswith('tsn'):ts_Url = baseUrl + content.replace('n', '').replace('..', '')ts_url_list.append(ts_Url)print(ts_Url) return ts_url_list5. 下載ts文件

def download_ts_video(download_path, ts_url_list): download_path = r'C:UsersAdministratorDesktopAiShu下載視頻TS視頻' for i in range(len(ts_url_list)):ts_url = ts_url_list[i]try: response = requests.get(ts_url, stream=True, verify=False)except Exception as e: print('異常請求:%s' % e.args) returnts_path = download_path + '{}.ts'.format(i)with open(ts_path, 'wb+') as file: for chunk in response.iter_content(chunk_size=1024):if chunk: file.write(chunk) print('TS文件下載完畢!!')

這就是我本地下載好的ts切割視頻

Python通過m3u8文件下載合并ts視頻的操作

6. 合并TS視頻

def heBingTsVideo(download_path,hebing_path): all_ts = os.listdir(download_path) with open(hebing_path, ’wb+’) as f:for i in range(len(all_ts)): ts_video_path = os.path.join(download_path, all_ts[i]) f.write(open(ts_video_path, ’rb’).read()) print('合并完成!!')

最后的結果如下:

Python通過m3u8文件下載合并ts視頻的操作

7. 完整的代碼

有興趣的小伙伴,可以研究下。

import requests,osdef getTsUrl(): ts_url_list = [] baseUrl = 'https://ycalvod.yicai.com/record/live' with open('ca233887-1443-4bdf-b762-3b4b3a217085_LD.m3u8', 'r', encoding='utf-8') as f:m3u8Contents = f.readlines()for content in m3u8Contents: if content.endswith('tsn'):ts_Url = baseUrl + content.replace('n', '').replace('..', '')ts_url_list.append(ts_Url)print(ts_Url) return ts_url_listdef download_ts_video(download_path, ts_url_list): download_path = r'C:UsersAdministratorDesktopAiShu下載視頻TS視頻' for i in range(len(ts_url_list)):ts_url = ts_url_list[i]try: response = requests.get(ts_url, stream=True, verify=False)except Exception as e: print('異常請求:%s' % e.args) returnts_path = download_path + '{}.ts'.format(i)with open(ts_path, 'wb+') as file: for chunk in response.iter_content(chunk_size=1024):if chunk: file.write(chunk) print('TS文件下載完畢!!')def heBingTsVideo(download_path,hebing_path): all_ts = os.listdir(download_path) with open(hebing_path, ’wb+’) as f:for i in range(len(all_ts)): ts_video_path = os.path.join(download_path, all_ts[i]) f.write(open(ts_video_path, ’rb’).read()) print('合并完成!!')if __name__ == ’__main__’: download_path = r'C:UsersAdministratorDesktopAiShu下載視頻TS視頻' hebing_path = r'C:UsersAdministratorDesktopAiShu下載視頻合并TS視頻第一財經.mp4' ts_url_list = getTsUrl() download_ts_video(download_path, ts_url_list) heBingTsVideo(download_path,hebing_path)

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲91视频| 日产精品一区二区| 波多野结衣一区| 日韩毛片视频| 久久久久久黄| 日韩一级网站| 久久精品国产68国产精品亚洲| 99久久久久久中文字幕一区| 免费欧美一区| 国产高清一区| 蜜桃av一区二区三区电影| 亚洲综合专区| 欧美另类中文字幕 | 日韩一区二区在线免费| 久久国产日本精品| 久久中文字幕av一区二区不卡| 免费毛片在线不卡| 六月婷婷一区| 日韩久久一区| 久久狠狠久久| 精品一区视频| 精品三级久久| 国产精品女主播一区二区三区| 天堂精品久久久久| 国产精品v亚洲精品v日韩精品| 国产精品精品国产一区二区| 欧美综合另类| 男女激情视频一区| 欧美午夜三级| 精品久久久亚洲| 亚洲a在线视频| 婷婷精品在线观看| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 9999国产精品| 蜜桃精品在线| 日韩精品一二三区| 国产日本精品| 日韩国产欧美| 免费成人在线视频观看| 午夜视频一区二区在线观看| 老司机精品视频在线播放| 婷婷激情久久| 日韩精品第二页| 日韩av首页| 亚洲精品欧美| 国产成人精品999在线观看| 久久国产电影| 日韩黄色在线观看| 国产精品国产一区| 免费欧美日韩| 精品国产午夜| 亚洲1区在线观看| 中文在线а√天堂| 亚洲精品亚洲人成在线观看| 欧美精品99| 亚洲电影在线| 国产欧美丝祙| 亚洲小说欧美另类婷婷| 91精品国产自产观看在线| 亚洲黄色中文字幕| 亚洲精品动态| 国产综合色区在线观看| 日韩久久99| 婷婷国产精品| 国产精品久久| 亚洲综合三区| av资源中文在线天堂| 亚洲欧洲av| 亚洲www啪成人一区二区| 日韩中文字幕无砖| 99久久婷婷| 久久精品女人| 日韩在线黄色| 婷婷中文字幕一区| 久久99国产精品视频| 丝袜国产日韩另类美女| 91麻豆国产自产在线观看亚洲| 亚洲一区二区免费在线观看| 日韩中文欧美| 国产精品18| 亚州av一区| 欧美精品九九| 一区二区小说| 最新中文字幕在线播放| 日韩三级一区| 99国内精品| www成人在线视频| 成人在线视频免费看| 日韩二区在线观看| 国产一区白浆| 99热精品久久| sm捆绑调教国产免费网站在线观看| 欧美在线看片| 亚洲香蕉久久| 国产视频一区三区| 在线日韩电影| 免费看av不卡| 精品精品99| 国产精品亚洲综合久久| 蜜臀国产一区二区三区在线播放| 久久精品国产大片免费观看| www.51av欧美视频| 久久久久久久久成人| 国产精品久久久一区二区| 婷婷久久免费视频| 免费人成网站在线观看欧美高清| 视频小说一区二区| 国产精品伦理久久久久久| 国产精品v日韩精品v欧美精品网站 | 久久精品导航| 精品国产亚洲一区二区三区| 久久精品xxxxx| 日本不卡视频在线观看| 一区二区亚洲视频| 久久不射中文字幕| 伊人成人网在线看| 国模 一区 二区 三区| 91精品蜜臀一区二区三区在线| 综合日韩av| 日韩成人三级| 99精品在线观看| 日韩免费小视频| 日韩在线第七页| 美女av在线免费看| 蜜臀国产一区| 日韩精品一区二区三区免费观影| av在线日韩| 在线日韩电影| 久久国产99| 在线视频亚洲欧美中文| 男人的天堂久久精品| 日韩一二三区在线观看| 91精品国产自产在线丝袜啪| 国产精品亚洲片在线播放| 欧美黑人做爰爽爽爽| 精品五月天堂| 黑人精品一区| 蜜桃成人av| 亚洲精品电影| 久久xxxx精品视频| 天堂俺去俺来也www久久婷婷| 国产亚洲久久| 老司机免费视频一区二区三区| 国产一区二区视频在线看| 国产网站在线| 九一国产精品| 蜜桃av一区二区三区电影| 日韩欧美另类中文字幕| 国产精品一区二区三区av| 麻豆国产精品视频| 婷婷激情一区| 久久亚洲影院| 国产精品一区毛片| 日本激情一区| 午夜欧美精品久久久久久久| 日韩一区二区三区精品| 久久伊人久久| 激情五月综合| 日韩精品导航| 精品美女视频| 婷婷色综合网| 日韩毛片一区| 国产aⅴ精品一区二区四区| 精品在线播放| 欧美日韩在线精品一区二区三区激情综合 | 国产精品毛片一区二区三区| 视频一区中文字幕精品| 久久精品伊人| 九一精品国产| 欧美视频二区| 日韩大片免费观看| 久久国产福利| 国产精品久久久网站| 久久国产毛片| 日韩av一二三| 黄色aa久久| 麻豆精品91| 国产激情精品一区二区三区| 欧美亚洲精品在线| 日韩高清不卡一区| 久久夜夜操妹子| 日韩中文一区二区| 日韩中文视频| 日韩av午夜在线观看| 欧美亚洲国产一区| 国产无遮挡裸体免费久久| 欧洲亚洲一区二区三区| 最新国产精品久久久| 高清一区二区| 婷婷亚洲成人| 日韩不卡在线| 久久精品xxxxx| 国产综合婷婷| 国产精品入口久久| 亚洲中字黄色| 福利一区和二区| 色婷婷成人网| 欧美久久精品一级c片| 精品一区二区三区亚洲| 亚洲精品日韩久久|