__author__ = 'Sentinel'
import requests
import re
import json
import sys
import shutil
import urlparse

""" youtube """
reload(sys)
sys.setdefaultencoding('utf-8')
res = requests.get('https://www.youtube.com/watch?v=3ZyVeyWV59U')
html = res.text.decode('gbk', 'ignore').encode('utf-8')
m = re.search('"args":({.*?}),', html)
#print m.group(1)
jd = json.loads(m.group(1))
#print jd["url_encoded_fmt_stream_map"]
a = urlparse.parse_qs(jd["url_encoded_fmt_stream_map"])
print a['url'][0]
res2 = requests.get(a['url'][0], stream=True)
f = open('youtube.mp4', 'wb')
shutil.copyfileobj(res2.raw, f)
f.close()

最新文章

  1. 洛谷11月月赛round.1
  2. mysql查看锁表情况
  3. js : json和 cookie 的简单操作
  4. Qt Designer 修改窗体大小改变控件位置
  5. Android计时器实例
  6. AndroidAnnotations部署
  7. [序列化] Serialize--序列化帮助类 (转载)
  8. uva 10763 Foreign Exchange <"map" ,vector>
  9. cdoj 韩爷的情书 有向图 欧拉路径
  10. block, inline和inline-block的区别
  11. Swift - 委托(delegate)的介绍,及使用样例
  12. 用css属性画出一棵圣诞树
  13. 经典面试题: 从输入URL到页面加载的过程发生了什么?
  14. js数组创建两种方法
  15. java中Map.Entry的使用方法
  16. MySQL 数据库初识
  17. 机器学习之MCMC算法
  18. A.01.02—模块的输入—高端输入
  19. 组件之间的数据传递--Vuex
  20. Apache、Tomcat负载均衡与集群

热门文章

  1. 二维指针*(void **)的研究(uC/OS-II案例) 《转载》
  2. ios晃动检测
  3. 解决ScrollView 与ListView共存显示不完全的问题
  4. 通过设计让APP变快的6个方法
  5. Codeforces 573B Bear and Blocks
  6. 二极管IN4001~IN4007参数
  7. 资本助力转型 TCL攻守转换(转型、并购、过冬前一定要保留强大的战略预备队)
  8. 自定义高级QFileDialog文件过滤器
  9. universal image loader在listview/gridview中滚动时重复加载图片的问题及解决方法
  10. js全局函数