python基于http下载视频或音频

一、简介

这里介绍使用python基于http下载视频或音频。

二、关键点

1、断点续传

视频或音频文件一般比较大,所以通过需要断点续传。方式通过在http的header里添加Range字段,指示接下来需要接收文件的位置。

2、判断结束

这里采用读取response的content-length字段,若当前报文长度小于前次报文长度,或者已接收文件等于当前报文长度,则可以认为视频接收完成。

三、示例代码

import os
import requests

def do_load_media(url, path):
  try:
    headers = {
      "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.3.2.1000 Chrome/30.0.1599.101 Safari/537.36"}
    pre_content_length = 0
    # 循环接收视频数据
    while True:
      # 若文件已经存在,则断点续传,设置接收来需接收数据的位置
      if os.path.exists(path):
        headers['Range'] = 'bytes=%d-' % os.path.getsize(path)
      res = requests.get(url, stream=True, headers=headers)

      content_length = int(res.headers['content-length'])
      # 若当前报文长度小于前次报文长度,或者已接收文件等于当前报文长度,则可以认为视频接收完成
      if content_length < pre_content_length or (
          os.path.exists(path) and os.path.getsize(path) == content_length):
        break
      pre_content_length = content_length

      # 写入收到的视频数据
      with open(path, 'ab') as file:
        file.write(res.content)
        file.flush()
        print('receive data,file size : %d  total size:%d' % (os.path.getsize(path), content_length))
  except Exception as e:
    print(e)

def load_media():
  url = 'http://k.youku.com/player/getFlvPath/sid/051446875256330ba12be_00/st/flv/fileid/030002080056EECA04F69A03BAF2B1BBADCA22-B1B9-E915-C03B-B0E7B0726C73?K=ae8e9a4d0f294dce282cef20&hd=0&myp=0&ts=377&ypp=0&ctype=30&ev=1&token=3759&oip=826403039&did=9e701e2baea8d466300184129d27d5d8&ep=AqAHzTJcifjAG0w8gO6bow3Mo5jVCyWrke5yFUQ5ZxOD3KGnS9WeSH2XvfdzTgOmgcPdl%2BVjzD29GUC%2BqeDjFxCFXBPHdIgGvhDtKk064s9iV0vxt4B0XNY39jlBH%2BCK'
  path = r'E:/test.mp4'
  do_load_media(url, path)
  pass

def main():
  load_media()
  pass

