优化百度网盘在线播放

自动加载高清画质;添加倍速播放,数字键1,2,3分别对应1,2,3倍速,4为1.5倍速,5为开启画中画模式; '[' 上一集; ']' 下一集。

  1. // ==UserScript==
  2. // @name 优化百度网盘在线播放
  3. // @namespace http://tampermonkey.net/
  4. // @description 自动加载高清画质;添加倍速播放,数字键1,2,3分别对应1,2,3倍速,4为1.5倍速,5为开启画中画模式; '[' 上一集; ']' 下一集。
  5. // @author You
  6. // @match https://pan.baidu.com/*
  7. // @icon https://nd-static.bdstatic.com/m-static/v20-main/favicon-main.ico
  8. // @grant none
  9. // @license MIT
  10. // @version 1.0.0
  11. // ==/UserScript==
  12.  
  13. (function () {
  14. window.addEventListener("keydown", (e) => {
  15. if (e.ctrlKey || ![49, 50, 51, 52, 53, 219, 221].includes(e.keyCode))
  16. return;
  17. const video = document.querySelector("video");
  18. const controlBtns = document.querySelectorAll(
  19. ".vp-video__control-bar--play .vp-video__control-bar--button-group"
  20. );
  21. if (!video || !controlBtns.length) return;
  22. switch (e.keyCode) {
  23. case 49:
  24. video.playbackRate = 1;
  25. savePlayBackRate(1);
  26. break;
  27. case 50:
  28. video.playbackRate = 2;
  29. savePlayBackRate(2);
  30. break;
  31. case 51:
  32. video.playbackRate = 3;
  33. savePlayBackRate(3);
  34. break;
  35. case 52:
  36. video.playbackRate = 1.5;
  37. savePlayBackRate(1.5);
  38. break;
  39. case 53:
  40. togglePictureInPictureMode(video);
  41. break;
  42. case 219:
  43. controlBtns[1]
  44. .querySelector(".vp-video__control-bar--button")
  45. .click();
  46. break;
  47. case 221:
  48. controlBtns[2]
  49. .querySelector(".vp-video__control-bar--button")
  50. .click();
  51. break;
  52. }
  53. });
  54. const savePlayBackRate = (playbackRate) => {
  55. sessionStorage.setItem("playBackRate", playbackRate);
  56. };
  57. const togglePictureInPictureMode = async (video) => {
  58. if (video !== document.pictureInPictureElement) {
  59. await video.requestPictureInPicture();
  60. } else {
  61. await document.exitPictureInPicture();
  62. }
  63. };
  64. const mutation = new MutationObserver((mutation) => {
  65. for (let m of mutation) {
  66. if (m.target.classList && m.target.classList.contains("vjs-tech")) {
  67. const btns = document.querySelectorAll(
  68. ".vp-video__control-bar--video-resolution .vp-video__control-bar--video-button"
  69. );
  70. if (btns.length && !btns[1].classList.contains("is-selected")) {
  71. const highDefinitionBtn = btns[1].querySelector("button");
  72. highDefinitionBtn && highDefinitionBtn.click();
  73. }
  74. const video = document.querySelector("video");
  75. const playBackRate = sessionStorage.getItem("playBackRate") || 1;
  76. if (video && video.playbackRate !== +playBackRate) {
  77. video.playbackRate = +playBackRate;
  78. }
  79. }
  80. }
  81. });
  82. const config = {
  83. childList: true,
  84. attributes: true,
  85. subtree: true,
  86. };
  87. mutation.observe(document.body, config);
  88. })();

QingJ © 2025

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