m3u8初体验
本文最后更新于:10 小时前
起因:抖🎵一个直播回放,想下载下来,用Quark捕获了链接,下载发现是m3u8格式
格式详解🔎去吧,简单来说是一个包含无数ts文件链接的文本文档
-
发现有规律,去掉了最上面和后面发现中间有一行多余,除3余1的行数就是链接,先提取出来
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16import re
f1 = open('m3u8.txt', 'r')
data1 = f1.readlines()
# print data1
f1.close()
results = []
f2 = open('out.txt', 'w')
i = 0
for line in data1:
i += 1
# print line
if (i % 3 == 1):
f2.write(line)
print(line)改一改可以用来提取大文件中特定数据,如果是无行数规律的,可以考虑正则(我不会就没写了
-
根据链接下载文件保存
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17import requests
f = open("out.txt") # 返回⼀个⽂件对象
line = f.readline() # 逐行读取
i = 0
while line:
i += 1
print(line) # 第一行
response = requests.get(url=line)
line = f.readline()
# print(line) # 下一行
with open("./file/%d.ts" % i, 'wb') as m:
m.write(response.content)
f.close()
print("ok")读取文件中的url应该方法很多,但是我只会这种
-
下载重命名的时候忘了1,10,100…的排序问题,所以重命名了一下(老忘。。。真是太蠢了
1
2
3
4
5
6
7
8
9
10
11
12
13
14import os
folder_path = './file'
num = 1
file_list = os.listdir(folder_path)
file_list.sort(key=lambda x:int(x.split('.')[0]))
if __name__ == '__main__':
for file in file_list:
s = '%04d' % num # 前面补零占位
os.rename(os.path.join(folder_path, file), os.path.join(folder_path, str(s) + '.ts'))
num += 1印象里补0还有其他写法,不重要,实现了就好
-
合并,三种方法,但问题是一样的,在ts文件连接处会有类似电流的声音,原因未知,解决方法未知😢
-
法一:继续python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25# 合并 ts 文件
import os
base_path = "./" # 根目录
dir_name = "file" # 存放歌曲的目录
path = '%s%s' % (base_path, dir_name)
# 目标文件夹
save_path = 'merge'
# 获取ts文件目录
file_list = os.listdir(path)
# 排序ts文件
# file_list.sort(key=lambda x: int(x[10:len(x) - 3]))
file_list.sort(key=lambda x:int(x.split('.')[0]))
# 保存目标目录如果不存在则创建
if not os.path.exists(save_path):
os.mkdir(save_path)
# 以二进制打开目标文件
target = open(save_path + '/' + dir_name + '.ts', "ab+")
# 依次将数据写入目标文件
for temp in file_list[488:]: # 切片单纯为了去广告
temp_file = open(path + '/' + temp, "rb+")
target.write(temp_file.read())
temp_file.close()
print(temp)
target.close() -
法二:cmd
1
copy /b E:\待合并ts文件\*.ts E:\待合并ts文件\合并后文件命名.ts
也要先用字符串排好序,其实和上面python原理一样啊,二进制写入
图省事的话有工具,密码
6evx
-
法三:winrar
选中所有ts文件,如下操作,结果一样,原理不知
-
电流声我猜和ts文件头尾有关?抖🎵最开始是不全的m3u8,听说中间放了全的高画质可下载(但我没赶上😠,再看的时候画质降了但可以抓链接直接下了。。。。Quark内置的m3u8转mp4是没有问题的,看了下内容和我下载的ts是一致的,但合并它的5.2G我合并只有4.3G,我真的不知道问题在哪啊。。。。
总之,这种事情还是靠别人吧!比如📺下载器
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!