吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17573|回复: 37
上一主题 下一主题
收起左侧

[Python 转载] M3U8视频合并 神速 只需5秒 就能看电影

[复制链接]
跳转到指定楼层
楼主
choosegx 发表于 2020-8-1 01:40 回帖奖励
本帖最后由 choosegx 于 2021-4-5 13:06 编辑

每当夜深人静的时候,
太过孤独,就想看电影
而通过软件合并M3U8 实在是太久了
而我们时间 不多了




M3U8 文件简介
m3u8 文件实质是一个播放列表(playlist),其可能是一个媒体播放列表(Media Playlist)
看的视频会 缓存  一些TC文件。按照特定的排序就可以 用浏览器播放的

文件格式如下所示
#EXTM3U         开头文件
#EXT-X-TARGETDURATION:15
#EXT-X-DISCONTINUITY
#EXTINF:10,            时间长短
#EXT-X-BYTERANGE:1117063@0            这句可以不要的
/storage/emulated/0/BaiduNetdisk/我的资源/.D91/ts_0       这个是文件地址 一般都是递增的
#EXTINF:10,
#EXT-X-BYTERANGE:385787@1117063    这句不要
/storage/emulated/0/BaiduNetdisk/我的资源/.D91/ts_1  这是TS1
#EXTINF:10,
#EXT-X-BYTERANGE:385787@1117063    这句不要
/storage/emulated/0/BaiduNetdisk/我的资源/.D91/ts_2  这是Ts2  ......Ts3   ts4
#EXTINF:10,



代码

[Python] 纯文本查看 复制代码
# a game 

import os,re
global list_a

wjlb =input("输入文件地址")
os.chdir(wjlb)
wjdz = os.path.join(os.path.dirname(os.getcwd()),os.path.split(os.getcwd())[1])wjdz = f"{wjdz}.m3u8"     
 #文件合并后将在  文件父目录 生成的 播放器地址,  生成完毕后直接用 浏览器 或者用播放器打开就能用了



a = """#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0"""
c = "\n#EXTINF:9.000000,\n"                   #这个是时间步长 9.000000
b = "\n#EXT-X-ENDLIST"
e = "file://"                                #abcd都是M3U8的格式


#获取 文件内的所有文件序列
def hqlist(wjlb):
    os.chdir(wjlb)
    list_a = os.listdir()
    kk = pxlist(list_a)                      #进行排序文件
    list_a = pj(wjlb,kk)                     #保存原地址,和新地址,方便取用
    return list_a
    
#把获取的文件 按需排列,这里观察原路径得知 最后的数字才是有用的
def pxlist(lis):
    newlist = []                            #存储新序列的表格                          
    list1 = []                              #老文件
    for i in lis:                           #取出表格
        k = []
        j = re.findall("\d+",i)
        if bool(j):
            k.append(int(j[-1]))                #[b]这个“-1”是取最后一个数字   这个看他的排列顺序没种不一样的[/b]
            k.append(i)
            newlist.append(k)
    newlist = sorted(newlist,key = lambda newlist:newlist[0])
    for i in newlist:
        list1.append(i[1])
    return list1
        
#文件读写
def loadwj(read_a,write_a):
    with open(read_a, "rb") as f:
        with open(write_a,"wb") as g:
            g.write(f.read())

#文件地址的合并 主要m3u8的文件写入
def pj(a,b):
    d = []
    for i in b:
        c = os.path.join(a,i)
        d.append(c)
    return d

def main():
    with open (wjdz,"w") as f:
        f.write(a)
        for i in hqlist(wjlb):
            f.write(c)
            f.write(e)
            f.write(i)
        f.write(b)
main()


代码是用的Python    下载QPython3L 使用
你用其他程序也行 你不嫌麻烦的话 也可以手打

输入 复制文件地址的  目录 ,就会在 文件的上级目录生成新文件
用浏览器 播放器打开都行 。大小 也就100多KB文件

免费评分

参与人数 6吾爱币 +7 热心值 +5 收起 理由
soyadokio + 1 谢谢@Thanks!
bear666 + 1 + 1 谢谢@Thanks!
date333 + 1 + 1 用心讨论,共获提升!这段代码怎么执行呀?请指点一二,小弟是菜鸟
诗人老王 + 1 + 1 文案写的不错
苏紫方璇 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
a14737 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
07sky 发表于 2021-2-17 00:58
测试了优酷链接,m3u8后缀链接,ts后缀链接都没有成功。
默认我的是gbk的编码,添加了默认编码,其他的没有改动
提示是winerror123  系统文件或者目录命名错误,第8行。
有运行成功或者操作成功的发个图看看,我以为这个是用来以m3u8列表合并提取后续ts视频文件的,结果好像和我想的不太一样。
推荐
 楼主| choosegx 发表于 2020-8-1 19:06 |楼主
Harkgreen 发表于 2020-8-1 13:29
其实用cmd命令也能合并吧?原来快播的东西我就合过

这东西主要是快,M3U8播放的播放列表 最大 100kb , 用CMD合并 要等几分钟 ,现在都快餐文化 。
关键这其实 还有作用 ,就是藏东西。可以把视频文件拆分 500多份碎片
沙发
Rene 发表于 2020-8-1 09:18
3#
充电室 发表于 2020-8-1 09:24
哈哈哈不会用。但是这代码命名挺有意思的。哈哈哈哈
4#
龙飞天下 发表于 2020-8-1 09:31
全世界都在学佩顿
5#
xiandi957 发表于 2020-8-1 09:33
哈哈,不会用
6#
大佬我知错了 发表于 2020-8-1 09:34
第一句话戳中我心了,但我是看云盘上
7#
NOOB玩家 发表于 2020-8-1 09:35
正在学py,受教了
8#
wangjianjilei 发表于 2020-8-1 09:35
这代码有点迷
9#
Leon19960120 发表于 2020-8-1 09:45
好家伙   谢谢分享
10#
x800600 发表于 2020-8-1 09:54
高手利害了,学习下。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 12:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表