XVideos Filter

Filter xvideos search results based on preferences

  1. // ==UserScript==
  2. // @name XVideos Filter
  3. // @namespace XVideos Filter
  4. // @version 0.1
  5. // @description Filter xvideos search results based on preferences
  6. // @author EmersonxD
  7. // @match https://www.xvideos.com/tags/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. // Define your search terms and preferences here
  15. var searchTerm = "conhece";
  16. var preferences = ["HD", "1080p", "longa"];
  17.  
  18. // Get the search results page
  19. var url = `https://www.xvideos.com/tags/${searchTerm}`;
  20. var xhr = new XMLHttpRequest();
  21. xhr.open('GET', url, true);
  22. xhr.onload = function() {
  23. if (xhr.status === 200) {
  24. var soup = new DOMParser().parseFromString(xhr.responseText, 'text/html');
  25. var videos = [];
  26. var videoElements = soup.querySelectorAll('div.thumb');
  27. for (var i = 0; i < videoElements.length; i++) {
  28. var video = videoElements[i];
  29. var title = video.querySelector('a.title').textContent.trim();
  30. var duration = video.querySelector('span.duration').textContent.trim();
  31. var quality = video.querySelector('span.quality').textContent.trim();
  32. if (preferences.every(p => quality.includes(p))) {
  33. videos.push({ title, duration, quality });
  34. }
  35. }
  36. // Print the filtered videos
  37. for (var i = 0; i < videos.length; i++) {
  38. console.log(`Title: ${videos[i].title}, Duration: ${videos[i].duration}, Quality: ${videos[i].quality}`);
  39. }
  40. }
  41. };
  42. xhr.send();
  43. })();