百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python学习项目练习——m3u8视频下载

off999 2024-09-16 00:43 58 浏览 0 评论

很多时候你想下载视频没有下载按钮,那么你该怎么做呢?Python学习完以后你可以通过Python下载这些视频。今天就分享一下m3u8视频如何用Python下载。

查找视频

找到视频的源文件,这是你要抓取文件的第一步。这时,你会发现浏览器的开发者工具有多么棒!

电脑浏览器打开要下载电影的页面,按下F12打开浏览器开发工具,选择网络/Network,这里可以看到网站请求的所有数据

刷新页面,找到含有.m3u8的请求数据流,可以点击开发者工具栏,按ctrl+F查找.m3u8文件。然后打开标头/Headers,查看请求地址。

可以通过预览/Response查看.m3u8文件包含哪些数据,将这些地址复制下来,就是我们要下载的视频数据,这些视频一般都是.ts格式的,就是视频片段。你可以一条一条下载下来,但既然我们说了要用Python下载,那么,接下来的事情我们用代码实现。

ts视频下载

我们将预览内容Ctrl+A全选,然后复制,粘贴到新建的txt文件中,然后处理下载问题。

import re

# 读取文件,file就是保存复制内容的txt文件
# lfile是获得复制视频的顺序list_file
# dfile是要下载的视频链接 download_file
# url 是视频的url路径前缀
def read(file, lfile, dfile, url):
    #读取复制内容
    with open(f'./{file}', 'r+', encoding='utf-8') as r:
        # 按行读取
        ts_file = r.readlines()
        # 正则模块,获取复制文件中的所有ts文件
        re_ts =  re.compile(r'\w+\.ts')
        # 如果ts文件有?后带的参数,也要识别
        re_ts_data = re.compile(r'\w+\.ts?\w+.+|\w+\.ts')
        # 正则模块,url正则
        re_ts_url = re.compile(r'http://\w+.+|https://\w+.+')

        # 创建ts文件顺序文件
        with open(f'{lfile}', 'a', encoding='utf-8') as w:
            for i in ts_file:
                try:
                    # 查找所有的ts文件名
                    w.write(f'file {re.findall(re_ts, i)[0]}\n')
                except:
                    pass
                # 创建ts下载文件
                with open(f'{dfile}', 'a', encoding='utf-8') as f:
                    try:
                        # 创建下载文件时要在文件中添加url前缀
                        f.write(f'{url}{re.findall(re_ts_data, i)[0]}\n')
                    except:
                        pass
                

read('a.txt', 'list.txt', 'down.txt', 'https://www.xxx.com/')

这是对复制内容的处理,方便后面的继续进行,这时候我们得到了三个文件,一个是前面创建的txt文件,后面两个是程序运行时获得的文件。注意,如果要创建新的下载视频,这里要修改read()传入的参数。因为lfile和dfile的打开权限是'a',再次执行会在原来文件内继续添加内容,会造成之前的内容重复。

import os
import re
import wget # 这个库需要通过命令pip install wget下载

# 创建下载,dir是下载文件的文件夹名称,url是下载文件
def url_down(dir, url):
    try:
        # 创建文件夹
        os.mkdir(dir)
    except:
        pass
    # 下载文件
    wget.download(url, out=f'./{dir}/')

if __name__ == '__main__':
    # 读取down.txt文件中的ts视频的url
    with open('down.txt', 'r+', encoding='utf-8') as r:
        txt_list = r.readlines()
        # 创建视频链接url的正则模块
        url_get = re.compile(r'http://\w+.+|https://\w+.+')
        for i in txt_list:
            # 查找ts的url
            k = re.findall(url_get, i)
            # 因为文件中可能存在空行或者非url行,所以加个校验
            if k == []:
                pass
            else:
                # 下载
                url_down('视频', k[0])

ts视频转mp4

当你执行完成后发现会有很多视频片段,不方便查看和使用,所以,我们要把这些ts视频片段合并成一整段的mp4视频格式。

这里用到一个工具--ffmpeg,一款非常好用处理音视频的工具包。

下载完成后,将文件解压,然后将bin文件的路径添加到系统环境中,命令行执行ffmpeg -version查看是否安装成功。

# 这是python一个终端操作工具
import subprocess
import os
def ts_mp4(filename):
    ts_path = os.path.join(os.getcwd(), '视频/')
    try:
        os.mkdir('mp4视频')
    except:
        pass
    mp4_path = os.path.join(os.getcwd(), 'mp4视频/')
    cmdline = f"ffmpeg -f concat -i {ts_path}list.txt -c copy {mp4_path}{filename}.mp4"
    subprocess.call(cmdline, shell=True)
    print(f'{filename}视频转换成功!')
ts_mp4('new')



相关推荐

免费在线影视观看网站(在线观看影视剧网址)

