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()