Copy Udemy Transcript to the clipboard!

You can copy the Udemy transcript text and manupilate newlines automatically.

  1. // ==UserScript==
  2. // @name Copy Udemy Transcript to the clipboard!
  3. // @license good2see
  4. // @namespace udemyTranscript
  5. // @match *://*.udemy.com/course/*
  6. // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
  7. // @grant GM_addStyle
  8. // @version 1.0.0.2
  9. // @author -
  10. // @description You can copy the Udemy transcript text and manupilate newlines automatically.
  11. // ==/UserScript==
  12.  
  13. var kontrol = setInterval(function () {
  14. //if ($("h2").hasClass("udlite-heading-md")) { //Eğer Transkript section açıksa kopyalama işlemlerini yap
  15. if ($( "div[class*='transcript--transcript-panel']" )) {
  16. //transcript--transcript-panel--kfMxM
  17. console.log("transkript sectionı açık. kopyalamaya başlıyorum...");
  18. $("h2.udlite-heading-md").text("Transkript (Wait!)");
  19. const body = document.querySelector('body');
  20. var str = document.getElementById("ct-sidebar-scroll-container");
  21. const area = document.createElement('textarea');
  22. body.appendChild(area);
  23. var transkriptMetni = str.innerText.replace(/(\r\n|\n|\r)/gm," ");
  24. transkriptMetni = transkriptMetni.replaceAll(' ',' ');
  25. transkriptMetni = transkriptMetni.replaceAll('. ','.\r\n\r\n');
  26.  
  27. area.value = transkriptMetni;
  28. console.log(transkriptMetni);
  29.  
  30. const cb = navigator.clipboard;
  31.  
  32. cb.writeText(area.value).then(() => console.log('#### Transkript copied ####'));
  33. if (area.value.length>100) {
  34. clearInterval(this); //kontrolü durduryoruz
  35. console.log("**** kopyalama başarılı olduğundan timeri durdurdum");
  36. $("h2.udlite-heading-md").text("Transkript (Copied!)");
  37.  
  38. var videoLink = document.querySelector(".vjs-tech").getAttribute('src');
  39. $( "div[class*='header--header-title']" ).html(oncekiBaslik + "<a class='font-text-sm leave-rating--helper-text--21RPx' style='text-decoration:none!important;a:link{color:white!important;}' href='" + videoLink + "' target='_blank'>&#8681; Download Video</a>");
  40.  
  41. }
  42. body.removeChild(area);
  43. }
  44. //alert("Hello");
  45. }, 4000);
  46.  
  47.  
  48. let lastUrl = location.href;
  49. new MutationObserver(() => {
  50. const url = location.href;
  51. if (url !== lastUrl) {
  52. lastUrl = url;
  53. onUrlChange();
  54. }
  55. }).observe(document, {subtree: true, childList: true});
  56. function onUrlChange() {
  57. console.log('URL changed!', location.href);
  58. kontrol;
  59. }
  60.  
  61.  
  62.  
  63.  
  64.  
  65.