将腾讯视频本地化的方法

第一步查找视频的地址

视频的真实地址 保存session中 如上图

找到视频地址后,使用python下载腾讯视频

2.这里使用的解释器python3.5

需要安装request 和 moviepy

安装request

pip install requests

安装moviepy

pip install moviepy

安装ffmpeg

如果之前没安装过 ffmpeg , 这个时候导入 moviepy 开始使用会报错的, 所以我们可以先用 imageio 自带的方法下载 ffmpeg

新建install_ffmpeg.py,并执行

文本文件

import imageio

import ssl

# 下面这一句不是必须的, 但是某些情况下访问 https 会报SSL证书不受信任, 加上这一句可以允许通过

ssl._create_default_https_context = ssl._create_unverified_context

# 下载 ffmpeg 组件

imageio.plugins.ffmpeg.download()

3.下载视频文件

# -*- coding:utf-8 -*-

import os

import sys

import requests

import datetime

from moviepy.editor import *

def LoadVideo(url):

"""

腾讯视频下载

:param url: 视频m3u8地址

"""

headers = {

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"

}

download_path = os.getcwd() + "\download"

if not os.path.exists(download_path):

os.mkdir(download_path)

# 新建日期文件夹

download_path = os.path.join(download_path, datetime.datetime.now().strftime(‘%Y%m%d_%H%M%S‘))

os.mkdir(download_path)

# 获取第一层M3U8文件内容

all_content = requests.get(url).text

if "#EXTM3U" not in all_content:

raise BaseException("非M3U8的链接")

if "EXT-X-STREAM-INF" in all_content: # 第一层

file_line = all_content.split("\n")

for line in file_line:

if ‘.m3u8‘ in line:

# 拼出第二层m3u8的URL

url = url.rsplit("/", 1)[0] + "/" + line

all_content = requests.get(url, headers=headers).text

file_line = all_content.split("\n")

file_index = 0

for index, line in enumerate(file_line): # 第二层

if "#EXT-X-KEY" in line: # 找解密Key

method_pos = line.find("METHOD")

comma_pos = line.find(",")

method = line[method_pos:comma_pos].split(‘=‘)[1]

uri_pos = line.find("URI")

