$ ffmpeg -i <URL.m3u8>
$ ffmpeg -i URL.m3u8 -map <SOURCE_IDX>:p:<PROGRAM_NUMBER> -c copy output.ext
| /** | |
| * Prevent click events after a touchend. | |
| * | |
| * Inspired/copy-paste from this article of Google by Ryan Fioravanti | |
| * https://developers.google.com/mobile/articles/fast_buttons#ghost | |
| * | |
| * USAGE: | |
| * Prevent the click event for an certain element | |
| * ```` | |
| * PreventGhostClick(myElement); |
| license: gpl-3.0 | |
| redirect: https://observablehq.com/@d3/draw-me |
| <!DOCTYPE html> | |
| <html manifest=sketch.manifest> | |
| <head> | |
| <meta charset=utf-8> | |
| <title>Sketch</title> | |
| <meta name=apple-mobile-web-app-capable content=yes> | |
| <meta name=apple-mobile-web-app-status-bar-style content=black> | |
| <meta name=viewport content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, minimal-ui"> | |
| <link href="http://staticresource.com/formal.css" rel=stylesheet type=text/css> | |
| <script>eval(unescape(escape('♶♡♲☠♩☽♤♯♣♵♭♥♮♴☮♣♲♥♡♴♥♅♬♥♭♥♮♴☨☧♣♡♮♶♡♳☧☩☬♣☽♩☮♧♥♴♃♯♮♴♥♸♴☨☧☲♤☧☩☬♦☽♤♯♣♵♭♥♮♴☮♣♲♥♡♴♥♅♬♥♭♥♮♴☨☧♬♩♮♫☧☩☬♭☽♤♯♣♵♭♥♮♴☮♣♲♥♡♴♥♅♬♥♭♥♮♴☨☧♬♩♮♫☧☩☻♩☮♷♩♤♴♨☽☲☰☰☻♩☮♨♥♩♧♨♴☽☲☰☰☻♣☮♦♩♬♬♓♴♹♬♥☽☧♬♩♧♨♴♧♯♬♤♥♮♲♯♤♹♥♬♬♯♷☧☻♣☮♢♥♧♩♮♐♡♴♨☨☩☻♣☮♭♯♶♥♔♯☨☱☰☬☰☩☻♣☮♬♩♮♥♔♯☨☱☹☰☬☰☩☻♣☮♱♵♡♤♲♡♴♩♣♃♵♲♶♥♔♯☨☲☰☰☬☰☬☲☰☰☬☱☰☩☻♣☮♬♩♮♥♔♯☨☲☰☰☬☱☹☰☩☻♣☮♱♵♡♤♲♡♴♩♣♃♵♲♶♥♔♯☨☲☰☰☬☲☰☰☬☱☹☰☬☲☰☰☩☻♣☮♬♩♮♥♔♯☨☱☰☬☲☰☰☩☻♣☮♱♵♡♤♲♡♴♩♣♃♵♲♶♥♔♯☨☰☬☲☰☰☬☰☬☱☹☰☩☻♣☮♬♩♮♥♔♯☨☰☬☱☰☩☻♣☮♱♵♡♤♲♡♴♩♣♃♵♲♶♥♔♯☨☰☬☰☬☱☰☬☰☩☻♣☮♣♬♯♳♥♐♡♴♨☨☩☻♣☮♦♩♬♬☨☩☻♣☮♳♴♲♯♫♥♓♴♹♬♥☽☧♲♥♤☧☻♣☮♬♩♮♥♗♩♤♴♨☽☳☰☻♣☮♬♩♮♥♃♡♰☽☧♲♯♵♮♤☧☻♣☮♢♥♧♩♮♐♡♴♨☨☩☻♣☮♭♯♶♥♔♯☨☴☵☬☱☳☰☩☻♣☮♢♥♺♩♥♲♃♵♲♶♥♔♯☨☴☵☬☱☳☰☬☷☰☬☲☰☰☬☱☰☵☬☱☳☰☩☻♣☮♢♥♺♩♥♲♃♵♲♶♥♔♯☨☱☰☵☬☱☳☰☬☱☴☰☬☵☰☬ |
| <script src="https://code.highcharts.com/highcharts.js"></script> | |
| <script src="https://code.highcharts.com/modules/series-label.js"></script> | |
| <script src="https://code.highcharts.com/modules/exporting.js"></script> | |
| <script src="https://code.highcharts.com/modules/export-data.js"></script> | |
| <script src="https://code.highcharts.com/modules/accessibility.js"></script> | |
| <figure class="highcharts-figure"> | |
| <div id="container"></div> | |
| <p class="highcharts-description"> | |
| Basic line chart showing trends in a dataset. This chart includes the |
| function walkObjectRecursive(source, mapper = (v, k) => ({ [k]: v })) { | |
| if (typeof source !== 'object' || source === null || source === undefined) { | |
| return source | |
| } | |
| if (Array.isArray(source)) { | |
| return source.reduce((acc, val, index) => [...acc, mapper(walkObjectRecursive(val, mapper), index)], []) | |
| } | |
| return Object.keys(source).reduce( |
| # https://nsikakimoh.com/blog/remove-docker-completely-from-mac | |
| sudo rm -rf ~/.docker | |
| sudo rm -rf ~/Library/Containers/com.docker.docker | |
| sudo rm -rf ~/Library/Group\ Containers/group.com.docker | |
| sudo rm -rf ~/Library/Caches/com.docker.docker | |
| sudo rm -rf /Library/PrivilegedHelperTools/com.docker.vmnetd | |
| sudo rm -rf /Library/LaunchDaemons/com.docker.vmnetd.plist | |
| sudo rm -rf /usr/local/lib/docker | |
| sudo rm -rf ~/Library/Application Support/Docker Desktop |
| function template(source, scope = {}) { | |
| return String(source).replace(/\{\{(.+?)\}\}/gm, function(match, p1) { | |
| const param = p1.trim() | |
| return scope[param] || '' | |
| }).replace(/ +/mg, ' ') | |
| } |