微博视频下载助手

微博视频旁边自动展示下载按钮,点击即可下载(蚩尤后裔)

  1. // ==UserScript==
  2. // @name 微博视频下载助手
  3. // @version 1.1.1
  4. // @description 微博视频旁边自动展示下载按钮,点击即可下载(蚩尤后裔)
  5. // @author 蚩尤后裔
  6. // @homepage https://gf.qytechs.cn/zh-CN/scripts/458716-%E5%BE%AE%E5%8D%9A%E8%A7%86%E9%A2%91%E4%B8%8B%E8%BD%BD%E5%8A%A9%E6%89%8B
  7. // @match http*://weibo.com/*
  8. // @match http*://*.weibo.com/*
  9. // @require http://libs.baidu.com/jquery/2.0.0/jquery.min.js
  10. // @require https://cdn.bootcdn.net/ajax/libs/downloadjs/1.4.8/download.js
  11. // @grant GM_log
  12. // @grant GM_getValue
  13. // @grant GM_setValue
  14. // @grant GM_deleteValue
  15. // @grant GM_openInTab
  16. // @license MIT
  17. // @namespace https://gf.qytechs.cn/users/1008816
  18. // ==/UserScript==
  19.  
  20. // 将本内容直接复制粘贴到油猴中即可使用.
  21. (function () {
  22. 'use strict';
  23.  
  24. /**
  25. * 查找视频标签<video>
  26. * 注意事项:因为微博的 html 内容都是通过 js 动态加载的,而且随着滚动条下拉,加载的内容也会更多,
  27. * 所以采用定时器持续查找视图标签。
  28. */
  29. function findVideoEle() {
  30. setInterval(function(){
  31. let videoJQList = $("video");
  32. if(videoJQList.length > 0 ){
  33. console.log("可下载视频个数:"+ videoJQList.length);
  34. videoJQList.each(function (index) {
  35. if($(this).attr("src")){
  36. // 向视频旁边添加【下载】按钮
  37. appendDownloadEle($(this));
  38. }
  39. });
  40. }
  41. }, 3000);
  42. }
  43.  
  44. /**
  45. * 向视频上边添加【下载】按钮
  46. */
  47. function appendDownloadEle(videoJQ) {
  48. let downloadIdAttrName = videoJQ.attr("id") + "_download";
  49. if($("#" + downloadIdAttrName).length <= 0) {
  50. // 【下载】按钮
  51. let downloadJQ = $("<a>下 载</a>");
  52. downloadJQ.css({
  53. 'background-color': 'rgba(255,130,0, 1)',
  54. "color": "#fff",
  55. 'font-size': '20px',
  56. 'cursor': 'pointer',
  57. "border-radius": "10px",
  58. "padding-left": "10px",
  59. "padding-right": "10px",
  60. "margin-bottom": "2px"
  61. });
  62. downloadJQ.attr("id", downloadIdAttrName);
  63. downloadJQ.attr("href", videoJQ.attr("src"));
  64. downloadJQ.attr("target", "_balnk");
  65. videoJQ.parent().before(downloadJQ);
  66. // console.log(videoJQ.attr("id") +" 添加下载按钮:" + downloadIdAttrName +", src=" + videoJQ.attr("src"));
  67.  
  68. // 为下载按钮绑定单击事件下载视频
  69. downloadJQ.on("click", function (event) {
  70. // console.log("下载视频:" + $(this).attr("id") + ", href=" + $(this).attr("href"));
  71. // 阻止 a 标签默认行为
  72. event.preventDefault();
  73. if($(this).attr("href")) {
  74. // 下载视频
  75. download($(this).attr("href"));
  76. // 打开一个新的标签页面: 新标签页获取页面焦点,新标签页面关闭后,焦点重新回到源页面
  77. GM_openInTab($(this).attr("href"),{ active: true, setParent :true});
  78.  
  79. }
  80. });
  81. } else {
  82. // console.log(videoJQ.attr("id") +" 已存在下载按钮:" + downloadIdAttrName + ", src=" + videoJQ.attr("src"));
  83. }
  84. }
  85.  
  86. $(function () {
  87. // 查找视频标签<video>,向视频上边添加【下载】按钮.
  88. findVideoEle();
  89. });
  90.  
  91. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址