Print All Panopto Captions

Adds a button to download all captions on the left pane when viewing a panopto video.

  1. // ==UserScript==
  2. // @name Print All Panopto Captions
  3. // @locale Eng
  4. // @description Adds a button to download all captions on the left pane when viewing a panopto video.
  5. // @version 1.0
  6. // @grant none
  7. // @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
  8. // @match https://*.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=*
  9. // @namespace https://greasyfork.org/users/170988
  10. // ==/UserScript==
  11.  
  12. function download(filename, text) {
  13. var element = document.createElement('a');
  14. element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
  15. element.setAttribute('download', filename);
  16. element.style.display = 'none';
  17. document.body.appendChild(element);
  18. element.click();
  19. document.body.removeChild(element);
  20. }
  21.  
  22. let button = '<div id="downloadCaptionsTabHeader" class="event-tab-header"><span class="text">Download Captions</span></div>';
  23.  
  24. $('#transcriptTabHeader').after(button);
  25.  
  26. $('#downloadCaptionsTabHeader').click(function() {
  27. let allText = "";
  28. for (element of document.getElementsByClassName('index-event')) {
  29. allText += element.children[1].children[0].children[0].innerHTML + "\n";
  30. }
  31. //console.log(document.getElementsByClassName('index-event')[0].children[1].children[0].children[0].innerHTML);
  32. download("captions-for_"+$(document).find("title").text().replaceAll(" ", "-")+'.txt', allText.replaceAll("<br>", " "));
  33. });