Translate Youtube subtitles

Translate Youtube subtitles for your browser language

当前为 2021-03-05 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Translate Youtube subtitles
  3. // @version 1.6.3
  4. // @description Translate Youtube subtitles for your browser language
  5. // @author CoinkBeta
  6. // @match *://www.youtube.com/watch?v=*
  7. // @match *://www.youtube.com
  8. // @match *://www.youtube.com/*
  9. // @require https://unpkg.com/ajax-hook@2.0.2/dist/ajaxhook.min.js
  10. // @grant none
  11. // @namespace https://github.com/CoinkWang/Y2BDoubleSubs
  12. // ==/UserScript==
  13. (function() {
  14. let localeLang = navigator.language
  15. ah.proxy({
  16. onRequest: (config, handler) => {
  17. handler.next(config);
  18. },
  19. onResponse: (response, handler) => {
  20. if (response.config.url.includes('/api/timedtext') && !response.config.url.includes('&translate_h00ked')){
  21. let xhr = new XMLHttpRequest(); // Use RegExp to clean '&tlang=...' in our xhr request params while using Y2B auto translate.
  22. let reg = new RegExp("(^|[&?])tlang=([^&]*)",'g');
  23. xhr.open('GET', `${response.config.url.replace(reg,'')}&tlang=${localeLang}&translate_h00ked`, false);
  24. xhr.send();
  25. let localeJson = null;
  26. localeJson = JSON.parse(xhr.response) // Merge default subs with locale language subs
  27. response.response = JSON.stringify(localeJson)
  28. }
  29. handler.resolve(response)
  30. }
  31. })
  32. })();