m3u8片段下载

在观看网络视频时,有时想下载一些视频中的精彩片段。但是整个视频有时会很大,下载起来费时费力。于是我就写了这个快捷命令。只下载自己指定的片段,既精准又快速。
注意:这个工具如果能配合谷歌商店的“猫抓”浏览器插件以及这个m3u8下载器,食用效果不要太美味!
使用:通过猫抓插件搞到视频m3u8文件链接,接着运行本命令,按提示输入截取的开始结束时间(支持一次截取多段)。运行后我们就能得到下载分段视频文件的m3u8文件。只需要将这些m3u8文件拖入下载器下载即可。
猫抓:
在这里插入图片描述
下载器:
下载器
完整代码:

import os
from su_util import su_media_util, su_webutil


def get_final_body(bodyArr, begin_time, end_time, slice_lenth):
    #起始结束时间相同时,截取视频全长
    if begin_time == end_time:
        begin_slice_index = 0
        end_slice_index = int(len(bodyArr) / 2)
    else:
        begin_slice_index = int(begin_time / slice_lenth)
        end_slice_index = int(end_time / slice_lenth)
    final_Str = ''
    for i in range(begin_slice_index, end_slice_index):
        final_Str += bodyArr[i*2] + '\n'
        final_Str += bodyArr[i*2 + 1] + '\n'
    return final_Str


def save_m3u8file(m3u8_str, filepath, begin, end):
    filename = os.path.basename(filepath)
    filename_noex = os.path.splitext(filename)[0]
    newfilename_noex = '%s_%s_%s' % (filename_noex, str(begin), str(end))
    outfilepath = filepath.replace(filename_noex, newfilename_noex)
    with open(outfilepath, 'w') as fp:
        fp.write(m3u8_str)
    print(outfilepath)


m3u8_url = r'{{ClipText}}'
print(m3u8_url)
print('以下输入如果直接回车,则表示默认')

filepath = input('m3u8文件保存路径:') or 'D:/temp.m3u8'
success = su_webutil.save_link(m3u8_url, filepath)
if not success:
    os.system('exit')
basepath = input('域名(一般默认就行,如果出错再填):') or m3u8_url[0:m3u8_url.rindex('hls')]

final_str = ''
periodtime = []
with open(filepath, 'r') as fp:
    content = fp.read()
    body_begin_index = content.index('#EXTINF')
    body_end_index = content.rindex('#EXT-X-ENDLIST')

    headStr = content[0:body_begin_index]
    headArr = headStr.split('\n')
    head_finalStr = headArr[0] + '\n#YUMING|%s' % basepath
    for i in range(1, len(headArr)):
        head_finalStr += '\n%s' % headArr[i]
    # print(head_finalStr)

    bodyStr = content[body_begin_index:body_end_index]
    bodyArr = bodyStr.split('\n')

    exinf_str = bodyArr[2]
    slice_str = exinf_str.split(':')[1]
    slice_lenth = float(slice_str[0:len(slice_str)-3])
    print(slice_str)

    input_p = 'y'
    begin_time = '00:00:00'
    end_time = '00:01:00'
    while input_p == 'y':
        begin_time = su_media_util.timestr_clock2second(
            input('开始时间(格式:xx:xx:xx 默认:0):') or '00:00:00')
        end_time = su_media_util.timestr_clock2second(
            input('结束时间(格式:xx:xx:xx 默认:视频总长):') or '00:00:00')
        periodtime.append({'begin': begin_time, 'end': end_time})
        input_p = input("继续添加时间段?y/n default:n :") or 'n'
    print(periodtime)

    for obj in periodtime:
        begin = obj['begin']
        end = obj['end']
        final_bodyStr = get_final_body(bodyArr, begin, end, slice_lenth)
        endStr = content[body_end_index:len(content)-1]
        final_str = head_finalStr + final_bodyStr + endStr
        # print(final_str)

        save_m3u8file(final_str, filepath, begin, end)

#打开输出目录
dirname = os.path.dirname(filepath)
os.startfile(dirname)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
M3U8下载器2.9.7是一款功能强大的视频下载工具。它可以帮助用户下载并转换M3U8视频格式文件,让用户能够离线播放和保存这些视频。 这款软件的主要功能包括以下几个方面: 1. M3U8视频下载M3U8格式是一种专门用于流媒体播放的文件格式,它将视频分段保存在不同的URL中。M3U8下载器能够识别M3U8文件,并自动下载其中的所有片段,合并成完整的视频文件。 2. 视频转换:M3U8下载器不仅能够下载M3U8格式的视频文件,还可以将其转换为其他常见的视频格式,例如MP4、FLV、AVI等。这样用户可以更方便地在不同设备上播放和分享这些视频。 3. 批量下载管理:M3U8下载器支持批量下载,用户可以同时添加多个M3U8链接,软件会自动逐个下载并转换这些视频文件。同时,软件还提供了下载进度管理功能,用户可以实时查看下载进度,方便掌握下载状态。 4. 自定义设置:M3U8下载器还提供了一些个性化的设置选项,例如下载画质选择、保存目录设置、下载速度限制等。用户可以根据自己的需求进行设置,以获得更好的下载和转换效果。 总之,M3U8下载器2.9.7是一款功能强大、操作简便的视频下载工具,它能够帮助用户下载、转换M3U8格式的视频文件,让用户能够在离线环境中方便地播放和保存这些视频。无论是想要保存自己喜欢的视频,还是下载教育、娱乐等方面的流媒体内容,这款软件都是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值