Sort YouTube Videos
Just the code
by MegaScience
JavaScript
function sortVideosByViews(dir) {
const sFunc = dir ? ({ e: e1, c: c1 }, { e: e2, c: c2 }) => c2 > c1 : ({ e: e1, c: c1 }, { e: e2, c: c2 }) => c2 < c1
const regex = /^([\d\.]+)(\w)?/
const container = document.querySelector('[page-subtype="channels"] #contents #items')
const videos = Array.from(container.querySelectorAll('ytd-grid-video-renderer')).map(e => {
let [, c, u] = e.querySelector('#metadata-line > span:first-child').textContent.trim().match(regex)
switch (u.toUpperCase()) {
case 'B':
u = 1000000000
break
case 'M':
u = 1000000
break
case 'K':
u = 1000
break
default:
u = 1
}
c = Number(c) * u
return { e: e, c: c }
}).sort(sFunc).map(({e}) => e)
container.append(...videos)
}
sortVideosByViews()