有蛮多的,茶杯狐影视,555影视,首播影院都是可以看电影的免费网址,里面有很多最新更新的电影,综艺,电视剧,动漫,可以收藏起来目前有许多观看最新电影的网站可供选择。其中一些知名的网站包括Netflix...

4399造梦西游3(4399造梦西游3账号)

在4399造梦西游三中,要进入下界需要完成一定的任务。首先,需要完成主线任务“寻找下界之门”,该任务需要完成一系列的支线任务,包括“寻找下界之钥”、“寻找下界之路”等。完成这些任务后,就可以进入下界了...

原来的琪琪电影在线看(原来琪琪电影在线看免费)

186x2=372原来多372张

python编程软件(python编程软件怎么读)

学点编程是一款手机编程应用,这款软件界面漂亮,功能强大,支持多种语言,内容丰富,编程的程序员们可千万不要错过啦!应用包含一张涵盖了所有HTML5元素释义的列表,并能查看元素在内置浏览器中实现的样式...

google play apk(Google play apk English)

googleplay是一款谷歌开发的、用于帮助用户加快游戏软件运转速度的软件。该软件可以快速与谷歌游戏中心连接,从而加快游戏同步数据的传输。  如果用户不需要使用该软件了,则可以尝试直接使用卸载功能卸...

单人枪战单机游戏(单人枪战闯关游戏)

有胡闹厨房,NBA2K,Knack纳克,光环战斗进化,杀手5赦免。钓鱼星球。神鬼寓言,战争机器,精灵与森林,盗贼之海,丧尸围城枪火重生,这是融合了第一人称射击、Roguelite随机元素和RPG策略...

三国战纪街机版下载(三国战纪街机版下载教程)

三国战纪单机手机版非常容易上手,可以通过以下步骤进行玩耍:容易上手。游戏的操作非常简单,只需要用手指点击屏幕即可完成。游戏同时提供了简单、普通、困难等多个难度设置,能够满足不同玩家的需求。在游戏中,玩...

永久免费的网盘哪个好用(百度网盘登录入口)

现在的网盘很多都是免费的哦,而且也很安全,我自己就在用天翼云网盘。天翼云虽然刚登陆是15G,但是现在登陆客户端就有10T的容量了,可以存很多东西了。天翼云网盘还有个挺好的功能叫做私密空间,每次登陆都要...

热血传奇官方正版下载(热血传奇官网下载安装)

1.可以通过官方网站或者应用商店下载热血传奇。2.热血传奇作为一款热门的网络游戏,开发商通常会提供官方网站或者在应用商店上架,方便玩家下载和安装。3.此外,还可以通过一些第三方游戏平台或者论坛等...

经典老歌500首铃声(免费设为铃声的歌曲)

许慧欣七月七日晴黄格选春水流任贤齐沧海一声笑杨培安我相信邓丽君路边的野花不要采乌兰托娅套马杆索朗扎西姑娘我爱你刀郎情人西域刀郎寻找玛依拉林依轮透过开满鲜花的月亮...

网页黄冈大推广(黄冈宣传)

意思是职称通过了最终审核,已被批准,也就意味着职称稳了,可以享受其相应的待遇了。职称,指教授,讲师,中级,高级等专业技术等级。终审,指最终审核。通过,指批准了。职称终审通过多指工作在技术,学术行业领城...

可以插二次元角色的游戏ios(二次元插图软件)

决战平安京,和光影对决,就是二次元moba游戏其中决战平安京的画质什么的,个人感觉更好~推荐“影视大全-人人美剧视频影视大全苹果版App”。这是一款资源最全的影视苹果端追剧应用,汇聚全网电影、电视剧、...

手机字体上面带拼音(手机字体上面带拼音怎么取消)
手机字体上面带拼音(手机字体上面带拼音怎么取消)

通过修改手机中的字体来设置的,方法如下(以华为mate8手机为例):1、首先,在华为手机上找到系统自带的主题的应用软件,并点击打开它。2、然后,在打开的主题界面点击底部的字体的标签栏目。3、接着,在字体的界面上方的搜索框中输入“拼音”,并进...

2026-02-03 22:51 off999

国内国外精品影视网站(国外影视网站排行)

影视大全强烈推荐的视频app影视大全。是一款作品非常多,大多数都是免费,无广告,无弹窗。它上面也实时更新一些影视作品。有一些在其他影视app中搜索不到,或者收费的作品,在他上面,都是免费的。同时呢,这...

2345网址导航官网(2345网址导航官网官方下载)

搜了好多办法,修改主页,修改host文件,查找注册表。最后我的解决方案是:删除可能携带病毒的软件,修改浏览器主页,(此时chrome浏览器的主页依然是2345),然后新建一个chrome的快捷方式替...

取消回复欢迎 发表评论: