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

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

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

瀏覽:27日期: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久久,三上悠亚国产精品一区二区三区
久久成人亚洲| 日韩一区电影| 夜夜嗨网站十八久久| 精品国产不卡| 美腿丝袜亚洲三区| 麻豆精品网站| 99热精品在线| 国产美女精品| 老牛影视一区二区三区| 亚洲一区欧美激情| 精品91久久久久| 一本色道久久精品| 香蕉久久夜色精品国产| 久久成人国产| 亚洲尤物av| 日韩福利视频网| 国产日韩欧美在线播放不卡| 国产欧美日韩一区二区三区四区 | 久久激情av| 日本成人在线不卡视频| 欧美伊人影院| 久久精品免费看| 日韩中文字幕高清在线观看| 99精品在线| 国产精品毛片| 日韩高清国产一区在线| 欧美一区成人| 精品视频一区二区三区四区五区| 久久伊人亚洲| 中文字幕在线看片| 欧美午夜不卡影院在线观看完整版免费| 欧美特黄一区| 日韩 欧美一区二区三区| 久久的色偷偷| 国产传媒在线观看| 激情欧美日韩一区| 久久亚洲电影| 欧美专区一区| 国产精品毛片久久| 欧美日韩视频| 视频一区日韩| 捆绑调教美女网站视频一区| 成人一二三区| 欧美久久精品一级c片| 综合激情在线| 久久中文在线| 免费久久精品| 青青草精品视频| 久久uomeier| 亚洲国内精品| 日韩超碰人人爽人人做人人添| 麻豆精品视频在线观看视频| 亚洲成人二区| 四虎精品一区二区免费| 精品国产一区二区三区2021| 青青久久av| 亚洲精品欧美| 91亚洲国产| 亚洲精品裸体| 91偷拍一区二区三区精品| 在线亚洲一区| 国产欧美亚洲一区| 亚洲国产综合在线看不卡| 日韩超碰人人爽人人做人人添| 精品视频一区二区三区在线观看 | 国产99在线| 亚洲一区二区免费看| 国产精品久久久网站| 九九综合在线| 美女视频一区在线观看| 精品一区亚洲| 欧美日韩亚洲一区在线观看| 久久高清精品| 国产精品地址| 亚洲一区成人| 国产精品yjizz视频网| 亚洲人成亚洲精品| 首页国产精品| 日韩精品视频在线看| 成人久久久久| 国产乱子精品一区二区在线观看| 激情综合网站| 国产一区二区三区天码| 蜜臀精品久久久久久蜜臀 | 国产精品天天看天天狠| 99成人在线| 日韩av自拍| 国产欧美日韩亚洲一区二区三区| 午夜国产一区二区| 国模精品一区| 日本午夜免费一区二区| 色综合www| 国产精品66| 亚洲v天堂v手机在线| 精品一区毛片| 日韩在线欧美| 精品一区二区三区中文字幕视频| 亚洲影院天堂中文av色| 免费观看不卡av| 视频在线不卡免费观看| 国产情侣久久| 日韩综合小视频| 亚洲男女av一区二区| 国产资源在线观看入口av| 国产欧美一区二区三区国产幕精品 | 色爱av综合网| 精品一区二区三区中文字幕| 婷婷综合一区| 视频精品一区二区| 久久精品国产亚洲夜色av网站| 久久精品国产99国产精品| 日韩av一区二区在线影视| 久久最新视频| 中文在线一区| 欧美1级日本1级| 亚洲天堂资源| av中文资源在线资源免费观看| 日韩激情中文字幕| 亚洲最新av| 免费日韩一区二区| 91九色综合| 久久精品不卡| 色综合五月天| 麻豆精品视频在线观看免费| 日本国产欧美| 日本国产欧美| 日本aⅴ精品一区二区三区| 亚洲综合婷婷| 亚洲精品第一| 日本成人精品| 久久激情五月激情| 欧美a在线观看| 国产欧美日韩综合一区在线播放| 欧美亚洲一级| 国产精品一国产精品k频道56| 国产精品一区二区三区av| 久久av免费看| 国产精品99一区二区三| 国产白浆在线免费观看| 日韩欧美一区二区三区在线观看 | 免费成人性网站| 欧美日韩高清| 精品日韩毛片| 2023国产精品久久久精品双| av高清一区| 水蜜桃久久夜色精品一区| 99精品99| 日韩亚洲精品在线| 日韩在线成人| 日韩中文字幕视频网| 午夜电影一区| 日本色综合中文字幕| 日韩激情啪啪| 婷婷亚洲精品| 欧美激情视频一区二区三区免费| 国产亚洲字幕| 亚欧成人精品| 日本午夜精品一区二区三区电影 | 久久福利毛片| 日韩视频一区| 日韩黄色在线观看| 国产私拍福利精品视频二区| 国产日韩中文在线中文字幕| 国产剧情一区| 日韩精品一区二区三区中文| 麻豆国产欧美日韩综合精品二区| 精品一区电影| 精品视频91| av综合电影网站| 久久九九精品| 视频一区二区三区入口| 亚州国产精品| 国产精品久久久久av蜜臀| 国产在线一区不卡| 91精品国产91久久久久久黑人| 亚洲欧美日韩国产综合精品二区 | 亚洲无线观看| 日韩黄色av| 国产精品国产三级在线观看| 日韩大片在线| 国产精品白浆| 欧美日韩激情| 蜜桃久久久久| av资源中文在线| 久久亚洲二区| 欧美日韩第一| 在线成人直播| 久久激情av| 欧美日韩亚洲一区在线观看| 国产精品国产一区| 日韩欧美三级| 午夜在线精品偷拍| 亚洲精品日韩久久| 国产精品美女久久久久久不卡 | 日韩精品中文字幕第1页| 久久伦理在线| 亚洲另类av| 麻豆精品av| 欧美日韩一二三四| 少妇高潮一区二区三区99|