if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python调用百度语音识别实现大音频文件语音识别功能

    本文为大家分享了python实现大音频文件语音识别功能的具体代码,供大家参考,具体内容如下 实现思路:先用ffmpeg将其他非wav格式的音频转换为wav格式,并转换音频的声道(百度支持声道为1),采样率(值为8000),格式转换完成后,再用ffmpeg将音频切成百度. 支持的时长(30秒和60秒2种,本程序用的是30秒). # coding: utf-8 import json import time import base64 from inc import rtysdb import ur

  • python音频处理用到的操作的示例代码

    前言 本文主要记录python下音频常用的操作,以.wav格式文件为例.其实网上有很多现成的音频工具包,如果仅仅调用,工具包是更方便的. 更多pyton下的操作可以参考: 用python做科学计算 1.批量读取.wav文件名: 这里用到字符串路径: 1.通常意义字符串(str) 2.原始字符串,以大写R 或 小写r开始,r'',不对特殊字符进行转义 3.Unicode字符串,u'' basestring子类 如: path = './file/n' path = r'.\file\n' path

  • Python中音频处理库pydub的使用教程

    前言 pydub是Python中用户处理音频文件的一个库.本文主要介绍了关于Python音频处理库pydub使用的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 安装: 1.安装pip工具:sudo apt-get install python-pip 2.安装pydub:sudo pip install pydub 3.pydub依赖于ffmpeg,所以还需要安装ffmpeg,由于Ubunbtu14.04官方源移除了ffmpeg,因此通过ppa源安装: sudo apt-add-re

  • python实现录音小程序

    本文为大家分享了python实现录音小程序的具体代码,供大家参考,具体内容如下 学习目标:掌握python的pyaudio扩展包和Wave模块录制语音的方法 Wav音频:声道数,采样频率,量化位数 python Wav包是自带的,pyaudio需要下载 pip3 install pyaudio python读Wav文件: fp=wave.open('','rb') nf=fp.getnframes()#获取文件的采样点数量 print('sampwidth:',fp.getsampwidth()

  • python实现播放音频和录音功能示例代码

    音频预处理 这一讲主要介绍些音频基本处理方式,为接下来的语音识别打基础. 三种播放音频的方式 使用 python 播放音频有以下几种方式: os.system() os.system(file) 调用系统应用来打开文件,file 可为图片或者音频文件. 缺点:要打开具体的应用,不能在后台播放音频. pyaudio 安装:pip install pyaudio 官方提供了播放音频与录音的 api ,使用十分方便,只要把Filename更改为你的音频文件的文字,就可以播放音频了. ""&q

  • python通过wxPython打开一个音频文件并播放的方法

    本文实例讲述了python通过wxPython打开一个音频文件并播放的方法.分享给大家供大家参考.具体如下: 这段代码片段使用wx.lib.filebrowsebutton.FileBrowseButton控件打开一个wav文件,使用wx.Sound播放 import wx import wx.lib.filebrowsebutton class MyFrame(wx.Frame): def __init__(self, parent, mytitle, mysize): wx.Frame.__

  • Python用sndhdr模块识别音频格式详解

    本文主要介绍了Python编程中,用sndhdr模块识别音频格式的相关内容,具体如下. sndhdr模块 功能描述:sndhdr模块提供检测音频类型的接口. 唯一一个API sndhdr模块提供了sndhdr.what(filename)和sndhdr.whathdr(filename)两个函数.但实际上它们的功能是一样的.(不知道多写一个的意义何在,what函数在内部调用了whathdr函数并把数据完完整整地返回) 在之前的版本,whathdr函数返回元组类型的数据,在Python3.5版本之

  • 利用python写个下载teahour音频的小脚本

    前言 最近空闲的时候看到了之前就关注的一个小站http://teahour.fm/,一直想把这里的音频都听一遍,可转眼间怎么着也有两年了,却什么也没做.有些伤感,于是就写了个脚本,抓了下音频的下载链接,等下载下来后一定要认真听听. 时间仓促,加调试也就那么十几分钟,脚本写的可能有些烂,大家可以留言指出. teahour.py #!/usr/bin/env python #coding: utf-8 import sys import requests from BeautifulSoup imp

  • python基于http下载视频或音频

    一.简介 这里介绍使用python基于http下载视频或音频. 二.关键点 1.断点续传 视频或音频文件一般比较大,所以通过需要断点续传.方式通过在http的header里添加Range字段,指示接下来需要接收文件的位置. 2.判断结束 这里采用读取response的content-length字段,若当前报文长度小于前次报文长度,或者已接收文件等于当前报文长度,则可以认为视频接收完成. 三.示例代码 import os import requests def do_load_media(url

  • python 实现多线程下载视频的代码

    代码: def thread(url): r = requests.get(url, headers=None, stream=True, timeout=30) # print(r.status_code, r.headers) headers = {} all_thread = 1 # 获取视频大小 file_size = int(r.headers['content-length']) # 如果获取到文件大小,创建一个和需要下载文件一样大小的文件 if file_size: fp = op

  • Python实现一键下载视频脚本

    目录 需求 解决方案 代码 总结 需求 小编通常会上一些专业的视频网站比如腾讯视频.优酷,在上面看电影.电视剧.这些网站有个优点,可以缓存视频,在通勤路上比如地铁就可以愉快的刷剧了,因为地铁上的网速通常不怎么好. 但是有一些经典电影或者电视剧,这些视频并没有提供,那么我们只能上一些小电影网站看了,资源是有了,但是问题来了,这些小电影网站大多数都没有视频下载功能,那在地铁上就没法看了. 如果可以把这些视频下载下来,再传输到手机里不就可以离线看了吗? 接下来小编就演示下如何用 python 脚本来实

  • Python基于OpenCV实现视频的人脸检测

    本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys import logging as log import datetime as dt from time import sleep cascPath = "haarcascade_frontalface_default.xml" faceCascade = cv2.CascadeCla

  • 利用Python小工具实现3秒钟将视频转换为音频

    最近,有读者微信上私聊我,想让我写一篇视频批量转换成音频的文章,我答应了,周末宅家里把这个小工具做出来了. 这样,对于有些视频学习文件,我们可以批量转换成音频文件,学习方式更多样化了. 之前也用过 ffmpeg 处理视频文件.ffmpeg 这个程序处理视频是好用,但是有没有更轻便的呢?可以不下载这个程序吗?还真有,Python 里有 ffmpeg 相关的库:ffmpy3. ffmpy3 是 ffmpy 的一个分支,它是一个简单的 FFmpeg 命令行包装程序.ffmpy 实现了一个 Python

  • 基于Python制作B站视频下载小工具

    目录 1. 原理简介 2. 网页分析 3. 视频爬取 4. 存入本地 5. GUI工具制作 1. 原理简介 原理很简单,就是获取视频资源的源地址,然后爬取视频的二进制内容,再写入到本地即可. 2. 网页分析 打开该网页,然后F12进入开发者模式,接着点开网络—>全部,因为视频资源一般比较大,我这里根据大小进行了从大到小的排序,找到了第一条这些可能和视频源地址有关. 然后,我们复制找到的这条里的url部分不变的部分,回到元素中ctrl+F搜索,找到了可能和视频源地址有关的节点. 果然,我们复制这部

  • python基于tkinter制作m3u8视频下载工具

    这是我为了学习tkinter用python 写的一个下载m3u8视频的小程序,程序使用了多线程下载,下载后自动合并成一个视频文件,方便播放. 目前的众多视频都是m3u8的播放类型,只要知道视频的m3u8地址,就可以完美下载整个视频. m3u8地址获取 打开浏览器,点开你要获取地址的视频 重要的来了,右键>>审查元素或者按F12也可以 根据开发或测试的实际环境选择相应的设备,选择iphone6 plus 选择好了以后,刷新页面,点击漏斗,选择media,一定刷新之后再点击,没出来的话切换几下选项

  • 基于Python实现全自动下载抖音视频

    很多人喜欢玩抖音,我也喜欢看抖音小姐姐,可拿着手机一个个找视频太费劲.作为一个程序员,如何能在电脑前一边编程一边轻松地看抖音小姐姐呢? 下面利用Python,简单的三个步骤就可以将你喜欢的抖音小姐姐的视频自动下载下来了. Charles Charles是一个App抓包工具,与Filddler的功能相似,利用它可以得到App运行过程中发生的所有网络请求和响应内容. 在电脑端下载安装完Charles后,需要配置证书,最后开启SSL监听. 手机端则是需要与电脑在同一网络下,比如都连接家里的Wi-Fi,

  • ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码

    安装 官网下载 http://ffmpeg.org/ 选择需要的版本 在这个网址下载ffmpeg,https://github.com/BtbN/FFmpeg-Builds/releases 将解压后得到的以下几个文件放置在E:\FFmpeg下 环境变量 此电脑--属性--高级系统设置--环境变量 在系统变量(也就是下面那一半)处找到新建,按如下所示的方法填写 再将%FFMPEG_HOME%以及%FFMPEG_HOME%\bin写入系统变量的Path中 然后一路确定即可 验证 win+R,cmd

  • Python基于爬虫实现全网搜索并下载音乐

    现在写一篇博客总是喜欢先谈需求或者本内容的应用场景,是的,如果写出来的东西没有任何应用价值,确实也没有实际意义.今天的最早的需求是来自于如何免费[白嫖]下载全网优质音乐,我去b站上面搜索到了一个大牛做过的一个歌曲搜素神器,界面是这样的: 确实很好用的,而且涵盖了互联网上面大多数主流的音乐网站,涉及到的版本也很多,可谓大而全,但是一个技术人的追求远远不会如此,于是我就想去了解其中背后的原理,因为做过网络爬虫的人都知道,爬虫只能爬取某一页或者某些页的网站资源,所以我很好奇它背后是怎么实现的? 笔者一

随机推荐