Skip to content

Instantly share code, notes, and snippets.

@uahim
uahim / dts_check_and_transcode.bat
Last active June 27, 2025 17:46
batch helper for ffmpeg/ffprobe to loop through your mkv video files and convert dts
@echo off
setlocal enabledelayedexpansion
for %%a in (%*) do (
ffprobe -v error -select_streams a -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "%%~fa" | findstr /i "dts" >nul
if !errorlevel! equ 0 (
set filename="%%~dpna-ac3.mkv"
ffmpeg -i "%%~fa" -vcodec copy -scodec copy -acodec ac3 -b:a 640k %filename%
echo converted %filename%
)
@uahim
uahim / netflix-history.bookmarklet.js
Last active June 17, 2025 16:50
bookmarklet: save Netflix viewing history in a user-friendly form
// save this as a bookmarklet,
// go to your viewing history ( via https://www.netflix.com/settings )
// choose your profile and hit your bookmarklet
javascript: var mlnk =""; for (var i = 0, l = document.getElementsByTagName("ul")[3].getElementsByTagName("li").length -1; i < l; ++i) { var mydate = document.getElementsByClassName("date")[i].innerText.split("."); if (mydate[1] < 10) { month = "0"+mydate[1] } else { month = mydate[1] } mlnk += mydate[0] + "." + month + "." + mydate[2] + "\t"; mlnk += document.getElementsByClassName("title")[i].innerText + "\n"; } navigator.clipboard.writeText(mlnk);
// here's the text in human readable form:
javascript:
var mlnk = "";
for (var i = 0, l = document.getElementsByTagName("ul")[3].getElementsByTagName("li").length - 1; i < l; ++i) {
// ==UserScript==
// @name Pluto TV .m3u8 Grabber FORK
// @namespace http://tampermonkey.net/
// @version 1.8.5
// @description Captures m3u8 URLs via XHR and retrieves the last intercepted URL
// @author GhostyTongue + mihau
// @match *://*.pluto.tv/*
// @grant none
// @license MIT
// @downloadURL https://update.greasyfork.org/scripts/506067/Pluto%20TV%20m3u8%20Grabber.user.js
@uahim
uahim / netflix_viewing_history.js
Last active June 17, 2025 14:25
manually save your viewing history to clipboard; works from console
var mlnk ="";
for (var i = 0, l = document.getElementsByTagName("ul")[3].getElementsByTagName("li").length -1; i < l; ++i) {
var mydate = document.getElementsByClassName("date")[i].innerText.split(".")
if (mydate[1] < 10) { month = "0"+mydate[1] } else { month = mydate[1] }
mlnk += mydate[0] + "." + month + "." + mydate[2] + "\t";
mlnk += document.getElementsByClassName("title")[i].innerText + "\n";
}
copy(mlnk)
@uahim
uahim / amazon_music_tracklist_clipboard.js
Created October 23, 2024 16:54
amazon music copy tracklist to clipboard bookmarklet
var nix = "";
for (var i = 0, len = document.getElementsByClassName("col1").length; i < len; ++i) {
var it = document.getElementsByClassName("col1")[i].innerText;
if (it.indexOf("&") == -1) { // optional, obviously
nix += document.getElementsByClassName("col1")[i].innerText + "\n";
}
}
navigator.clipboard.writeText(nix)
@uahim
uahim / sorttable.js
Created September 15, 2024 19:15
sort tables
/*
SortTable
version 2
7th April 2007
Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/
Instructions:
Download this file
Add <script src="sorttable.js"></script> to your HTML
Add class="sortable" to any table you'd like to make sortable
@uahim
uahim / nyt_paywall_breaker.js
Last active September 28, 2024 21:33
new york times paywall breaker
var t = "";$ = function(_) {return document.getElementsByTagName(_)}
for (var i = 0, l = __preloadedData.initialData.data.article.sprinkledBody.content.length; i < l; ++i) {
var n = __preloadedData.initialData.data.article.sprinkledBody;
if (n.content[i].__typename == "ParagraphBlock") {t += '<p class="css-at9mc1 evys1bk0">' + n.content[i].content[0].text + "</p><br /><br />";}
}
$("body")[0].innerHTML = '<blockquote style="padding:255px"><p class="css-at9mc1 evys1bk0">' + $("header")[1].innerHTML + t + "</p></blockquote>";
@uahim
uahim / XMLHttpRequest.js
Last active August 14, 2024 18:51
XMLHttpRequest.js example
var getJSON = function(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'json'; // or html (returns as accessible document!) or text (default):
// https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType
xhr.onload = function() {
var status = xhr.status;
var cuii = new Array()
var j = 0;
for (var i = 0, l = document.getElementsByTagName("td").length; i < l; ++i) {
var td = document.getElementsByTagName("td")[i];
if ((td.innerText.indexOf(".") != -1) && (td.innerText.indexOf("jokerguide") == -1)) {
var url = 'https://' + document.getElementsByTagName("td")[i].innerText + '/';
cuii[j] = '<a href="' + url + '">' + url + '</a><br />\n';
j++;
@uahim
uahim / html5_video_playpause_.js
Last active August 13, 2024 16:47
html5 video play/pause toggle universal bookmarklet incl. zattoo condition
javascript: var v; if (location.host == "zattoo.com" ) { v = document.getElementById("player_video_node") } else { v = document.getElementsByTagName("video")[0] } v.paused == false ? v.pause() : v.play(); void(0);