quotation_mark_pos = line.rfind(‘"‘)

key_path = line[uri_pos:quotation_mark_pos].split(‘"‘)[1]

key_url = url.rsplit("/", 1)[0] + "/" + key_path # 拼出key解密密钥URL

res = requests.get(key_url)

key = res.content

# 找ts地址并下载

if "EXTINF" in line:

unknow = False

# 拼出ts片段的URL

pd_url = url.rsplit("/", 1)[0] + "/" + file_line[index + 1]

file_index = file_index + 1;

res = requests.get(pd_url)

c_fule_name = str(file_index)

with open(os.path.join(download_path, c_fule_name + ".mp4"), ‘ab‘) as file:

file.write(res.content)

file.flush()

merge_file(download_path)

def merge_file(path):

"""拼接视频

:param path: 相对路劲

"""

# 定义一个数组

video_list = []

# 访问 video 文件夹 (假设视频都放在这里面)

for root, dirs, files in os.walk(path):

# 按文件名排序

files.sort()

# 遍历所有文件

index = 0

for key in range(1, len(files)+1):

for file in files:

if os.path.splitext(file)[0] == str(key):

# 拼接成完整路径

file_path = os.path.join(root, file)

# 载入视频

video = VideoFileClip(file_path)

# 添加到数组

video_list.append(video)

else:

continue

# 拼接视频

final_clip = concatenate_videoclips(video_list)

# 生成目标视频文件

video_path= os.getcwd() + r"\video"

if not os.path.exists(video_path):

os.mkdir(video_path)

video_path+=datetime.datetime.now().strftime(‘%Y%m%d_%H%M%S‘)+‘.mp4‘

final_clip.to_videofile(video_path, fps=24, remove_temp=False)

if __name__ == ‘__main__‘:

url=‘https://apd-efee4483a80104df1441e1d8f701e125.v.smtcdns.com/moviets.tc.qq.com/AcJSehqEQQedX5zyfYdOaiIaP5bJA6OKzlhHQuz0B_ks/uwMROfz2r5xgoaQXGdGnC2df64gVTKzl5C_X6A3JOVT0QIb-/GNxCYNllJLj9fPO-_rwnUNxpuWQtjyD_Zjvlivsev-7Juyk91J-Ftx1kClENGySmxH5dxtb84XO54QtHzXfRWdOBlMT5uGHZG5qL-zOWccM1r0pTM8QDCj4jIRr0hv5_RG0pY1zfrq5A9rz0ZOVzcpWRN-VhPiwwgSvwGiu7_3k/o0017ets4aa.321004.ts.m3u8?ver=4‘

LoadVideo(url)

#video=VideoFileClip("./download/20200416_140017/1.mp4")

#videoClip = video.subclip(7,)

#videoClip.to_videofile("./download/20200416_140017/01.mp4", fps=20)#输出文件

原文:https://www.cnblogs.com/blogsxyz/p/12811236.html

python下载腾讯视频_使用python 下载 mp4格式的腾讯视频相关推荐

  1. 视频wmv怎么转换成mp4格式

    在几十种视频格式里面,可以说有的视频格式给人们带来的体验感非常棒,像wmv就是由微软开发的一系列视频编码格式的统称,它可以实现在同等质量下,用最小的体积来承载文件内容,非常适合在网络上进行播放和传输. ...

  2. 飞秋下载2010正式版_飞秋下载

    飞秋(FeiQ) V2_FreeEIM4 简体中文绿色正式版 -聊天工具-绿色下载吧 绿_FreeEIM_FreeEIM_FreeEIM 飞秋(FeiQ) V2_FreeEIM4 简体中文绿色正式版 ...

  3. uc浏览器下载的视频php格式,如何将UC缓存的视频转化为通用的MP4格式?将缓存的视频转化为MP4格式的方法...

    用户在使用uc浏览器的时候,总会需要下载视频,那么用户要如何使用才能将浏览器缓存的视频转化成平常使用的mp4格式呢?用户可以将格式转换,在需要互相传递的时候就会更加的方便,如果你也喜欢这个服务,想要使 ...

  4. 优酷1080p的独播视频kux怎么转换成mp4格式

    经常在优酷看视频的网友们应该都知道,优酷视频下载的文件格式为kux格式,就好像腾讯视频的qlv格式.爱奇艺的qsv格式,是通过特殊加密的文件.优酷客户端支持有些视频的标清.高清画质下载后转码为mp4格 ...

  5. 视频flv怎么转换成mp4格式?

    视频flv怎么转换成mp4格式?关于视频格式转换这个问题,小编发现,就算不是从事视频编辑的朋友也有可能经常会遇到这种转换操作,为什么会这样呢?原因主要是因为视频格式的种类真的非常多,多到我们数不清,不 ...

  6. python实现批量下载视频_利用Python实现批量下载腾讯视频!

    原标题:利用Python实现批量下载腾讯视频! 导语 利用Python下载腾讯非VIP视频,也就是可以免费观看的视频.做这个的起因是最近在看一个叫"请吃红小豆吧"的动漫,一共三分钟 ...

  7. 爬虫python下载视频_用python做爬虫下载视频

    用python有一段时间了,对python是十二分喜爱,在我看来python是个好工具,可以轻松简洁的帮我完成一些我想要完成的工作.下面和大家分享一下我用python爬取某网站视频的案例.用pytho ...

  8. python下载歌曲教程视频_实现python批量下载网易云音乐的免费音乐

    python视频教程栏目介绍实现下载免费音乐 运行效果 代码# -*- coding:utf-8 -*- import requests, hashlib, sys, click, re, base6 ...

  9. python批量下载bilibili视频_如何批量下载bilibili的视频?

    貌似现在 you-get 已经支持批量下载了.通过下面命令就可以批量下载了 you-get --playlist 网址 本来是带这个需求来的,看到 Venchi 的答案,装了 Python3 之后发现 ...

  10. python下载文件并改名_用 Python 给下载的 B 站视频文件批量改名

    有好几位网友私下里问我如何学习平面设计?我告诉他们:如果只想自学的话,可以先到"哔哩哔哩"网站(俗称 B 站)找视频教程看看.要是觉得哪个教程不错,还可以下载到电脑或手机上随时随地 ...

最新文章

  1. golang database/sql包 简介
  2. django的哲学很耐人回味
  3. access如何设置定期报表汇总_报表工具选型对比系列 - 大报表
  4. 《MySQL——连接查询》
  5. 【Python爬虫】爬虫程序的简单处理过程
  6. 计算线段长度(信息学奥赛一本通-T1033)
  7. Android addr2line和 c++filt使用
  8. Android5.0以下drawable tag vector错误的解决办法(转发)
  9. 第三章 垃圾回收的一些概念
  10. 10、斐波那契数列,跳台阶问题(Python)
  11. AOP结构图(术语图解)
  12. 横向滑动视图HorizontalScrollView精炼详解
  13. VS的Qt界面预览和QtCreator的界面预览快捷键
  14. TARA(威胁分析和风险评估方法)
  15. Python之win7环境下安装python3
  16. ardupilot 关于设备车Rover的学习《1》------如何编译下载
  17. position: sticky 详解
  18. 快速生成树协议(spanning-tree)
  19. 如何将安卓系统的手机屏幕同步显示在电脑上
  20. SMTP协议:使用telnet发邮件【纯纯小白】

热门文章

  1. 倍福---Modbus TCP Server和调试助手测试
  2. 机器学习-预测之BP神经网络模型原理及实战
  3. 银行支付系统大小额(一代支付)、超级网银(二代支付)
  4. tableau破解方法_使用Tableau浏览Netflix内容的简单方法
  5. 软件测试:Lab 2 Selenium
  6. Mac 百度云加速下载,突破限速,大文件无压力(小白使用无压力)
  7. 企业架构之道(三)之企业架构框架概述
  8. 蓝牙AVRCP协议常见数据包分析
  9. 黑苹果macOS Catalina 10.15.4 安装过程详细记录
  10. 乐优商城服务器部署_黑马乐优商城19天(全)+源码+配套笔记