hello live - streams

notes

requirements

method

  1. open hellolive.tv in your browser and make sure you're logged in
  2. use F12 to open the dev tools and switch to the console tab
  3. paste this javascript into the console and hit enter to retrieve your firebase refresh token
  4. (async () => {
       const db = await new Promise((res, rej) => {
         const r = indexedDB.open("firebaseLocalStorageDb");
         r.onsuccess = () => res(r.result);
         r.onerror = () => rej(r.error);
       });
       const tx = db.transaction("firebaseLocalStorage", "readonly");
       const store = tx.objectStore("firebaseLocalStorage");
       const entries = await new Promise((res, rej) => {
         const r = store.getAll();
         r.onsuccess = () => res(r.result);
         r.onerror = () => rej(r.error);
       });
       const entry = entries.find(e => e.fbase_key?.startsWith("firebase:authUser:"));
       if (!entry) { console.error("no firebase auth entry — are you logged in?"); return; }
       const token = entry.value?.stsTokenManager?.refreshToken;
       if (!token) { console.error("no refreshToken in entry"); return; }
       console.log(token);
       await navigator.clipboard.writeText(token).then(
         () => console.log("(copied to clipboard)"),
         () => console.log("(clipboard copy blocked — copy from above)")
       );
     })();
    

    note: the token only needs to be acquired once and can then be reused over and over

  5. create a file named token.txt in the same directory as hellolive-stream.py and paste the token inside it
  6. enter the concert venue and copy the page url
  7. run hellolive-stream.py to begin downloading
  8. python hellolive-stream.py <url>

watching in mpv

by default, the script pipe muxes the stream to a .ts file which can be opened in mpv to watch in real time. mpv does not automatically update subtitle files as they're appened to though, like it does with video files.

to work around this, download sub-reload.lua and place it in your mpv scripts directory. then when you open the .ts file, use F2 to toggle on automatic sub file reloading at 10 second intervals.