python自动下载安装软件_python3自动下载优酷视频小程序
我们一般都在优酷里看一些好玩的视频,有时候看到精彩的就想下载到本地保存起来留作纪念,在win下可以用维棠等软件下载,但苦了用linux的孩子们。尽管chrome和firefox的一些插件可以下载,但有时候下载下来是分段的视频,还要手动用ffmpeg合成一个视频太繁琐,而且用插件下载要点击好多次鼠标,太不符合linuxer的性格了哈~于是我用python3写了一个youkuDown.py,代码如下:
import re
import urllib.request
import json
import time
import random
import sys
def getVideoInfo(url):
ruleTitle=re.compile('
(.*)')
ruleId=re.compile('http://v.youku.com/v_show/id_(.*).html')
videoTitle=ruleTitle.findall(urllib.request.urlopen(url).read().decode('utf8'))
videoId=ruleId.findall(url)
return videoTitle[0],videoId[0]
def getTrueLink(videoid):
data=urllib.request.urlopen('http://v.youku.com/player/getPlayList/VideoIDS/'+videoid)
info=json.loads(data.read().decode('utf8'))
segs=info['data'][0]['segs']
types=segs.keys()
seed=info['data'][0]['seed']
source=list("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890")
mixed=''
while source:
seed=(seed*211+30031)&0xFFFF
index=seed*len(source)>>16
c=source.pop(index)
mixed+=c
ids=info['data'][0]['streamfileids']['flv'].split('*')[:-1]
vid=''.join(mixed[int(i)] for i in ids)
sid='%s%s%s'%(int(time.time()*1000),random.randint(1000,1999),random.randint(1000,9999))
urls=[]
for s in segs['flv']:
no='%02x'%int(s['no'])
url='http://f.youku.com/player/getFlvPath/sid/%s_%s/st/flv/fileid/%s%s%s?K=%s&ts=%s'%(sid,no,vid[:8],no.upper(),vid[10:],s['k'],s['seconds'])
urls.append(url)
return urls
def down2file(urls,filename):
f=open(filename,'wb')
fileNum=len(urls)
count=0
for url in urls:
count+=1
print('downloading file %d/%d'%(count,fileNum))
req=urllib.request.Request(url,headers={'Referer':'http://www.youku.com'})
data=urllib.request.urlopen(req).read()
f.write(data)
f.close()
print('download '+filename+' OK!')
def youkuDown(link):
videotitle,videoid=getVideoInfo(link)
urls=getTrueLink(videoid)
down2file(urls,videotitle+'.flv')
if __name__=='__main__':
if len(sys.argv)<2:
print('Example Usage: python3 youkuDown.py http://v.youku.com/v_show/id_XNjUzNDQwMzIw.html')
print('')
exit()
youkuDown(sys.argv[1])
简单说明一下,因为优酷视频的真实链接是动态变化的,而每个视频的ID是不变的,比如在链接http://v.youku.com/v_show/id_XNjUzNDQwMzIw.html中,“XNjUzNDQwMzIw”就是视频的唯一ID标识,通过这个ID可以通过GET方式请求“http://v.youku.com/player/getPlayList/VideoIDS/”+ID产生的新链接,得到json格式的视频信息,然后组装成视频的真实链接,这个真实链接也是有时效性的,而且向这个真实链接发起请求的时候必须把头的Referer设为www.youku.com骗过服务器才能下载,所以我没有像以前一样用os.system('wget '+url)这样搞起。还有,优酷对大的视频是分段的,所以得到的真实url我存在一个List里面,下载的时候会显示出共有几段以及实时下载了多少段。下面是我的使用举例:
保存到本地的视频播放情况:
在linux下想下载优酷视频的盆友们enjoy it~~同时祝大家新年愉快~~哈哈哈
python自动下载安装软件_python3自动下载优酷视频小程序相关推荐
- python3自动下载优酷视频小程序
我们一般都在优酷里看一些好玩的视频,有时候看到精彩的就想下载到本地保存起来留作纪念,在win下可以用维棠等软件下载,但苦了用linux的孩子们.尽管chrome和firefox的一些插件可以下载,但有 ...
- html引入优酷视频自动播放,h5页面上如何播放优酷视频
看到上面的答案,可能有人会有雾水.我来补充一下. 如果使用ueditor,kineditor等富文本编辑器插入的视频,其默认是插入swf结尾的url 这个时候,html5是不支持的. 那么如何做呢? ...
- 如何解决电脑不停自动下载安装软件问题?
如何解决电脑不停自动下载安装软件问题? 一.查看网络使用 1.当出现这情况后,我们首先要做的就是查看一下任务管理器里面的网络资源管理,看看是哪个程序,在偷偷的连接网络下载软件,先按住电脑的CTRL+A ...
- 更换ubuntu软件源为阿里源,解决ubuntu下载安装软件慢的问题并安装open-vm-tools和open-vm-tools-desktop
*************** 一.更换ubuntu软件源为阿里源,解决ubuntu下载安装软件慢的问题 1.打开终端(快捷键ctrl+alt+t),输入cd /etc/apt并回车 2.输入sudo ...
- ubuntu16.04 wget java_linux centos ubuntu下载安装JDK wget方式下载JDK
linux centos ubuntu下载安装JDK wget方式下载JDK 本文以jdk_8u162为例 切换到源码目录 cd /usr/local/src/ wget方式下载JDK官方最新包 wg ...
- =。= 好吧,获取优酷视频真实下载地址的后台完成了
=.= 好吧,获取优酷视频真实下载地址的后台完成了 Written by dreamfairy on 2011 年 02 月 28 日. Posted in DIARY, PHP, Working 这 ...
- 如何直接下载优酷视频?不用优酷下载器下载视频方法技巧
转载原地址:http://www.jb51.net/softjc/135042.html 以下为转载内容: 可能有许多朋友平常喜欢在优酷土豆下载视频观看,通常都只有安装i酷加速器或者飞速土豆软件才可以 ...
- 优酷视频下载器 优酷视频下载方法
iku爱酷V2.1版优酷视频加速器下载优酷视频下载器 iku爱酷V2.1版优酷视频加速器. 视频加速器播放速度更快!下载速度更快!旋风般的加速感觉! 视频下载看下载优酷站内视频,充分满足你的收藏欲. ...
- 优酷视频下载|优酷播放器下载
优酷网从上周开始,全站视频已经开始完美支持iPad和iPhone 4的在线视频播放服务.采用HTML5和HTTP Live Streaming技术,对苹果iOS系统实现全面的支持,并达到和PC上一样流 ...
最新文章
- JavaWeb实现分页的四种方法
- qpsk调制解调matlab_本科毕业设计课题—QPSK相干解调的MATLAB仿真(3)
- 查询v$lock缓慢和direct path write temp等待
- jeecg-easypoi-2.0.3版本发布
- 【华为云技术分享】降本增效的背后:华为云瑶光数字化经营实战
- Android下拉刷新上拉更多瀑布流(附源码)
- 我的开源项目:JPEG分析器
- 如何为自己找到合适的销售工作?
- java开发工具比较(16个工具修订版)
- Windows下安装Tp6.0框架,图文。Thinkphp6.0安装教程
- Linux - ZModem协议的sz命令传输文件异常
- 机器学习教程 之 随机森林: 算法及其特征选择原理
- 如何给多段视频制作一行滚动字幕,并添加GIF表情包
- 远程唤醒、WOL、Magic_Packet
- windows MSOCache删除
- PLSQL--表空间管理
- 扫地机器人的构造及核心技术详解
- 2033-人见人爱A+B(java)
- 【LeetCode】括号(有效括号、括号生成、最长有效括号)
- 十分钟带你了解阿里、美团、滴滴、头条等互联网头部大厂面经
热门文章
- SQL Server查询
- 基于jsp java的汽车租赁租车行管理系统
- flutter混合开发怎么调试
- python开发的程序_Python二次开发程序详解
- 让客户两眼放光,美容店无法抗拒的成交主张,7天收款91万!
- setTimeout()用法
- 啥是伪代码?假的代码??是代码吗??
- IDC 中国边缘云市场最新报告解读:阿里云蝉联中国公有云市场第一
- java尚硅谷 项目三《开发团队调度项目》最细致流程、总结
- 【VINS论文笔记】Online Temporal Calibration for Monocular Visual-Inertial Systems 单目视觉惯性系统在线时间标定