// ==UserScript==
// @name Pornhub Interactive Video and JSON URL Scraper
// @match https://www.pornhub.com/view_video.php?viewkey=*
// @match https://www.pornhubpremium.com/view_video.php?viewkey=*
// @require http://code.jquery.com/jquery-3.3.1.min.js
// @grant unsafeWindow
// ==/UserScript==
(function() {
'use strict';
if ($('.qrActionBlock').length) {
var title = $('.title-container .title').css('text-transform', 'none');
title.text(title.text().toLowerCase().replace(/(?:^|\s)\w/g, function(match) {
return match.toUpperCase();
}));
var videoId = $('#player').data('video-id');
var mediaDefinitions = unsafeWindow['flashvars_' + videoId].mediaDefinitions;
var row = $('<div class="video-info-row" />').text('URLs: ').insertAfter('.qrActionBlock');
var urls = $('<span />').appendTo(row);
for (var i in mediaDefinitions) {
if (mediaDefinitions[i].videoUrl) {
if (urls.text()) {
urls.append(' , ');
}
$('<a />').attr('href', mediaDefinitions[i].videoUrl).text(mediaDefinitions[i].quality).appendTo(urls);
}
}
var pibdsUrl = 'https://api.pibds.com/api/v1/videos/' + videoId + '/subtitles/0?apptoken=' + unsafeWindow.feelSubToken + '&external_user_id=' + unsafeWindow.feelsAppsUserId;
urls.append(' , ');
$('<a />').attr('href', pibdsUrl).text('JSON').appendTo(urls);
}
})();