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

import sys

import os

from glob import glob

import requests

reload(sys)

sys.setdefaultencoding("utf-8")

file_path=os.getcwd()

#获取需要转换的路径

def get_user_path(argv_dir):

if os.path.isdir(argv_dir):

return argv_dir

elif os.path.isabs(argv_dir):

return argv_dir

else:

return False

#对转换的TS文件进行排序

def get_sorted_ts(user_path):

ts_list = glob(os.path.join(user_path,'*.ts'))

boxer = []for ts in ts_list:

if os.path.exists(ts):

# print(os.path.splitext(os.path.basename(ts)))

file,_ = os.path.splitext(os.path.basename(ts))

print file

boxer.append(file)

# boxer.append(int(file))

boxer.sort()

print(boxer)

return boxer

#文件合并

def convert_m3u8(file_path,boxer,o_file_name):

print u"开始拼接视频"

new_path=file_path+"/"+u"视频"

try:

os.chdir(new_path)

except Exception, e:

os.mkdir(new_path)

tmp = []for ts in boxer:

print ts

tmp.append(str(ts)+'.ts')

cmd_str = '+'.join(tmp)

exec_str = "copy /b "+cmd_str+' '+o_file_name

print("copy /b "+cmd_str+' '+o_file_name)

os.chdir(user_path)

os.system(exec_str)

print "go home path"

import shutil

shutil.move(o_file_name,new_path+"/"+o_file_name)

os.chdir(file_path)

reload(sys)

sys.setdefaultencoding('utf-8')

# 功能:爬取m3u8格式的视频

# 检查存储路径是否正常

def check_path(_path):

# 判断存储路径是否存在

if os.path.isdir(_path) or os.path.isabs(_path):

# 判断存储路径是否为空

if not os.listdir(_path):

return _path

else:

print u'>>>[-] 目标文件不为空,将清空目标文件,是否更换路径?'

flag = raw_input('>>>[*] Yes:1 No:2 n>>>[+] [2]')

try:

if flag == '1':

_path = raw_input(unicode('>>>[+] 请输入目标文件路径。n>>>[+] ').encode('gbk'))

check_path(_path)

else:

# 清空存储路径

os.system('rd /S /Q ' + _path)

os.system('mkdir ' + _path)

return _path

except Exception as e:

print e

exit(0)

else:

os.makedirs(_path)

return _path

# 获取ts视频的爬取位置

def get_url(_url, _path):

all_url = _url.split('/')

url_pre = '/'.join(all_url[:-1]) + '/'

url_next = all_url[-1]

os.chdir(_path)

# 获取m3u8文件

m3u8_txt = requests.get(_url, headers = {'Connection':'close'})

with open(url_next, 'wb') as m3u8_content:

m3u8_content.write(m3u8_txt.content)

# 提取ts视频的url

movies_url = []_urls = open(url_next, 'rb')

for line in _urls.readlines():

if '.ts' in line:

movies_url.append(url_pre + line[:-1])

else:

continue

_urls.close()

return movies_url

# 爬取ts视频

python下载大文件mp4_python 实现视频流下载保存MP4的方法相关推荐

  1. python 下载视频文件_python 实现视频流下载保存MP4的方法

    如下所示: # -*- coding:utf-8 -*- import sys import os from glob import glob import requests reload(sys) ...

  2. python下载大文件mp4_Python代码打开本地.mp4格式文件的方法

    Python代码打开本地.mp4格式文件的方法 想通过编写Python代码来打开本地的.mp4格式文件,使用os模块来操作文件.我的电脑默认的是QQ影音播放器,执行Python代码打开默认播放器,播放 ...

  3. python下载大文件mp4_python合并大量ts文件成mp4格式(ps:上限是450,亲测)

    原博文 2018-08-22 17:34 − 1 import os 2 #exec_str = r'copy /b ts/c9645620628078.ts+ts/c9645620628079.ts ...

  4. python下载大文件mp4_Python 下载 m3u8 格式视频

    Python requests 下载 m3u8 格式 视频 最近爬取一个视频网站,遇到 m3u8 格式的视频需要下载. 抓包分析,视频文件是多个 ts 文件,什么是 ts文件,请去百度吧: 附图:抓包 ...

  5. python下载大文件mp4_python下载mp4 同步和异步下载支持断点续下

    Range 用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式: Range:(unit=first byte pos)-[last byte pos] Range 头部的格式有以下几种 ...

  6. Java笔记-使用RestTemplate下载大文件,并且设置下载时间

    如果文件大,Java会报OOM(out of memory).使用ResponseExtractor将远程服务器中的文件直接转成流存到文件中,而不放到内存. 事例代码如下: @GetMapping(& ...

  7. [MAC]Google Drive下载大文件

    在使用Chrome从Google Drive下载8G数据集的过程中,多次出现网络错误问题导致下载失败,特在此记录解决方法. 下载前提:已成功翻墙 一.出错原因: Google Drive下载大文件的时 ...

  8. 如何解决百度云下载大文件限速问题

    最痛苦的事情莫过于下载一个N个G的文件,而速度只有80k/s. 有一个东西叫百度云会员 我想,大部分人都很痛恨下载限速吧?尤其是当360云关门大吉后,百度云就可以更加嚣张的为所欲为了.不开百度云会员, ...

  9. 百度云不限速c语言,如何解决百度云下载大文件限速问题

    最痛苦的事情莫过于下载一个N个G的文件,而速度只有80k/s. 有一个东西叫百度云会员 我想,大部分人都很痛恨下载限速吧?尤其是当360云关门大吉后,百度云就可以更加嚣张的为所欲为了.不开百度云会员, ...

最新文章

  1. 【组合数学】生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 | 与常数相关 | 与二项式系数相关 | 与多项式系数相关 )
  2. SFrame中的apple函数
  3. u盘文件看得见却打不开_【U盘】国产开源U盘启动制作工具
  4. linux中oracle数据乱码,Linux系统Oracle数据库乱码问题的解决方法
  5. vue实战学习第二天
  6. 云服务器 性能监控软件,云监控 - 云应用监控 - ManageEngine Applications Manager
  7. oracle备份信息在控制文件丢失,恢复之利用备份在所有控制文件丢失情况下恢复(一)...
  8. python停止运行_python停止不了
  9. android banner 高度,Android Banner 的简单使用步骤
  10. Mybatis-plus 代码生成器(新)工具类
  11. 分享一个数据库在线文档系统
  12. java word书签_Java 给Word中的指定字符串添加书签
  13. 一个人能不能月薪过万,放个小长假就知道了
  14. 互联网运营常用8大数据分析模型
  15. java程序一图片为背景_利用Java处理图片,更换背景
  16. 广告商业形态与应用架构
  17. 如何查看一个期刊是sci几区以及影响因子 入藏号 ISSN等信息
  18. spanning tree protocol
  19. wap端使用a标签跳转不刷新问题
  20. (三)JVM成神路之全面详解执行引擎子系统与JIT即时编译原理

热门文章

  1. 2015年全年目标及执行情况跟踪
  2. iOS中AutoLayout自动布局,自适应高度
  3. Backbone的RESTFUL API 解释
  4. hdu1426 Sudoku Killer
  5. 减法运算的借位标志cf_数学|有理数运算法则及题型汇总
  6. powershell cs上线_BasUSB实现后台静默执行上线CobaltStrike
  7. 比亚迪王传福评价小米造车
  8. Beyond Compare Pro for Mac
  9. Java之添加环境变量
  10. Python报错:module ‘turtle’ has no attribute ‘pensize’