From 82f9731cc4ede6be065429206fdacaf8763a3e29 Mon Sep 17 00:00:00 2001
From: Kai DeLorenzo <git@seaoflaurels.com>
Date: Fri, 24 May 2024 21:03:36 -0500
Subject: [PATCH] refactored and removed hardcoding

---
 README.md                  |   10 +-
 build/SpotifyScript.js     |  766 +++++++++++----------------
 build/SpotifyScript.js.map |    2 +-
 build/SpotifyScript.ts     | 1001 +++++++++++++++---------------------
 src/SpotifyScript.ts       | 1001 +++++++++++++++---------------------
 src/types.ts               |   31 +-
 6 files changed, 1171 insertions(+), 1640 deletions(-)

diff --git a/README.md b/README.md
index ef25079..b1b03de 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,6 @@
 - [ ]   music video support (not available in the us)
 - [ ]   video podcast support (requires a better websocket api)
 - [ ]   similar to bilibili i think we need to add id prefixes or suffixes because there could be collision
-- [ ]   add playback tracking support
 - [ ]   add offline playback for widevine support
         as far as i can tell this will not be possible. Spotify does not support offline playback in the 
         Web Player. Asking the ephemeral license server for a persistent license hasn't worked.
@@ -18,13 +17,9 @@
         wireshark tips https://www.netresec.com/?page=PolarProxy to unencrypt
         https://docs.fedoraproject.org/en-US/quick-docs/using-shared-system-certificates/ for adding the root ca
         some reference offline/persistent widevine https://github.com/AnassHmida/react-native-video-drm/blob/main/android-exoplayer/src/main/java/com/brentvatne/exoplayer/DownloadTracker.java
-- [ ]   doesn't play :( https://open.spotify.com/album/3UEEPh5wsdhP7SKC31yvhu
-- [ ]   trascript issue https://open.spotify.com/episode/2T9MigKPyg21TWR3juW4z5
-- [ ]   section genre urls should still work https://open.spotify.com/genre/0JQ5IMCbQBLpWesTpzW2kY
-- [ ]   errors for some reason https://open.spotify.com/track/4EUQXLipplO2v9mVaqQtjc
+- [x]   (i think this is fixed) when the liked songs collection is in the recently played genre it doesn't show up in grayjay
 - [ ]   doesn't play https://open.spotify.com/track/5kIcrM3QVD4BQPFMszQnU1
-- [ ]   doesn't play https://open.spotify.com/track/0ROKraHEf4F02IyaudmAt6
-- [ ]   when the liked songs collection is in the recently played genre it doesn't show up in grayjay
+- [ ]   doesn't play :( https://open.spotify.com/album/3UEEPh5wsdhP7SKC31yvhu
 
 ## Grayjay Bugs
 - [ ]   RatingScaler doesn't work
@@ -33,3 +28,4 @@
 - [ ]   there is no way to get to the creator of a playlist
 - [ ]   the pager that goes in the contents property of a playlist doesn't ever call the nextPage method
 - [ ]   the channel about section doesn't render HTML
+- [ ]   the isOpen property on WebSocket always returns false
diff --git a/build/SpotifyScript.js b/build/SpotifyScript.js
index b10f7c2..78da50b 100644
--- a/build/SpotifyScript.js
+++ b/build/SpotifyScript.js
@@ -17,6 +17,7 @@ const PLATFORM = "Spotify";
 // const USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:124.0) Gecko/20100101 Firefox/124.0" as const
 const HARDCODED_ZERO = 0;
 const HARDCODED_EMPTY_STRING = "";
+const EMPTY_AUTHOR = new PlatformAuthorLink(new PlatformID(PLATFORM, "", plugin.config.id), "", "");
 const local_http = http;
 // const local_utility = utility
 // set missing constants
@@ -311,7 +312,7 @@ function getHome() {
             }
         });
     }
-    const playlists = format_page(sections, 4);
+    const playlists = format_page(sections, 4, "Home");
     return new ContentPager(playlists, false);
 }
 function whats_new_args(offset, limit) {
@@ -432,7 +433,7 @@ function format_song_and_episode_results(search_response) {
             return new PlatformVideo({
                 id: new PlatformID(PLATFORM, id_from_uri(episode.data.uri), plugin.config.id),
                 name: episode.data.name,
-                author: new PlatformAuthorLink(new PlatformID(PLATFORM, id_from_uri(episode.data.podcastV2.data.uri), plugin.config.id), episode.data.podcastV2.data.name, `${ARTIST_URL_PREFIX}${id_from_uri(episode.data.podcastV2.data.uri)}`, episode.data.podcastV2.data.coverArt?.sources[0]?.url),
+                author: episode.data.podcastV2.data.__typename === "Podcast" ? new PlatformAuthorLink(new PlatformID(PLATFORM, id_from_uri(episode.data.podcastV2.data.uri), plugin.config.id), episode.data.podcastV2.data.name, `${ARTIST_URL_PREFIX}${id_from_uri(episode.data.podcastV2.data.uri)}`, episode.data.podcastV2.data.coverArt?.sources[0]?.url) : EMPTY_AUTHOR,
                 url: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`,
                 thumbnails: new Thumbnails(episode.data.coverArt.sources.map(function (image) {
                     return new Thumbnail(image.url, image.height);
@@ -441,7 +442,7 @@ function format_song_and_episode_results(search_response) {
                 viewCount: HARDCODED_ZERO,
                 isLive: false,
                 shareUrl: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`,
-                datetime: new Date(episode.data.releaseDate.isoString).getTime() / 1000
+                datetime: episode.data.releaseDate === null ? HARDCODED_ZERO : new Date(episode.data.releaseDate.isoString).getTime() / 1000
             });
         })
     ];
@@ -525,7 +526,11 @@ function getContentDetails(url) {
                     }];
             }
             const format = local_state.is_premium ? "MP4_256" : "MP4_128";
-            const maybe_file_id = song_metadata_response.file.find(function (file) { return file.format === format; })?.file_id;
+            const files = song_metadata_response.file === undefined ? song_metadata_response.alternative?.[0]?.file : song_metadata_response.file;
+            if (files === undefined) {
+                throw new ScriptException("missing alternative file list");
+            }
+            const maybe_file_id = files.find(function (file) { return file.format === format; })?.file_id;
             if (maybe_file_id === undefined) {
                 throw new ScriptException("missing expected format");
             }
@@ -675,7 +680,7 @@ function getContentDetails(url) {
                         end = episode_metadata_response.data.episodeUnionV2.duration.totalMilliseconds;
                     }
                     vtt_text += `${milliseconds_to_WebVTT_timestamp(section.startMs)} --> ${milliseconds_to_WebVTT_timestamp(end)}\n`;
-                    vtt_text += `${section.text.sentence.text}\n`;
+                    vtt_text += `${"text" in section ? section.text.sentence.text : section.fallback.sentence.text}\n`;
                     vtt_text += "\n";
                 });
                 return [{
@@ -1071,6 +1076,9 @@ class LikedEpisodesPager extends VideoPager {
 }
 function format_collection_episodes(response) {
     return response.data.me.library.episodes.items.map(function (episode) {
+        if (episode.episode.data.podcastV2.data.__typename === "NotFound" || episode.episode.data.releaseDate === null) {
+            throw new ScriptException("unreachable");
+        }
         return new PlatformVideo({
             id: new PlatformID(PLATFORM, id_from_uri(episode.episode._uri), plugin.config.id),
             name: episode.episode.data.name,
@@ -1849,7 +1857,7 @@ function getChannelContents(url, type, order, filters) {
             if (browse_page_response.data.browse.__typename === "GenericError") {
                 throw new ScriptException("error loading genre page");
             }
-            const playlists = format_page(browse_page_response.data.browse.sections.items, limit);
+            const playlists = format_page(browse_page_response.data.browse.sections.items, limit, browse_page_response.data.browse.header.title.transformedLabel);
             return new ContentPager(playlists, false);
         }
         case "show":
@@ -1898,7 +1906,7 @@ function getChannelContents(url, type, order, filters) {
  * @param display_limit maximum number of items to display per section
  * @returns
  */
-function format_page(sections, display_limit) {
+function format_page(sections, display_limit, page_title) {
     const filtered_sections = sections.flatMap(function (item) {
         if (is_playlist_section(item)) {
             return [item];
@@ -1907,7 +1915,7 @@ function format_page(sections, display_limit) {
     });
     const content = filtered_sections.flatMap(function (section) {
         const section_title = section.data.title;
-        const section_name = "text" in section_title ? section_title.text : section_title.transformedLabel;
+        const section_name = section_title === null ? page_title : "text" in section_title ? section_title.text : section_title.transformedLabel;
         const section_items = section.sectionItems.items.flatMap(function (section_item) {
             if (section_item.content.__typename === "UnknownType") {
                 return [];
@@ -2075,6 +2083,9 @@ function format_section_item(section, section_as_author) {
             return new PlatformPlaylist(platform_playlist);
         }
         case "Episode": {
+            if (section.podcastV2.data.__typename === "NotFound" || section.releaseDate === null) {
+                throw new ScriptException("unreachable");
+            }
             return new PlatformVideo({
                 id: new PlatformID(PLATFORM, section.id, plugin.config.id),
                 name: section.name,
@@ -2510,475 +2521,322 @@ function getUserSubscriptions() {
     }
     return following;
 }
-const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues;
-const gt = (e) => ht ? function (e) {
-    return crypto.getRandomValues(new Uint8Array(e));
-}(e) : function (e) {
-    const t = [];
-    for (; t.length < e;)
-        t.push(Math.floor(256 * Math.random()));
-    return t;
-}(e);
-const ft = (e) => {
-    const t = Math.ceil(e / 2);
-    return function (e) {
-        let t = "";
-        for (let n = 0; n < e.length; n++) {
-            const i = e[n];
-            if (i === undefined) {
-                throw new ScriptException("issue generating device id");
-            }
-            i < 16 && (t += "0"),
-                t += i.toString(16);
-        }
-        return t;
-    }(gt(t));
-};
-const vt = () => ft(40);
 function getPlaybackTracker(url) {
-    const { content_uri_id } = parse_content_url(url);
+    const { content_uri_id, content_type } = parse_content_url(url);
     check_and_update_token();
-    return new SpotifyPlaybackTracker(content_uri_id);
+    return new SpotifyPlaybackTracker(content_uri_id, content_type);
 }
 class SpotifyPlaybackTracker extends PlaybackTracker {
-    uri_id;
-    state_machine_id = "";
-    playback_id = "";
+    recording_play = false;
     play_recorded = false;
-    socket_closed = false;
-    another_one = false;
-    in_between = false;
-    transfered = false;
-    // private device_active = false
-    // private transfered = false
-    // private start_triggered = false
-    connection_id = "";
-    socket;
-    init_seconds = 0;
-    device_id = vt();
-    // private readonly uid = "ccf999d7241e13521c2e"
-    // private readonly track_uri = "spotify:track:4pbG9SUmWIvsROVLF0zF9s"
-    // private readonly album_uri_id = "7vEJAtP3KgKSpOHVgwm3Eh"
-    // private readonly track_album_index = 3
-    // private readonly duration = 145746
-    uid = "1347b3deaefee32b7d2b";
-    track_uri = "spotify:track:2tQG2nFEHhWsH05kFKlC4A";
-    album_uri_id = "0BaIaHcyBXuOWeM4Aas4EW";
-    track_album_index = 2;
-    duration = 109750;
-    // private readonly uid = "296cf850453478739645"
-    // private readonly track_uri = "spotify:track:77uEkHMJ6EnOZjd1Hh9Tty"
-    // private readonly album_uri_id = "6wOJyevNYXevqTZCn6Xk5T"
-    // private readonly track_album_index = 4
-    // private readonly duration = 171989
-    // private readonly uid = "8167260601e9aab35d02"
-    // private readonly track_uri = "spotify:track:4Op5aSB6JSVzp7Jhi5hQKp"
-    // private readonly album_uri_id = "7skmDXP36SNveM5XKFoLuK"
-    // private readonly track_album_index = 5
-    // private readonly duration = 111266
-    seq_num = 3;
-    constructor(uri_id) {
-        const interval_seconds = 4;
+    total_seconds_played = 0;
+    device_id;
+    context_url;
+    context_uri;
+    skip_to_data;
+    duration;
+    interval_seconds;
+    constructor(uri_id, content_type) {
+        const interval_seconds = 2;
         super(interval_seconds * 1000);
-        this.uri_id = uri_id;
-        // this.device_id = "b27bde830fd81dbff77339f7ed344db1a40"
-        log("connecting to websocket");
-        const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`;
-        this.socket = http.socket(url, {}, false);
-        this.socket.connect({
-            open: () => {
-                log("open");
-                // this.socket.send(JSON.stringify({
-                //     type: "ping"
-                // }))
-            },
-            closed: (code, reason) => {
-                console.log(code.toString());
-                console.log(reason);
-            },
-            closing: (code, reason) => {
-                console.log(code.toString());
-                console.log(reason);
-            },
-            message: (msg) => {
-                log("a message");
-                const connection = JSON.parse(msg);
-                if (!("method" in connection)) {
-                    if (connection.uri === "hm://track-playback/v1/command") {
-                        if (connection.payloads[0]?.state_machine.states.length === 0) {
-                            log("ignored WS message just informing us of the active device");
-                            log(msg);
-                            return;
-                        }
-                        if (this.playback_id !== "" && this.state_machine_id !== "") {
-                            log("ignored WS message ids already found");
+        this.interval_seconds = interval_seconds;
+        // generate device id
+        const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues;
+        const gt = (e) => ht ? function (e) {
+            return crypto.getRandomValues(new Uint8Array(e));
+        }(e) : function (e) {
+            const t = [];
+            for (; t.length < e;)
+                t.push(Math.floor(256 * Math.random()));
+            return t;
+        }(e);
+        const ft = (e) => {
+            const t = Math.ceil(e / 2);
+            return function (e) {
+                let t = "";
+                for (let n = 0; n < e.length; n++) {
+                    const i = e[n];
+                    if (i === undefined) {
+                        throw new ScriptException("issue generating device id");
+                    }
+                    i < 16 && (t += "0"),
+                        t += i.toString(16);
+                }
+                return t;
+            }(gt(t));
+        };
+        const vt = () => ft(40);
+        this.device_id = vt();
+        // load track info
+        switch (content_type) {
+            case "episode": {
+                const { url, headers } = episode_metadata_args(uri_id);
+                const response = JSON.parse(local_http.GET(url, headers, false).body);
+                switch (response.data.episodeUnionV2.__typename) {
+                    case "Chapter":
+                        this.context_uri = response.data.episodeUnionV2.audiobookV2.data.uri;
+                        break;
+                    case "Episode":
+                        this.context_uri = response.data.episodeUnionV2.podcastV2.data.uri;
+                        break;
+                    default:
+                        throw assert_exhaustive(response.data.episodeUnionV2, "unreachable");
+                }
+                this.context_url = `context://${this.context_uri}`;
+                this.skip_to_data = {
+                    content_type: "episode",
+                    track_uri: response.data.episodeUnionV2.uri
+                };
+                this.duration = response.data.episodeUnionV2.duration.totalMilliseconds;
+                break;
+            }
+            case "track":
+                const { url, headers } = track_metadata_args(uri_id);
+                const response = JSON.parse(local_http.GET(url, headers, false).body);
+                const track_album_index = response.data.trackUnion.trackNumber - 1;
+                const { url: tracks_url, headers: tracks_headers } = album_tracks_args(id_from_uri(response.data.trackUnion.albumOfTrack.uri), track_album_index, 1);
+                const tracks_response = JSON.parse(local_http.GET(tracks_url, tracks_headers, false).body);
+                this.context_uri = response.data.trackUnion.albumOfTrack.uri;
+                this.context_url = `context://${this.context_uri}`;
+                this.duration = response.data.trackUnion.duration.totalMilliseconds;
+                const uid = tracks_response.data.albumUnion.tracks.items[0]?.uid;
+                if (uid === undefined) {
+                    throw new ScriptException("can't find song uid");
+                }
+                this.skip_to_data = {
+                    content_type: "track",
+                    uid,
+                    track_uri: response.data.trackUnion.uri,
+                    track_album_index
+                };
+                break;
+            default:
+                throw assert_exhaustive(content_type, "unreachable");
+        }
+    }
+    onInit(_seconds) {
+    }
+    onProgress(_seconds, is_playing) {
+        if (is_playing) {
+            // this ends up lagging behind. 
+            this.total_seconds_played += this.interval_seconds;
+        }
+        if (is_playing && !this.recording_play && this.total_seconds_played > 30) {
+            this.recording_play = true;
+            log("creating WebSocket connection");
+            // setup WebSocket connection
+            const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`;
+            const socket = http.socket(url, {}, false);
+            socket.connect({
+                open: () => {
+                },
+                closed: (code, reason) => {
+                    console.log(code.toString());
+                    console.log(reason);
+                },
+                closing: (code, reason) => {
+                    console.log(code.toString());
+                    console.log(reason);
+                },
+                message: (msg) => {
+                    // ignore queued messages
+                    if (this.play_recorded) {
+                        log("ignoring queued message");
+                        return;
+                    }
+                    const message = JSON.parse(msg);
+                    // this is the initial connection message
+                    if ("method" in message) {
+                        const connection_id = message.headers["Spotify-Connection-Id"];
+                        const track_playback_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices";
+                        local_http.POST(track_playback_url, JSON.stringify({
+                            device: {
+                                brand: "spotify",
+                                capabilities: {
+                                    change_volume: true,
+                                    enable_play_token: true,
+                                    supports_file_media_type: true,
+                                    play_token_lost_behavior: "pause",
+                                    disable_connect: false,
+                                    audio_podcasts: true,
+                                    video_playback: true,
+                                    manifest_formats: ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"]
+                                },
+                                device_id: this.device_id,
+                                device_type: "computer",
+                                metadata: {},
+                                model: "web_player",
+                                name: "Web Player (Grayjay)",
+                                platform_identifier: "web_player linux undefined;chrome 125.0.0.0;desktop",
+                                is_group: false
+                            },
+                            outro_endcontent_snooping: false,
+                            connection_id: connection_id,
+                            client_version: "harmony:4.42.0-2780565f",
+                            volume: 65535
+                        }), { Authorization: `Bearer ${local_state.bearer_token}` }, false);
+                        const connect_state_url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`;
+                        local_http.requestWithBody("PUT", connect_state_url, JSON.stringify({
+                            "member_type": "CONNECT_STATE",
+                            "device": {
+                                "device_info": {
+                                    "capabilities": {
+                                        "can_be_player": false,
+                                        "hidden": true,
+                                        "needs_full_player_state": true
+                                    }
+                                }
+                            }
+                        }), {
+                            Authorization: `Bearer ${local_state.bearer_token}`,
+                            "X-Spotify-Connection-Id": connection_id
+                        }, false);
+                        const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}`;
+                        local_http.POST(transfer_url, JSON.stringify({
+                            "command": {
+                                "context": {
+                                    uri: this.context_uri,
+                                    url: this.context_url,
+                                    "metadata": {}
+                                },
+                                "play_origin": {
+                                    "feature_identifier": "album",
+                                    //feature_identifier: "show",
+                                    //feature_identifier: "audiobook",
+                                    "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b",
+                                    "referrer_identifier": "your_library"
+                                },
+                                "options": {
+                                    "license": "on-demand",
+                                    "skip_to": this.skip_to_data.content_type === "track" ? {
+                                        track_index: this.skip_to_data.track_album_index,
+                                        track_uid: this.skip_to_data.uid,
+                                        track_uri: this.skip_to_data.track_uri
+                                    } : {
+                                        track_uri: this.skip_to_data.track_uri
+                                    },
+                                    "player_options_override": {}
+                                },
+                                "logging_params": {
+                                    "page_instance_ids": [
+                                        "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e"
+                                    ],
+                                    "interaction_ids": [
+                                        "d3697919-e8be-425d-98bc-1ea70e28963a"
+                                    ],
+                                    "command_id": "46b1903536f6eda76783840368982c5e"
+                                },
+                                "endpoint": "play"
+                            }
+                        }), { Authorization: `Bearer ${local_state.bearer_token}` }, false);
+                        return;
+                    }
+                    if (message.uri === "hm://track-playback/v1/command") {
+                        if (message.payloads[0]?.state_machine.states.length === 0) {
+                            log("ignored WS message that was informing of the active device");
                             log(msg);
                             return;
                         }
-                        // if (this.state_machine_id === "") {
-                        log("reading state details");
-                        const playback_id = connection.payloads[0]?.state_machine.states.find((state) => {
-                            return state.track_uid === this.uid;
-                        })?.state_id;
-                        // const playback_id = connection.payloads[0]?.state_machine.states[0]?.state_id
-                        if (playback_id === undefined || playback_id === "") {
+                        const state_machine = message.payloads[0]?.state_machine;
+                        const playback_id = (() => {
+                            const data = this.skip_to_data;
+                            switch (data.content_type) {
+                                case "episode": {
+                                    return state_machine?.states.find((state) => {
+                                        return state_machine.tracks[state.track]?.metadata.uri === data.track_uri;
+                                    })?.state_id;
+                                }
+                                case "track": {
+                                    return message.payloads[0]?.state_machine.states.find((state) => {
+                                        return state.track_uid === data.uid;
+                                    })?.state_id;
+                                }
+                                default:
+                                    throw assert_exhaustive(data);
+                            }
+                        })();
+                        if (playback_id === undefined) {
                             log("error missing playback_id");
                             log(msg);
                             return;
-                            // throw new ScriptException("missing playback_id")
                         }
-                        const state_machine_id = connection.payloads[0]?.state_machine.state_machine_id;
-                        if (state_machine_id === undefined || state_machine_id === "") {
+                        let state_machine_id = state_machine?.state_machine_id;
+                        if (state_machine_id === undefined) {
                             log("error missing state_machine_id");
                             log(msg);
                             return;
-                            // throw new ScriptException("missing state_machine_id")
                         }
-                        this.playback_id = playback_id;
-                        this.state_machine_id = state_machine_id;
-                        log(msg);
-                        // }
-                        // payloads statemachine states state_id
-                        // this.playback_id = "11"
-                        // this.state_machine_id = "69"
-                        // if (!this.start_triggered && this.transfered) {
-                        // }
+                        let seq_num = 3;
+                        const initial_state_machine_id = state_machine_id;
+                        const state_update_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`;
+                        // simulate song play
+                        const before_track_load = JSON.parse(local_http.requestWithBody("PUT", state_update_url, JSON.stringify({
+                            seq_num: seq_num,
+                            state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                            sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                            debug_source: "before_track_load"
+                        }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body);
+                        state_machine_id = before_track_load.state_machine.state_machine_id;
+                        seq_num += 1;
+                        local_http.requestWithBody("PUT", state_update_url, JSON.stringify({
+                            seq_num: seq_num,
+                            state_ref: { state_machine_id: initial_state_machine_id, state_id: playback_id, paused: false },
+                            sub_state: { playback_speed: 0, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                            debug_source: "speed_changed"
+                        }), { Authorization: `Bearer ${local_state.bearer_token}` }, false);
+                        seq_num += 1;
+                        const speed_change = JSON.parse(local_http.requestWithBody("PUT", state_update_url, JSON.stringify({
+                            seq_num: seq_num,
+                            state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                            sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                            previous_position: 0,
+                            debug_source: "speed_changed"
+                        }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body);
+                        state_machine_id = speed_change.state_machine.state_machine_id;
+                        seq_num += 1;
+                        const started_playing = JSON.parse(local_http.requestWithBody("PUT", state_update_url, JSON.stringify({
+                            seq_num: seq_num,
+                            state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                            sub_state: { playback_speed: 1, position: 1360, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                            previous_position: 1360,
+                            debug_source: "started_playing"
+                        }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body);
+                        state_machine_id = started_playing.state_machine.state_machine_id;
+                        seq_num += 1;
+                        const played_threshold_reached = JSON.parse(local_http.requestWithBody("PUT", state_update_url, JSON.stringify({
+                            seq_num: seq_num,
+                            state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                            sub_state: { playback_speed: 1, position: 30786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                            previous_position: 30786,
+                            debug_source: "played_threshold_reached"
+                        }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body);
+                        state_machine_id = played_threshold_reached.state_machine.state_machine_id;
+                        seq_num += 1;
+                        // delete the device
+                        const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`;
+                        local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false);
+                        const deregister = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}`;
+                        local_http.requestWithBody("DELETE", deregister, JSON.stringify({
+                            seq_num: seq_num,
+                            state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                            sub_state: { playback_speed: 1, position: 40786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                            previous_position: 40786,
+                            debug_source: "deregister"
+                        }), { Authorization: `Bearer ${local_state.bearer_token}` }, false);
+                        socket.close();
+                        this.play_recorded = true;
+                        log("closing WebSocket connection");
                         return;
                     }
                     log("ignored WS message");
                     log(msg);
                     return;
+                },
+                failure: (exception) => {
+                    log("failure");
+                    console.log(exception);
                 }
-                this.connection_id = connection.headers["Spotify-Connection-Id"];
-                // register device
-                log("registering device");
-                const register_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices";
-                const response = local_http.POST(register_url, 
-                // JSON.stringify({
-                //     connection_id: connection.headers["Spotify-Connection-Id"],
-                //     device: {
-                //         device_id: this.device_id,
-                //         model: "web_player",
-                //         name: "Web Player (Grayjay)",
-                //         // capabilities: {
-                //         //     change_volume: false,
-                //         //     audio_podcasts: true,
-                //         //     manifest_formats: [
-                //         //         "file_ids_mp3",
-                //         //         "file_urls_mp3"
-                //         //     ]
-                //         // },
-                //         "capabilities":{"change_volume":true,"enable_play_token":true,"supports_file_media_type":true,"play_token_lost_behavior":"pause","disable_connect":false,"audio_podcasts":true,"video_playback":true,"manifest_formats":["file_ids_mp3","file_urls_mp3","manifest_urls_audio_ad","manifest_ids_video","file_urls_external","file_ids_mp4","file_ids_mp4_dual","manifest_urls_audio_ad"]},
-                //         client_version: "harmony:4.42.0-2780565f",
-                //         // brand: "spotify",
-                //         device_type: "computer"
-                //     }
-                // }),
-                JSON.stringify({ "device": { "brand": "spotify", "capabilities": { "change_volume": true, "enable_play_token": true, "supports_file_media_type": true, "play_token_lost_behavior": "pause", "disable_connect": false, "audio_podcasts": true, "video_playback": true, "manifest_formats": ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"] }, "device_id": this.device_id, "device_type": "computer", "metadata": {}, "model": "web_player", "name": "Web Player (Chrome)", "platform_identifier": "web_player linux undefined;chrome 125.0.0.0;desktop", "is_group": false }, "outro_endcontent_snooping": false, "connection_id": this.connection_id, "client_version": "harmony:4.42.0-2780565f", "volume": 65535 }), { Authorization: `Bearer ${local_state.bearer_token}` }, false);
-                log(response);
-                log("grabbing devices info");
-                const another_register_thing = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`;
-                const response1 = local_http.requestWithBody("PUT", another_register_thing, JSON.stringify({
-                    "member_type": "CONNECT_STATE",
-                    "device": {
-                        "device_info": {
-                            "capabilities": {
-                                "can_be_player": false,
-                                "hidden": true,
-                                "needs_full_player_state": true
-                            }
-                        }
-                    }
-                }), {
-                    Authorization: `Bearer ${local_state.bearer_token}`,
-                    "X-Spotify-Connection-Id": this.connection_id
-                }, false);
-                const device_info = JSON.parse(response1.body);
-                log(device_info);
-                // this.device_active = "active_device_id" in device_info
-                // this.transfered = true
-                // this.registered = true
-                // payloads cluster playerstate
-                // payloads statemachine staemachine_id
-                // if (1 + 2 > 3) {
-                // }
-                // log(response.body)
-                // gives the list of devices
-                //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_5ef1df4daf071872bfe5ae0714efafa29f2
-                //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_ce5888d21908a6372f02c2c0155f3d7d1c9
-                // actually registers a device
-                //https://gue1-spclient.spotify.com/track-playback/v1/devices
-            },
-            failure: (exception) => {
-                log("failure");
-                console.log(exception);
-            }
-        });
-    }
-    onInit(seconds) {
-        this.init_seconds = seconds;
-    }
-    onProgress(seconds, is_playing) {
-        //{"seq_num":15,"state_ref":{"state_machine_id":"ChQ0Jnocbbg7kDx3WOjgNutMUyLLzA","state_id":"8425aeb0fef142d597d1b578c5f31061","paused":true},"sub_state":{"playback_speed":0,"position":33535,"duration":307927,"media_type":"AUDIO","bitrate":128000,"audio_quality":"HIGH","format":10},"previous_position":33535,"debug_source":"pause"}
-        if (this.socket_closed) {
-            return;
-        }
-        if (seconds - this.init_seconds > 70 && is_playing) {
-            this.socket.close();
-            this.socket_closed = true;
-            log("done closing");
-        }
-        if (this.another_one) {
-            return;
-        }
-        if (seconds - this.init_seconds > 60 && is_playing) {
-            log("deleting device");
-            const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`;
-            const response = local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false);
-            log(response);
-            const url2 = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}`;
-            const response2 = local_http.requestWithBody("DELETE", url2, JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 40786, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 40786, "debug_source": "deregister" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false);
-            log(response2);
-            /*
-            log("trigger finish")
-
-            const initial_state_machine_id = this.state_machine_id
-            const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response1: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                register_playback_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": this.duration - 158, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": this.duration - 158, "playback_stats": { "ms_total_est": this.duration, "ms_metadata_duration": 0, "ms_manifest_latency": 196, "ms_latency": 1188, "start_offset_ms": 14, "ms_initial_buffering": 451, "ms_initial_rebuffer": 451, "ms_seek_rebuffering": 0, "ms_stalled": 0, "max_ms_seek_rebuffering": 0, "max_ms_stalled": 0, "n_stalls": 0, "n_rendition_upgrade": 0, "n_rendition_downgrade": 0, "bps_bandwidth_max": 0, "bps_bandwidth_min": 0, "bps_bandwidth_avg": 0, "audiocodec": "mp4", "start_bitrate": 128000, "time_weighted_bitrate": 0, "key_system": "widevine", "ms_key_latency": 1796, "total_bytes": 3494928, "local_time_ms": Date.now(), "n_dropped_video_frames": 0, "n_total_video_frames": 0, "resolution_max": 0, "resolution_min": 0, "strategy": "MSE" }, "debug_source": "track_data_finalized" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response1)
-            this.seq_num += 1
-            this.state_machine_id = response1.state_machine.state_machine_id
-
-
-
-
-            log("triggering before play")
-            const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response2: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response2)
-            this.state_machine_id = response2.state_machine.state_machine_id
-            this.seq_num += 1
-
-            // let res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-
-
-            log("speed change 1")
-            // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response3: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response3)
-            this.seq_num += 1
-
-            */
-            this.another_one = true;
-        }
-        if (this.in_between) {
-            return;
-        }
-        if (seconds - this.init_seconds > 50 && is_playing) {
-            if (!this.socket.isOpen) {
-                log("socket not open!");
-            }
-            else {
-                log(`recording play of ${this.uri_id}`);
-                // this.socket.close()
-            }
-            const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`;
-            const response = JSON.parse(local_http.requestWithBody("PUT", register_playback_url, 
-            // JSON.stringify({
-            //     debug_source: "played_threshold_reached",
-            // }),
-            JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 30786, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 30786, "debug_source": "played_threshold_reached" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body);
-            log(response);
-            this.seq_num += 1;
-            this.state_machine_id = response.state_machine.state_machine_id;
-            this.in_between = true;
-        }
-        if (this.play_recorded) {
-            return;
-        }
-        if (seconds - this.init_seconds > 15 && is_playing) {
-            this.play_recorded = true;
-            // log(this.connection_id)
-            // command id is random
-            //t = e=>{
-            // const t = Math.ceil(e / 2);
-            // return function(e) {
-            //     let t = "";
-            //     for (let n = 0; n < e.length; n++) {
-            //         const i = e[n];
-            //         i < 16 && (t += "0"),
-            //         t += i.toString(16)
-            //     }
-            //     return t
-            // }(gt(t))
-            //     const un = /^[0-9a-f]{32}$/i
-            //     , pn = ()=>ft(32)
-            //     , mn = e=>{
-            //       if (e && (t = e,
-            //       !un.test(t)))
-            //           throw new TypeError(`Invalid commandId. Expected a 32 character hex string but got: ${e}`);
-            //       var t;
-            //       return e || pn()
-            //   }
-            const initial_state_machine_id = this.state_machine_id;
-            log("triggering before play");
-            const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`;
-            const response1 = JSON.parse(local_http.requestWithBody("PUT", before_playling_url, 
-            // JSON.stringify({
-            //     debug_source: "played_threshold_reached",
-            // }),
-            JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body);
-            log(response1);
-            this.state_machine_id = response1.state_machine.state_machine_id;
-            this.seq_num += 1;
-            // let res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-            log("speed change 1");
-            // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response3 = JSON.parse(local_http.requestWithBody("PUT", before_playling_url, 
-            // JSON.stringify({
-            //     debug_source: "played_threshold_reached",
-            // }),
-            JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body);
-            log(response3);
-            this.seq_num += 1;
-            // this.state_machine_id = response3.state_machine.state_machine_id
-            // res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-            log("speedchange 2");
-            // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response4 = JSON.parse(local_http.requestWithBody("PUT", before_playling_url, 
-            // JSON.stringify({
-            //     debug_source: "played_threshold_reached",
-            // }),
-            JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 0, "debug_source": "speed_changed" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body);
-            log(response4);
-            this.state_machine_id = response4.state_machine.state_machine_id;
-            this.seq_num += 1;
-            // res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-            log("triggering play start");
-            const started_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`;
-            const response = JSON.parse(local_http.requestWithBody("PUT", started_playling_url, 
-            // JSON.stringify({
-            //     debug_source: "played_threshold_reached",
-            // }),
-            JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 1360, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 1360, "debug_source": "started_playing" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body);
-            log(response);
-            this.state_machine_id = response.state_machine.state_machine_id;
-            this.seq_num += 1;
-            // this.start_triggered = true
-        }
-        if (this.transfered) {
-            return;
-        }
-        if (seconds - this.init_seconds > 5 && is_playing) {
-            log("transfering to device");
-            const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}`;
-            const transfer_response = local_http.POST(transfer_url, 
-            // this.device_active ? JSON.stringify(
-            //     { "transfer_options": { "restore_paused": "restore" }, "interaction_id": "cf075506-9bc9-4af6-a164-93778f310345", "command_id": "3bcf58bc37afa628c3d441df53efc469" }
-            // ) : 
-            JSON.stringify({
-                "command": {
-                    "context": {
-                        // "uri": "spotify:track:6CbPF34njo6PpWYTFQrMZN",
-                        // "url": "context://spotify:track:6CbPF34njo6PpWYTFQrMZN",
-                        uri: `spotify:album:${this.album_uri_id}`,
-                        url: `context://spotify:album:${this.album_uri_id}`,
-                        "metadata": {}
-                    },
-                    "play_origin": {
-                        "feature_identifier": "album",
-                        // "feature_identifier": "track",
-                        "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b",
-                        "referrer_identifier": "your_library"
-                    },
-                    "options": {
-                        "license": "on-demand",
-                        "skip_to": {
-                            track_index: this.track_album_index,
-                            track_uid: this.uid,
-                            track_uri: this.track_uri
-                        },
-                        "player_options_override": {}
-                    },
-                    "logging_params": {
-                        "page_instance_ids": [
-                            "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e"
-                        ],
-                        "interaction_ids": [
-                            "d3697919-e8be-425d-98bc-1ea70e28963a"
-                        ],
-                        "command_id": "46b1903536f6eda76783840368982c5e"
-                    },
-                    "endpoint": "play"
-                }
-            }), 
-            // JSON.stringify({
-            //     command: {
-            //         endpoint: "play",
-            //         context: {
-            //             metadata: {},
-            //             uri: "spotify:track:7aohwSiTDju51QmC54AUba",
-            //             url: "context://spotify:track:7aohwSiTDju51QmC54AUba"
-            //         },
-            //         "logging_params": { "page_instance_ids": ["5616d9d6-c44f-4cda-a7c2-167890dd2beb"], "interaction_ids": ["72ab0dbb-7a83-4644-8bad-550d65ff8e77"], "command_id": "0f85a8b2347ff239207f32344d7da9d6" },
-            //         "options": {
-            //             "license": "on-demand", "skip_to": {}, "player_options_override": {}
-            //         },
-            //         "play_origin": { "feature_identifier": "track", "feature_version": "web-player_2024-05-23_1716493666036_b53deef", "referrer_identifier": "your_library" },
-            //     }
-            //     // command_id: "1ec91233c1cd60f69f5de11f513b2887",
-            //     // transfer_options: {
-            //     //     restore_paused: "pause"
-            //     // }
-            // }),
-            { Authorization: `Bearer ${local_state.bearer_token}` }, false);
-            log(transfer_response);
-            this.transfered = true;
+            });
         }
     }
 }
diff --git a/build/SpotifyScript.js.map b/build/SpotifyScript.js.map
index 3e2eac8..06feae3 100644
--- a/build/SpotifyScript.js.map
+++ b/build/SpotifyScript.js.map
@@ -1 +1 @@
-{"version":3,"file":"SpotifyScript.js","sourceRoot":"http://localhost:8080/","sources":["SpotifyScript.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"SpotifyScript.js","sourceRoot":"http://localhost:8080/","sources":["SpotifyScript.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/SpotifyScript.ts b/build/SpotifyScript.ts
index b910559..389aa8d 100644
--- a/build/SpotifyScript.ts
+++ b/build/SpotifyScript.ts
@@ -74,6 +74,7 @@ const PLATFORM = "Spotify" as const
 
 const HARDCODED_ZERO = 0 as const
 const HARDCODED_EMPTY_STRING = "" as const
+const EMPTY_AUTHOR = new PlatformAuthorLink(new PlatformID(PLATFORM, "", plugin.config.id), "", "")
 
 const local_http = http
 // const local_utility = utility
@@ -380,7 +381,7 @@ function getHome() {
             }
         })
     }
-    const playlists = format_page(sections, 4)
+    const playlists = format_page(sections, 4, "Home")
     return new ContentPager(playlists, false)
 }
 function whats_new_args(offset: number, limit: number): { readonly url: string, readonly headers: { Authorization: string } } {
@@ -512,12 +513,12 @@ function format_song_and_episode_results(search_response: SearchResponse) {
             return new PlatformVideo({
                 id: new PlatformID(PLATFORM, id_from_uri(episode.data.uri), plugin.config.id),
                 name: episode.data.name,
-                author: new PlatformAuthorLink(
+                author: episode.data.podcastV2.data.__typename === "Podcast" ? new PlatformAuthorLink(
                     new PlatformID(PLATFORM, id_from_uri(episode.data.podcastV2.data.uri), plugin.config.id),
                     episode.data.podcastV2.data.name,
                     `${ARTIST_URL_PREFIX}${id_from_uri(episode.data.podcastV2.data.uri)}`,
                     episode.data.podcastV2.data.coverArt?.sources[0]?.url
-                ),
+                ) : EMPTY_AUTHOR,
                 url: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`,
                 thumbnails: new Thumbnails(episode.data.coverArt.sources.map(function (image) {
                     return new Thumbnail(image.url, image.height)
@@ -526,7 +527,7 @@ function format_song_and_episode_results(search_response: SearchResponse) {
                 viewCount: HARDCODED_ZERO,
                 isLive: false,
                 shareUrl: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`,
-                datetime: new Date(episode.data.releaseDate.isoString).getTime() / 1000
+                datetime: episode.data.releaseDate === null ? HARDCODED_ZERO : new Date(episode.data.releaseDate.isoString).getTime() / 1000
             })
         })
     ]
@@ -616,7 +617,11 @@ function getContentDetails(url: string) {
 
             const format = local_state.is_premium ? "MP4_256" : "MP4_128"
 
-            const maybe_file_id = song_metadata_response.file.find(function (file) { return file.format === format })?.file_id
+            const files = song_metadata_response.file === undefined ? song_metadata_response.alternative?.[0]?.file : song_metadata_response.file
+            if(files === undefined){
+                throw new ScriptException("missing alternative file list")
+            }
+            const maybe_file_id = files.find(function (file) { return file.format === format })?.file_id
             if (maybe_file_id === undefined) {
                 throw new ScriptException("missing expected format")
             }
@@ -770,6 +775,7 @@ function getContentDetails(url: string) {
                     return []
                 }
                 const transcript_response: TranscriptResponse = JSON.parse(results[2].body)
+
                 const subtitle_name = function () {
                     switch (transcript_response.language) {
                         case "en":
@@ -791,7 +797,7 @@ function getContentDetails(url: string) {
                         end = episode_metadata_response.data.episodeUnionV2.duration.totalMilliseconds
                     }
                     vtt_text += `${milliseconds_to_WebVTT_timestamp(section.startMs)} --> ${milliseconds_to_WebVTT_timestamp(end)}\n`
-                    vtt_text += `${section.text.sentence.text}\n`
+                    vtt_text += `${"text" in section ? section.text.sentence.text : section.fallback.sentence.text}\n`
                     vtt_text += "\n"
                 })
                 return [{
@@ -1253,6 +1259,9 @@ class LikedEpisodesPager extends VideoPager {
 }
 function format_collection_episodes(response: LikedEpisodesResponse) {
     return response.data.me.library.episodes.items.map(function (episode) {
+        if (episode.episode.data.podcastV2.data.__typename === "NotFound" || episode.episode.data.releaseDate === null) {
+            throw new ScriptException("unreachable")
+        }
         return new PlatformVideo({
             id: new PlatformID(PLATFORM, id_from_uri(episode.episode._uri), plugin.config.id),
             name: episode.episode.data.name,
@@ -2127,7 +2136,7 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o
             if (browse_page_response.data.browse.__typename === "GenericError") {
                 throw new ScriptException("error loading genre page")
             }
-            const playlists = format_page(browse_page_response.data.browse.sections.items, limit)
+            const playlists = format_page(browse_page_response.data.browse.sections.items, limit, browse_page_response.data.browse.header.title.transformedLabel)
 
             return new ContentPager(playlists, false)
         }
@@ -2183,7 +2192,7 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o
  * @param display_limit maximum number of items to display per section
  * @returns 
  */
-function format_page(sections: Section[], display_limit: number): (PlatformPlaylist | PlatformVideo)[] {
+function format_page(sections: Section[], display_limit: number, page_title: string): (PlatformPlaylist | PlatformVideo)[] {
     const filtered_sections = sections.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection | RecentlyPlayedSection)[] {
         if (is_playlist_section(item)) {
             return [item]
@@ -2192,7 +2201,7 @@ function format_page(sections: Section[], display_limit: number): (PlatformPlayl
     })
     const content = filtered_sections.flatMap(function (section) {
         const section_title = section.data.title
-        const section_name = "text" in section_title ? section_title.text : section_title.transformedLabel
+        const section_name = section_title === null ? page_title : "text" in section_title ? section_title.text : section_title.transformedLabel
 
         const section_items = section.sectionItems.items.flatMap(function (section_item) {
             if (section_item.content.__typename === "UnknownType") {
@@ -2396,6 +2405,9 @@ function format_section_item(section: SectionItemAlbum | SectionItemPlaylist | S
             return new PlatformPlaylist(platform_playlist)
         }
         case "Episode": {
+            if (section.podcastV2.data.__typename === "NotFound" || section.releaseDate === null) {
+                throw new ScriptException("unreachable")
+            }
             return new PlatformVideo({
                 id: new PlatformID(PLATFORM, section.id, plugin.config.id),
                 name: section.name,
@@ -2877,172 +2889,424 @@ function getUserSubscriptions(): string[] {
     }
     return following
 }
-const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues
-const gt = (e: number) => ht ? function (e) {
-    return crypto.getRandomValues(new Uint8Array(e))
-}(e) : function (e) {
-    const t = []
-    for (; t.length < e;)
-        t.push(Math.floor(256 * Math.random()))
-    return t
-}(e)
-const ft = (e: number) => {
-    const t = Math.ceil(e / 2)
-    return function (e) {
-        let t = ""
-        for (let n = 0; n < e.length; n++) {
-            const i = e[n]
-            if (i === undefined) {
-                throw new ScriptException("issue generating device id")
-            }
-            i < 16 && (t += "0"),
-                t += i.toString(16)
-        }
-        return t
-    }(gt(t))
-}
-const vt = () => ft(40)
+
 function getPlaybackTracker(url: string): PlaybackTracker {
-    const { content_uri_id } = parse_content_url(url)
+    const { content_uri_id, content_type } = parse_content_url(url)
     check_and_update_token()
-    return new SpotifyPlaybackTracker(content_uri_id)
+    return new SpotifyPlaybackTracker(content_uri_id, content_type)
 }
 class SpotifyPlaybackTracker extends PlaybackTracker {
-    private state_machine_id = ""
-    private playback_id = ""
+    private recording_play = false
     private play_recorded = false
-    private socket_closed = false
-    private another_one = false
-    private in_between = false
-    private transfered = false
-    // private device_active = false
-    // private transfered = false
-    // private start_triggered = false
-    private connection_id = ""
-    private socket: SocketResult
-    private init_seconds = 0
-    private readonly device_id = vt()
-    // private readonly uid = "ccf999d7241e13521c2e"
-    // private readonly track_uri = "spotify:track:4pbG9SUmWIvsROVLF0zF9s"
-    // private readonly album_uri_id = "7vEJAtP3KgKSpOHVgwm3Eh"
-    // private readonly track_album_index = 3
-    // private readonly duration = 145746
-    private readonly uid = "1347b3deaefee32b7d2b"
-    private readonly track_uri = "spotify:track:2tQG2nFEHhWsH05kFKlC4A"
-    private readonly album_uri_id = "0BaIaHcyBXuOWeM4Aas4EW"
-    private readonly track_album_index = 2
-    private readonly duration = 109750
-    // private readonly uid = "296cf850453478739645"
-    // private readonly track_uri = "spotify:track:77uEkHMJ6EnOZjd1Hh9Tty"
-    // private readonly album_uri_id = "6wOJyevNYXevqTZCn6Xk5T"
-    // private readonly track_album_index = 4
-    // private readonly duration = 171989
-    // private readonly uid = "8167260601e9aab35d02"
-    // private readonly track_uri = "spotify:track:4Op5aSB6JSVzp7Jhi5hQKp"
-    // private readonly album_uri_id = "7skmDXP36SNveM5XKFoLuK"
-    // private readonly track_album_index = 5
-    // private readonly duration = 111266
-    private seq_num = 3
-    constructor(private readonly uri_id: string) {
-        const interval_seconds = 4
+    private total_seconds_played = 0
+    private readonly device_id: string
+    private readonly context_url: string
+    private readonly context_uri: string
+    private readonly skip_to_data: {
+        readonly content_type: Exclude<ContentType, "track">
+        readonly track_uri: string
+    } | {
+        readonly content_type: Exclude<ContentType, "episode">
+        readonly track_uri: string
+        readonly uid: string
+        readonly track_album_index: number
+    }
+    private readonly duration: number
+    private readonly interval_seconds: number
+    constructor(uri_id: string, content_type: ContentType) {
+        const interval_seconds = 2
         super(interval_seconds * 1000)
+        this.interval_seconds = interval_seconds
+
+        // generate device id
+        const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues
+        const gt = (e: number) => ht ? function (e) {
+            return crypto.getRandomValues(new Uint8Array(e))
+        }(e) : function (e) {
+            const t = []
+            for (; t.length < e;)
+                t.push(Math.floor(256 * Math.random()))
+            return t
+        }(e)
+        const ft = (e: number) => {
+            const t = Math.ceil(e / 2)
+            return function (e) {
+                let t = ""
+                for (let n = 0; n < e.length; n++) {
+                    const i = e[n]
+                    if (i === undefined) {
+                        throw new ScriptException("issue generating device id")
+                    }
+                    i < 16 && (t += "0"),
+                        t += i.toString(16)
+                }
+                return t
+            }(gt(t))
+        }
+        const vt = () => ft(40)
+        this.device_id = vt()
+
+        // load track info
+        switch (content_type) {
+            case "episode": {
+                const { url, headers } = episode_metadata_args(uri_id)
+                const response: EpisodeMetadataResponse = JSON.parse(local_http.GET(url, headers, false).body)
+                switch (response.data.episodeUnionV2.__typename) {
+                    case "Chapter":
+                        this.context_uri = response.data.episodeUnionV2.audiobookV2.data.uri
+                        break
+                    case "Episode":
+                        this.context_uri = response.data.episodeUnionV2.podcastV2.data.uri
+                        break
+                    default:
+                        throw assert_exhaustive(response.data.episodeUnionV2, "unreachable")
+                }
+                this.context_url = `context://${this.context_uri}`
+                this.skip_to_data = {
+                    content_type: "episode",
+                    track_uri: response.data.episodeUnionV2.uri
+                }
+                this.duration = response.data.episodeUnionV2.duration.totalMilliseconds
+                break
+            }
+            case "track":
+                const { url, headers } = track_metadata_args(uri_id)
+                const response: TrackMetadataResponse = JSON.parse(local_http.GET(url, headers, false).body)
+                const track_album_index = response.data.trackUnion.trackNumber - 1
+                const { url: tracks_url, headers: tracks_headers } = album_tracks_args(id_from_uri(response.data.trackUnion.albumOfTrack.uri), track_album_index, 1)
+                const tracks_response: AlbumTracksResponse = JSON.parse(local_http.GET(tracks_url, tracks_headers, false).body)
+                this.context_uri = response.data.trackUnion.albumOfTrack.uri
+                this.context_url = `context://${this.context_uri}`
+                this.duration = response.data.trackUnion.duration.totalMilliseconds
+                const uid = tracks_response.data.albumUnion.tracks.items[0]?.uid
+                if (uid === undefined) {
+                    throw new ScriptException("can't find song uid")
+                }
+                this.skip_to_data = {
+                    content_type: "track",
+                    uid,
+                    track_uri: response.data.trackUnion.uri,
+                    track_album_index
+                }
+                break
+            default:
+                throw assert_exhaustive(content_type, "unreachable")
+        }
+    }
+    override onInit(_seconds: number): void {
 
-        // this.device_id = "b27bde830fd81dbff77339f7ed344db1a40"
+    }
+    override onProgress(_seconds: number, is_playing: boolean): void {
+        if (is_playing) {
+            // this ends up lagging behind. 
+            this.total_seconds_played += this.interval_seconds
+        }
 
-        log("connecting to websocket")
-        const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`
-        this.socket = http.socket(url, {}, false)
-        this.socket.connect({
-            open: () => {
-                log("open")
-                // this.socket.send(JSON.stringify({
-                //     type: "ping"
-                // }))
+        if (is_playing && !this.recording_play && this.total_seconds_played > 30) {
+            this.recording_play = true
 
-            },
-            closed: (code, reason) => {
-                console.log(code.toString())
-                console.log(reason)
-            },
-            closing: (code, reason) => {
-                console.log(code.toString())
-                console.log(reason)
-            },
-            message: (msg) => {
-                log("a message")
-                const connection: {
-                    readonly headers: {
-                        readonly "Spotify-Connection-Id": string
-                    }
-                    readonly method: "PUT"
-                    readonly type: "message"
-                } | {
-                    readonly type: "message"
-                    readonly uri: string
-                    readonly payloads: {
-                        readonly state_machine: {
-                            readonly state_machine_id: string
-                            readonly states: {
-                                readonly state_id: string
-                                readonly track_uid: string
-                            }[]
-                        }
-                    }[]
-                } = JSON.parse(msg)
-                if (!("method" in connection)) {
+            log("creating WebSocket connection")
 
+            // setup WebSocket connection
+            const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`
+            const socket = http.socket(url, {}, false)
+            socket.connect({
+                open: () => {
 
-                    if (connection.uri === "hm://track-playback/v1/command") {
-                        if (connection.payloads[0]?.state_machine.states.length === 0) {
-                            log("ignored WS message just informing us of the active device")
-                            log(msg)
-                            return
+                },
+                closed: (code, reason) => {
+                    console.log(code.toString())
+                    console.log(reason)
+                },
+                closing: (code, reason) => {
+                    console.log(code.toString())
+                    console.log(reason)
+                },
+                message: (msg) => {
+                    // ignore queued messages
+                    if (this.play_recorded) {
+                        log("ignoring queued message")
+                        return
+                    }
+                    const message: {
+                        readonly headers: {
+                            readonly "Spotify-Connection-Id": string
                         }
-                        if (this.playback_id !== "" && this.state_machine_id !== "") {
-                            log("ignored WS message ids already found")
+                        readonly method: "PUT"
+                        readonly type: "message"
+                    } | {
+                        readonly type: "message"
+                        readonly uri: string
+                        readonly payloads: {
+                            readonly state_machine: {
+                                readonly state_machine_id: string
+                                readonly states: {
+                                    readonly state_id: string
+                                    readonly track_uid: string
+                                    readonly track: number
+                                }[]
+                                readonly tracks: {
+                                    readonly metadata: {
+                                        readonly uri: string
+                                    }
+                                }[]
+                            }
+                        }[]
+                    } = JSON.parse(msg)
+
+                    // this is the initial connection message
+                    if ("method" in message) {
+                        const connection_id = message.headers["Spotify-Connection-Id"]
+
+                        const track_playback_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices"
+                        local_http.POST(
+                            track_playback_url,
+                            JSON.stringify(
+                                {
+                                    device: {
+                                        brand: "spotify",
+                                        capabilities: {
+                                            change_volume: true,
+                                            enable_play_token: true,
+                                            supports_file_media_type: true,
+                                            play_token_lost_behavior: "pause",
+                                            disable_connect: false,
+                                            audio_podcasts: true,
+                                            video_playback: true,
+                                            manifest_formats: ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"]
+                                        },
+                                        device_id: this.device_id,
+                                        device_type: "computer",
+                                        metadata: {},
+                                        model: "web_player",
+                                        name: "Web Player (Grayjay)",
+                                        platform_identifier: "web_player linux undefined;chrome 125.0.0.0;desktop",
+                                        is_group: false
+                                    },
+                                    outro_endcontent_snooping: false,
+                                    connection_id: connection_id,
+                                    client_version: "harmony:4.42.0-2780565f",
+                                    volume: 65535
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false
+                        )
+
+                        const connect_state_url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`
+                        local_http.requestWithBody(
+                            "PUT",
+                            connect_state_url,
+                            JSON.stringify({
+                                "member_type": "CONNECT_STATE",
+                                "device":
+                                {
+                                    "device_info":
+                                    {
+                                        "capabilities": {
+                                            "can_be_player": false,
+                                            "hidden": true,
+                                            "needs_full_player_state": true
+                                        }
+                                    }
+                                }
+                            }),
+                            {
+                                Authorization: `Bearer ${local_state.bearer_token}`,
+                                "X-Spotify-Connection-Id": connection_id
+                            },
+                            false)
+                        const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}`
+                        local_http.POST(
+                            transfer_url,
+                            JSON.stringify({
+                                "command": {
+                                    "context": {
+                                        uri: this.context_uri,
+                                        url: this.context_url,
+                                        "metadata": {}
+                                    },
+                                    "play_origin": {
+                                        "feature_identifier": "album",
+                                        //feature_identifier: "show",
+                                        //feature_identifier: "audiobook",
+                                        "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b",
+                                        "referrer_identifier": "your_library"
+                                    },
+                                    "options": {
+                                        "license": "on-demand",
+                                        "skip_to": this.skip_to_data.content_type === "track" ? {
+                                            track_index: this.skip_to_data.track_album_index,
+                                            track_uid: this.skip_to_data.uid,
+                                            track_uri: this.skip_to_data.track_uri
+                                        } : {
+                                            track_uri: this.skip_to_data.track_uri
+                                        },
+                                        "player_options_override": {}
+                                    },
+                                    "logging_params": {
+                                        "page_instance_ids": [
+                                            "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e"
+                                        ],
+                                        "interaction_ids": [
+                                            "d3697919-e8be-425d-98bc-1ea70e28963a"
+                                        ],
+                                        "command_id": "46b1903536f6eda76783840368982c5e"
+                                    },
+                                    "endpoint": "play"
+                                }
+                            }),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false
+                        )
+                        return
+                    }
+
+                    if (message.uri === "hm://track-playback/v1/command") {
+                        if (message.payloads[0]?.state_machine.states.length === 0) {
+                            log("ignored WS message that was informing of the active device")
                             log(msg)
                             return
                         }
-                        // if (this.state_machine_id === "") {
-                        log("reading state details")
-                        const playback_id = connection.payloads[0]?.state_machine.states.find((state) => {
-                            return state.track_uid === this.uid
-                        })?.state_id
-                        // const playback_id = connection.payloads[0]?.state_machine.states[0]?.state_id
-                        if (playback_id === undefined || playback_id === "") {
+
+                        const state_machine = message.payloads[0]?.state_machine
+                        const playback_id = (() => {
+                            const data = this.skip_to_data
+                            switch (data.content_type) {
+                                case "episode": {
+                                    return state_machine?.states.find((state) => {
+                                        return state_machine.tracks[state.track]?.metadata.uri === data.track_uri
+                                    })?.state_id
+                                }
+                                case "track": {
+                                    return message.payloads[0]?.state_machine.states.find((state) => {
+                                        return state.track_uid === data.uid
+                                    })?.state_id
+                                }
+                                default:
+                                    throw assert_exhaustive(data)
+                            }
+                        })()
+
+                        if (playback_id === undefined) {
                             log("error missing playback_id")
                             log(msg)
                             return
-                            // throw new ScriptException("missing playback_id")
                         }
 
-
-
-                        const state_machine_id = connection.payloads[0]?.state_machine.state_machine_id
-                        if (state_machine_id === undefined || state_machine_id === "") {
+                        let state_machine_id = state_machine?.state_machine_id
+                        if (state_machine_id === undefined) {
                             log("error missing state_machine_id")
                             log(msg)
                             return
-                            // throw new ScriptException("missing state_machine_id")
                         }
-                        this.playback_id = playback_id
-                        this.state_machine_id = state_machine_id
-                        log(msg)
-                        // }
-
-
-
 
-                        // payloads statemachine states state_id
-
-                        // this.playback_id = "11"
+                        let seq_num = 3
+                        const initial_state_machine_id = state_machine_id
+                        const state_update_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
+
+                        // simulate song play
+                        const before_track_load: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
+                            "PUT",
+                            state_update_url,
+                            JSON.stringify(
+                                {
+                                    seq_num: seq_num,
+                                    state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                                    sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                    debug_source: "before_track_load"
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false).body)
+                        state_machine_id = before_track_load.state_machine.state_machine_id
+                        seq_num += 1
+
+                        local_http.requestWithBody(
+                            "PUT",
+                            state_update_url,
+                            JSON.stringify(
+                                {
+                                    seq_num: seq_num,
+                                    state_ref: { state_machine_id: initial_state_machine_id, state_id: playback_id, paused: false },
+                                    sub_state: { playback_speed: 0, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                    debug_source: "speed_changed"
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false)
+                        seq_num += 1
+
+                        const speed_change: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
+                            "PUT",
+                            state_update_url,
+                            JSON.stringify(
+                                {
+                                    seq_num: seq_num,
+                                    state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                                    sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                    previous_position: 0,
+                                    debug_source: "speed_changed"
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false).body)
+                        state_machine_id = speed_change.state_machine.state_machine_id
+                        seq_num += 1
+
+                        const started_playing: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
+                            "PUT",
+                            state_update_url,
+                            JSON.stringify(
+                                {
+                                    seq_num: seq_num,
+                                    state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                                    sub_state: { playback_speed: 1, position: 1360, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                    previous_position: 1360,
+                                    debug_source: "started_playing"
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false).body)
+                        state_machine_id = started_playing.state_machine.state_machine_id
+                        seq_num += 1
+
+                        const played_threshold_reached: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
+                            "PUT",
+                            state_update_url,
+                            JSON.stringify(
+                                {
+                                    seq_num: seq_num,
+                                    state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                                    sub_state: { playback_speed: 1, position: 30786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                    previous_position: 30786,
+                                    debug_source: "played_threshold_reached"
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false).body)
+                        state_machine_id = played_threshold_reached.state_machine.state_machine_id
+                        seq_num += 1
 
 
-                        // this.state_machine_id = "69"
+                        // delete the device
+                        const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`
+                        local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false)
 
-                        // if (!this.start_triggered && this.transfered) {
+                        const deregister = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}`
+                        local_http.requestWithBody("DELETE", deregister, JSON.stringify(
+                            {
+                                seq_num: seq_num,
+                                state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                                sub_state: { playback_speed: 1, position: 40786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                previous_position: 40786,
+                                debug_source: "deregister"
+                            }
+                        ), { Authorization: `Bearer ${local_state.bearer_token}` }, false)
 
-                        // }
+                        socket.close()
+                        this.play_recorded = true
+                        log("closing WebSocket connection")
 
                         return
                     }
@@ -3051,448 +3315,13 @@ class SpotifyPlaybackTracker extends PlaybackTracker {
                     log(msg)
 
                     return
+                },
+                failure: (exception) => {
+                    log("failure")
+                    console.log(exception)
                 }
-                this.connection_id = connection.headers["Spotify-Connection-Id"]
-                // register device
-
-                log("registering device")
-                const register_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices"
-                const response = local_http.POST(
-                    register_url,
-                    // JSON.stringify({
-                    //     connection_id: connection.headers["Spotify-Connection-Id"],
-                    //     device: {
-                    //         device_id: this.device_id,
-                    //         model: "web_player",
-                    //         name: "Web Player (Grayjay)",
-                    //         // capabilities: {
-                    //         //     change_volume: false,
-                    //         //     audio_podcasts: true,
-                    //         //     manifest_formats: [
-                    //         //         "file_ids_mp3",
-                    //         //         "file_urls_mp3"
-                    //         //     ]
-                    //         // },
-                    //         "capabilities":{"change_volume":true,"enable_play_token":true,"supports_file_media_type":true,"play_token_lost_behavior":"pause","disable_connect":false,"audio_podcasts":true,"video_playback":true,"manifest_formats":["file_ids_mp3","file_urls_mp3","manifest_urls_audio_ad","manifest_ids_video","file_urls_external","file_ids_mp4","file_ids_mp4_dual","manifest_urls_audio_ad"]},
-                    //         client_version: "harmony:4.42.0-2780565f",
-                    //         // brand: "spotify",
-                    //         device_type: "computer"
-                    //     }
-                    // }),
-                    JSON.stringify(
-                        { "device": { "brand": "spotify", "capabilities": { "change_volume": true, "enable_play_token": true, "supports_file_media_type": true, "play_token_lost_behavior": "pause", "disable_connect": false, "audio_podcasts": true, "video_playback": true, "manifest_formats": ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"] }, "device_id": this.device_id, "device_type": "computer", "metadata": {}, "model": "web_player", "name": "Web Player (Chrome)", "platform_identifier": "web_player linux undefined;chrome 125.0.0.0;desktop", "is_group": false }, "outro_endcontent_snooping": false, "connection_id": this.connection_id, "client_version": "harmony:4.42.0-2780565f", "volume": 65535 }
-                    ),
-                    { Authorization: `Bearer ${local_state.bearer_token}` },
-                    false
-                )
-                log(response)
-
-                log("grabbing devices info")
-                const another_register_thing = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`
-
-                const response1 = local_http.requestWithBody(
-                    "PUT",
-                    another_register_thing,
-                    JSON.stringify({
-                        "member_type": "CONNECT_STATE",
-                        "device":
-                        {
-                            "device_info":
-                            {
-                                "capabilities": {
-                                    "can_be_player": false,
-                                    "hidden": true,
-                                    "needs_full_player_state": true
-                                }
-                            }
-                        }
-                    }),
-                    {
-                        Authorization: `Bearer ${local_state.bearer_token}`,
-                        "X-Spotify-Connection-Id": this.connection_id
-                    },
-                    false)
-
-                const device_info = JSON.parse(response1.body)
-                log(device_info)
-
-
-                // this.device_active = "active_device_id" in device_info
-
-
-                // this.transfered = true
-
-                // this.registered = true
-
-                // payloads cluster playerstate
-
-                // payloads statemachine staemachine_id
-
-
-                // if (1 + 2 > 3) {
-
-                // }
-                // log(response.body)
-                // gives the list of devices
-                //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_5ef1df4daf071872bfe5ae0714efafa29f2
-                //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_ce5888d21908a6372f02c2c0155f3d7d1c9
-                // actually registers a device
-                //https://gue1-spclient.spotify.com/track-playback/v1/devices
-
-            },
-            failure: (exception) => {
-                log("failure")
-                console.log(exception)
-            }
-        })
-    }
-    override onInit(seconds: number): void {
-        this.init_seconds = seconds
-    }
-    override onProgress(seconds: number, is_playing: boolean): void {
-
-        //{"seq_num":15,"state_ref":{"state_machine_id":"ChQ0Jnocbbg7kDx3WOjgNutMUyLLzA","state_id":"8425aeb0fef142d597d1b578c5f31061","paused":true},"sub_state":{"playback_speed":0,"position":33535,"duration":307927,"media_type":"AUDIO","bitrate":128000,"audio_quality":"HIGH","format":10},"previous_position":33535,"debug_source":"pause"}
-
-        if (this.socket_closed) {
-            return
-        }
-
-
-        if (seconds - this.init_seconds > 70 && is_playing) {
-
-            this.socket.close()
-            this.socket_closed = true
-            log("done closing")
-        }
-
-        if (this.another_one) {
-            return
-        }
-
-
-
-        if (seconds - this.init_seconds > 60 && is_playing) {
-
-            log("deleting device")
-            const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`
-            const response = local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false)
-            log(response)
-
-            const url2 = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}`
-            const response2 = local_http.requestWithBody("DELETE", url2, JSON.stringify(
-                {"seq_num":this.seq_num,"state_ref":{"state_machine_id":this.state_machine_id,"state_id":this.playback_id,"paused":false},"sub_state":{"playback_speed":1,"position":40786,"duration":this.duration,"media_type":"AUDIO","bitrate":128000,"audio_quality":"HIGH","format":10},"previous_position":40786,"debug_source":"deregister"}
-            ) ,{ Authorization: `Bearer ${local_state.bearer_token}` }, false)
-            log(response2)
-
-            /*
-            log("trigger finish")
-
-            const initial_state_machine_id = this.state_machine_id
-            const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response1: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                register_playback_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": this.duration - 158, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": this.duration - 158, "playback_stats": { "ms_total_est": this.duration, "ms_metadata_duration": 0, "ms_manifest_latency": 196, "ms_latency": 1188, "start_offset_ms": 14, "ms_initial_buffering": 451, "ms_initial_rebuffer": 451, "ms_seek_rebuffering": 0, "ms_stalled": 0, "max_ms_seek_rebuffering": 0, "max_ms_stalled": 0, "n_stalls": 0, "n_rendition_upgrade": 0, "n_rendition_downgrade": 0, "bps_bandwidth_max": 0, "bps_bandwidth_min": 0, "bps_bandwidth_avg": 0, "audiocodec": "mp4", "start_bitrate": 128000, "time_weighted_bitrate": 0, "key_system": "widevine", "ms_key_latency": 1796, "total_bytes": 3494928, "local_time_ms": Date.now(), "n_dropped_video_frames": 0, "n_total_video_frames": 0, "resolution_max": 0, "resolution_min": 0, "strategy": "MSE" }, "debug_source": "track_data_finalized" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response1)
-            this.seq_num += 1
-            this.state_machine_id = response1.state_machine.state_machine_id
-
-
-
-
-            log("triggering before play")
-            const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response2: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response2)
-            this.state_machine_id = response2.state_machine.state_machine_id
-            this.seq_num += 1
-
-            // let res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-
-
-            log("speed change 1")
-            // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response3: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response3)
-            this.seq_num += 1
-
-            */
-
-
-
-            this.another_one = true
-
-
-        }
-
-        if (this.in_between) {
-            return
-        }
-
-        if (seconds - this.init_seconds > 50 && is_playing) {
-            if (!this.socket.isOpen) {
-                log("socket not open!")
-            } else {
-                log(`recording play of ${this.uri_id}`)
-
-                // this.socket.close()
-            }
-            const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                register_playback_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 30786, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 30786, "debug_source": "played_threshold_reached" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response)
-            this.seq_num += 1
-            this.state_machine_id = response.state_machine.state_machine_id
-
-
-
-            this.in_between = true
-
-
-        }
-
-        if (this.play_recorded) {
-            return
-        }
-        if (seconds - this.init_seconds > 15 && is_playing) {
-            this.play_recorded = true
-
-
-
-            // log(this.connection_id)
-
-
-            // command id is random
-            //t = e=>{
-            // const t = Math.ceil(e / 2);
-            // return function(e) {
-            //     let t = "";
-            //     for (let n = 0; n < e.length; n++) {
-            //         const i = e[n];
-            //         i < 16 && (t += "0"),
-            //         t += i.toString(16)
-            //     }
-            //     return t
-            // }(gt(t))
-            //     const un = /^[0-9a-f]{32}$/i
-            //     , pn = ()=>ft(32)
-            //     , mn = e=>{
-            //       if (e && (t = e,
-            //       !un.test(t)))
-            //           throw new TypeError(`Invalid commandId. Expected a 32 character hex string but got: ${e}`);
-            //       var t;
-            //       return e || pn()
-            //   }
-
-            const initial_state_machine_id = this.state_machine_id
-
-            log("triggering before play")
-            const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response1: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response1)
-            this.state_machine_id = response1.state_machine.state_machine_id
-            this.seq_num += 1
-
-            // let res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-
-
-            log("speed change 1")
-            // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response3: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response3)
-            this.seq_num += 1
-            // this.state_machine_id = response3.state_machine.state_machine_id
-
-            // res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-
-            log("speedchange 2")
-            // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response4: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 0, "debug_source": "speed_changed" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response4)
-            this.state_machine_id = response4.state_machine.state_machine_id
-            this.seq_num += 1
-
-            // res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-
-
-            log("triggering play start")
-            const started_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                started_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 1360, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 1360, "debug_source": "started_playing" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response)
-            this.state_machine_id = response.state_machine.state_machine_id
-            this.seq_num += 1
-            // this.start_triggered = true
-
-
-        }
+            })
 
-        if (this.transfered) {
-            return
-        }
-        if (seconds - this.init_seconds > 5 && is_playing) {
-            log("transfering to device")
-            const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}`
-            const transfer_response = local_http.POST(
-                transfer_url,
-                // this.device_active ? JSON.stringify(
-                //     { "transfer_options": { "restore_paused": "restore" }, "interaction_id": "cf075506-9bc9-4af6-a164-93778f310345", "command_id": "3bcf58bc37afa628c3d441df53efc469" }
-                // ) : 
-                JSON.stringify({
-                    "command": {
-                        "context": {
-                            // "uri": "spotify:track:6CbPF34njo6PpWYTFQrMZN",
-                            // "url": "context://spotify:track:6CbPF34njo6PpWYTFQrMZN",
-                            uri: `spotify:album:${this.album_uri_id}`,
-                            url: `context://spotify:album:${this.album_uri_id}`,
-                            "metadata": {}
-                        },
-                        "play_origin": {
-                            "feature_identifier": "album",
-                            // "feature_identifier": "track",
-                            "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b",
-                            "referrer_identifier": "your_library"
-                        },
-                        "options": {
-                            "license": "on-demand",
-                            "skip_to": {
-                                track_index: this.track_album_index,
-                                track_uid: this.uid,
-                                track_uri: this.track_uri
-                            },
-                            "player_options_override": {}
-                        },
-                        "logging_params": {
-                            "page_instance_ids": [
-                                "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e"
-                            ],
-                            "interaction_ids": [
-                                "d3697919-e8be-425d-98bc-1ea70e28963a"
-                            ],
-                            "command_id": "46b1903536f6eda76783840368982c5e"
-                        },
-                        "endpoint": "play"
-                    }
-                }),
-                // JSON.stringify({
-                //     command: {
-                //         endpoint: "play",
-                //         context: {
-                //             metadata: {},
-                //             uri: "spotify:track:7aohwSiTDju51QmC54AUba",
-                //             url: "context://spotify:track:7aohwSiTDju51QmC54AUba"
-                //         },
-                //         "logging_params": { "page_instance_ids": ["5616d9d6-c44f-4cda-a7c2-167890dd2beb"], "interaction_ids": ["72ab0dbb-7a83-4644-8bad-550d65ff8e77"], "command_id": "0f85a8b2347ff239207f32344d7da9d6" },
-                //         "options": {
-                //             "license": "on-demand", "skip_to": {}, "player_options_override": {}
-                //         },
-                //         "play_origin": { "feature_identifier": "track", "feature_version": "web-player_2024-05-23_1716493666036_b53deef", "referrer_identifier": "your_library" },
-                //     }
-                //     // command_id: "1ec91233c1cd60f69f5de11f513b2887",
-                //     // transfer_options: {
-                //     //     restore_paused: "pause"
-                //     // }
-                // }),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false
-            )
-            log(transfer_response)
-            this.transfered = true
         }
     }
 }
diff --git a/src/SpotifyScript.ts b/src/SpotifyScript.ts
index eeb0f82..c902a86 100644
--- a/src/SpotifyScript.ts
+++ b/src/SpotifyScript.ts
@@ -74,6 +74,7 @@ const PLATFORM = "Spotify" as const
 
 const HARDCODED_ZERO = 0 as const
 const HARDCODED_EMPTY_STRING = "" as const
+const EMPTY_AUTHOR = new PlatformAuthorLink(new PlatformID(PLATFORM, "", plugin.config.id), "", "")
 
 const local_http = http
 // const local_utility = utility
@@ -380,7 +381,7 @@ function getHome() {
             }
         })
     }
-    const playlists = format_page(sections, 4)
+    const playlists = format_page(sections, 4, "Home")
     return new ContentPager(playlists, false)
 }
 function whats_new_args(offset: number, limit: number): { readonly url: string, readonly headers: { Authorization: string } } {
@@ -512,12 +513,12 @@ function format_song_and_episode_results(search_response: SearchResponse) {
             return new PlatformVideo({
                 id: new PlatformID(PLATFORM, id_from_uri(episode.data.uri), plugin.config.id),
                 name: episode.data.name,
-                author: new PlatformAuthorLink(
+                author: episode.data.podcastV2.data.__typename === "Podcast" ? new PlatformAuthorLink(
                     new PlatformID(PLATFORM, id_from_uri(episode.data.podcastV2.data.uri), plugin.config.id),
                     episode.data.podcastV2.data.name,
                     `${ARTIST_URL_PREFIX}${id_from_uri(episode.data.podcastV2.data.uri)}`,
                     episode.data.podcastV2.data.coverArt?.sources[0]?.url
-                ),
+                ) : EMPTY_AUTHOR,
                 url: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`,
                 thumbnails: new Thumbnails(episode.data.coverArt.sources.map(function (image) {
                     return new Thumbnail(image.url, image.height)
@@ -526,7 +527,7 @@ function format_song_and_episode_results(search_response: SearchResponse) {
                 viewCount: HARDCODED_ZERO,
                 isLive: false,
                 shareUrl: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`,
-                datetime: new Date(episode.data.releaseDate.isoString).getTime() / 1000
+                datetime: episode.data.releaseDate === null ? HARDCODED_ZERO : new Date(episode.data.releaseDate.isoString).getTime() / 1000
             })
         })
     ]
@@ -616,7 +617,11 @@ function getContentDetails(url: string) {
 
             const format = local_state.is_premium ? "MP4_256" : "MP4_128"
 
-            const maybe_file_id = song_metadata_response.file.find(function (file) { return file.format === format })?.file_id
+            const files = song_metadata_response.file === undefined ? song_metadata_response.alternative?.[0]?.file : song_metadata_response.file
+            if(files === undefined){
+                throw new ScriptException("missing alternative file list")
+            }
+            const maybe_file_id = files.find(function (file) { return file.format === format })?.file_id
             if (maybe_file_id === undefined) {
                 throw new ScriptException("missing expected format")
             }
@@ -770,6 +775,7 @@ function getContentDetails(url: string) {
                     return []
                 }
                 const transcript_response: TranscriptResponse = JSON.parse(results[2].body)
+
                 const subtitle_name = function () {
                     switch (transcript_response.language) {
                         case "en":
@@ -791,7 +797,7 @@ function getContentDetails(url: string) {
                         end = episode_metadata_response.data.episodeUnionV2.duration.totalMilliseconds
                     }
                     vtt_text += `${milliseconds_to_WebVTT_timestamp(section.startMs)} --> ${milliseconds_to_WebVTT_timestamp(end)}\n`
-                    vtt_text += `${section.text.sentence.text}\n`
+                    vtt_text += `${"text" in section ? section.text.sentence.text : section.fallback.sentence.text}\n`
                     vtt_text += "\n"
                 })
                 return [{
@@ -1253,6 +1259,9 @@ class LikedEpisodesPager extends VideoPager {
 }
 function format_collection_episodes(response: LikedEpisodesResponse) {
     return response.data.me.library.episodes.items.map(function (episode) {
+        if (episode.episode.data.podcastV2.data.__typename === "NotFound" || episode.episode.data.releaseDate === null) {
+            throw new ScriptException("unreachable")
+        }
         return new PlatformVideo({
             id: new PlatformID(PLATFORM, id_from_uri(episode.episode._uri), plugin.config.id),
             name: episode.episode.data.name,
@@ -2127,7 +2136,7 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o
             if (browse_page_response.data.browse.__typename === "GenericError") {
                 throw new ScriptException("error loading genre page")
             }
-            const playlists = format_page(browse_page_response.data.browse.sections.items, limit)
+            const playlists = format_page(browse_page_response.data.browse.sections.items, limit, browse_page_response.data.browse.header.title.transformedLabel)
 
             return new ContentPager(playlists, false)
         }
@@ -2183,7 +2192,7 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o
  * @param display_limit maximum number of items to display per section
  * @returns 
  */
-function format_page(sections: Section[], display_limit: number): (PlatformPlaylist | PlatformVideo)[] {
+function format_page(sections: Section[], display_limit: number, page_title: string): (PlatformPlaylist | PlatformVideo)[] {
     const filtered_sections = sections.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection | RecentlyPlayedSection)[] {
         if (is_playlist_section(item)) {
             return [item]
@@ -2192,7 +2201,7 @@ function format_page(sections: Section[], display_limit: number): (PlatformPlayl
     })
     const content = filtered_sections.flatMap(function (section) {
         const section_title = section.data.title
-        const section_name = "text" in section_title ? section_title.text : section_title.transformedLabel
+        const section_name = section_title === null ? page_title : "text" in section_title ? section_title.text : section_title.transformedLabel
 
         const section_items = section.sectionItems.items.flatMap(function (section_item) {
             if (section_item.content.__typename === "UnknownType") {
@@ -2396,6 +2405,9 @@ function format_section_item(section: SectionItemAlbum | SectionItemPlaylist | S
             return new PlatformPlaylist(platform_playlist)
         }
         case "Episode": {
+            if (section.podcastV2.data.__typename === "NotFound" || section.releaseDate === null) {
+                throw new ScriptException("unreachable")
+            }
             return new PlatformVideo({
                 id: new PlatformID(PLATFORM, section.id, plugin.config.id),
                 name: section.name,
@@ -2877,172 +2889,424 @@ function getUserSubscriptions(): string[] {
     }
     return following
 }
-const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues
-const gt = (e: number) => ht ? function (e) {
-    return crypto.getRandomValues(new Uint8Array(e))
-}(e) : function (e) {
-    const t = []
-    for (; t.length < e;)
-        t.push(Math.floor(256 * Math.random()))
-    return t
-}(e)
-const ft = (e: number) => {
-    const t = Math.ceil(e / 2)
-    return function (e) {
-        let t = ""
-        for (let n = 0; n < e.length; n++) {
-            const i = e[n]
-            if (i === undefined) {
-                throw new ScriptException("issue generating device id")
-            }
-            i < 16 && (t += "0"),
-                t += i.toString(16)
-        }
-        return t
-    }(gt(t))
-}
-const vt = () => ft(40)
+
 function getPlaybackTracker(url: string): PlaybackTracker {
-    const { content_uri_id } = parse_content_url(url)
+    const { content_uri_id, content_type } = parse_content_url(url)
     check_and_update_token()
-    return new SpotifyPlaybackTracker(content_uri_id)
+    return new SpotifyPlaybackTracker(content_uri_id, content_type)
 }
 class SpotifyPlaybackTracker extends PlaybackTracker {
-    private state_machine_id = ""
-    private playback_id = ""
+    private recording_play = false
     private play_recorded = false
-    private socket_closed = false
-    private another_one = false
-    private in_between = false
-    private transfered = false
-    // private device_active = false
-    // private transfered = false
-    // private start_triggered = false
-    private connection_id = ""
-    private socket: SocketResult
-    private init_seconds = 0
-    private readonly device_id = vt()
-    // private readonly uid = "ccf999d7241e13521c2e"
-    // private readonly track_uri = "spotify:track:4pbG9SUmWIvsROVLF0zF9s"
-    // private readonly album_uri_id = "7vEJAtP3KgKSpOHVgwm3Eh"
-    // private readonly track_album_index = 3
-    // private readonly duration = 145746
-    private readonly uid = "1347b3deaefee32b7d2b"
-    private readonly track_uri = "spotify:track:2tQG2nFEHhWsH05kFKlC4A"
-    private readonly album_uri_id = "0BaIaHcyBXuOWeM4Aas4EW"
-    private readonly track_album_index = 2
-    private readonly duration = 109750
-    // private readonly uid = "296cf850453478739645"
-    // private readonly track_uri = "spotify:track:77uEkHMJ6EnOZjd1Hh9Tty"
-    // private readonly album_uri_id = "6wOJyevNYXevqTZCn6Xk5T"
-    // private readonly track_album_index = 4
-    // private readonly duration = 171989
-    // private readonly uid = "8167260601e9aab35d02"
-    // private readonly track_uri = "spotify:track:4Op5aSB6JSVzp7Jhi5hQKp"
-    // private readonly album_uri_id = "7skmDXP36SNveM5XKFoLuK"
-    // private readonly track_album_index = 5
-    // private readonly duration = 111266
-    private seq_num = 3
-    constructor(private readonly uri_id: string) {
-        const interval_seconds = 4
+    private total_seconds_played = 0
+    private readonly device_id: string
+    private readonly context_url: string
+    private readonly context_uri: string
+    private readonly skip_to_data: {
+        readonly content_type: Exclude<ContentType, "track">
+        readonly track_uri: string
+    } | {
+        readonly content_type: Exclude<ContentType, "episode">
+        readonly track_uri: string
+        readonly uid: string
+        readonly track_album_index: number
+    }
+    private readonly duration: number
+    private readonly interval_seconds: number
+    constructor(uri_id: string, content_type: ContentType) {
+        const interval_seconds = 2
         super(interval_seconds * 1000)
+        this.interval_seconds = interval_seconds
+
+        // generate device id
+        const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues
+        const gt = (e: number) => ht ? function (e) {
+            return crypto.getRandomValues(new Uint8Array(e))
+        }(e) : function (e) {
+            const t = []
+            for (; t.length < e;)
+                t.push(Math.floor(256 * Math.random()))
+            return t
+        }(e)
+        const ft = (e: number) => {
+            const t = Math.ceil(e / 2)
+            return function (e) {
+                let t = ""
+                for (let n = 0; n < e.length; n++) {
+                    const i = e[n]
+                    if (i === undefined) {
+                        throw new ScriptException("issue generating device id")
+                    }
+                    i < 16 && (t += "0"),
+                        t += i.toString(16)
+                }
+                return t
+            }(gt(t))
+        }
+        const vt = () => ft(40)
+        this.device_id = vt()
+
+        // load track info
+        switch (content_type) {
+            case "episode": {
+                const { url, headers } = episode_metadata_args(uri_id)
+                const response: EpisodeMetadataResponse = JSON.parse(local_http.GET(url, headers, false).body)
+                switch (response.data.episodeUnionV2.__typename) {
+                    case "Chapter":
+                        this.context_uri = response.data.episodeUnionV2.audiobookV2.data.uri
+                        break
+                    case "Episode":
+                        this.context_uri = response.data.episodeUnionV2.podcastV2.data.uri
+                        break
+                    default:
+                        throw assert_exhaustive(response.data.episodeUnionV2, "unreachable")
+                }
+                this.context_url = `context://${this.context_uri}`
+                this.skip_to_data = {
+                    content_type: "episode",
+                    track_uri: response.data.episodeUnionV2.uri
+                }
+                this.duration = response.data.episodeUnionV2.duration.totalMilliseconds
+                break
+            }
+            case "track":
+                const { url, headers } = track_metadata_args(uri_id)
+                const response: TrackMetadataResponse = JSON.parse(local_http.GET(url, headers, false).body)
+                const track_album_index = response.data.trackUnion.trackNumber - 1
+                const { url: tracks_url, headers: tracks_headers } = album_tracks_args(id_from_uri(response.data.trackUnion.albumOfTrack.uri), track_album_index, 1)
+                const tracks_response: AlbumTracksResponse = JSON.parse(local_http.GET(tracks_url, tracks_headers, false).body)
+                this.context_uri = response.data.trackUnion.albumOfTrack.uri
+                this.context_url = `context://${this.context_uri}`
+                this.duration = response.data.trackUnion.duration.totalMilliseconds
+                const uid = tracks_response.data.albumUnion.tracks.items[0]?.uid
+                if (uid === undefined) {
+                    throw new ScriptException("can't find song uid")
+                }
+                this.skip_to_data = {
+                    content_type: "track",
+                    uid,
+                    track_uri: response.data.trackUnion.uri,
+                    track_album_index
+                }
+                break
+            default:
+                throw assert_exhaustive(content_type, "unreachable")
+        }
+    }
+    override onInit(_seconds: number): void {
 
-        // this.device_id = "b27bde830fd81dbff77339f7ed344db1a40"
+    }
+    override onProgress(_seconds: number, is_playing: boolean): void {
+        if (is_playing) {
+            // this ends up lagging behind. 
+            this.total_seconds_played += this.interval_seconds
+        }
 
-        log("connecting to websocket")
-        const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`
-        this.socket = http.socket(url, {}, false)
-        this.socket.connect({
-            open: () => {
-                log("open")
-                // this.socket.send(JSON.stringify({
-                //     type: "ping"
-                // }))
+        if (is_playing && !this.recording_play && this.total_seconds_played > 30) {
+            this.recording_play = true
 
-            },
-            closed: (code, reason) => {
-                console.log(code.toString())
-                console.log(reason)
-            },
-            closing: (code, reason) => {
-                console.log(code.toString())
-                console.log(reason)
-            },
-            message: (msg) => {
-                log("a message")
-                const connection: {
-                    readonly headers: {
-                        readonly "Spotify-Connection-Id": string
-                    }
-                    readonly method: "PUT"
-                    readonly type: "message"
-                } | {
-                    readonly type: "message"
-                    readonly uri: string
-                    readonly payloads: {
-                        readonly state_machine: {
-                            readonly state_machine_id: string
-                            readonly states: {
-                                readonly state_id: string
-                                readonly track_uid: string
-                            }[]
-                        }
-                    }[]
-                } = JSON.parse(msg)
-                if (!("method" in connection)) {
+            log("creating WebSocket connection")
 
+            // setup WebSocket connection
+            const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`
+            const socket = http.socket(url, {}, false)
+            socket.connect({
+                open: () => {
 
-                    if (connection.uri === "hm://track-playback/v1/command") {
-                        if (connection.payloads[0]?.state_machine.states.length === 0) {
-                            log("ignored WS message just informing us of the active device")
-                            log(msg)
-                            return
+                },
+                closed: (code, reason) => {
+                    console.log(code.toString())
+                    console.log(reason)
+                },
+                closing: (code, reason) => {
+                    console.log(code.toString())
+                    console.log(reason)
+                },
+                message: (msg) => {
+                    // ignore queued messages
+                    if (this.play_recorded) {
+                        log("ignoring queued message")
+                        return
+                    }
+                    const message: {
+                        readonly headers: {
+                            readonly "Spotify-Connection-Id": string
                         }
-                        if (this.playback_id !== "" && this.state_machine_id !== "") {
-                            log("ignored WS message ids already found")
+                        readonly method: "PUT"
+                        readonly type: "message"
+                    } | {
+                        readonly type: "message"
+                        readonly uri: string
+                        readonly payloads: {
+                            readonly state_machine: {
+                                readonly state_machine_id: string
+                                readonly states: {
+                                    readonly state_id: string
+                                    readonly track_uid: string
+                                    readonly track: number
+                                }[]
+                                readonly tracks: {
+                                    readonly metadata: {
+                                        readonly uri: string
+                                    }
+                                }[]
+                            }
+                        }[]
+                    } = JSON.parse(msg)
+
+                    // this is the initial connection message
+                    if ("method" in message) {
+                        const connection_id = message.headers["Spotify-Connection-Id"]
+
+                        const track_playback_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices"
+                        local_http.POST(
+                            track_playback_url,
+                            JSON.stringify(
+                                {
+                                    device: {
+                                        brand: "spotify",
+                                        capabilities: {
+                                            change_volume: true,
+                                            enable_play_token: true,
+                                            supports_file_media_type: true,
+                                            play_token_lost_behavior: "pause",
+                                            disable_connect: false,
+                                            audio_podcasts: true,
+                                            video_playback: true,
+                                            manifest_formats: ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"]
+                                        },
+                                        device_id: this.device_id,
+                                        device_type: "computer",
+                                        metadata: {},
+                                        model: "web_player",
+                                        name: "Web Player (Grayjay)",
+                                        platform_identifier: "web_player linux undefined;chrome 125.0.0.0;desktop",
+                                        is_group: false
+                                    },
+                                    outro_endcontent_snooping: false,
+                                    connection_id: connection_id,
+                                    client_version: "harmony:4.42.0-2780565f",
+                                    volume: 65535
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false
+                        )
+
+                        const connect_state_url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`
+                        local_http.requestWithBody(
+                            "PUT",
+                            connect_state_url,
+                            JSON.stringify({
+                                "member_type": "CONNECT_STATE",
+                                "device":
+                                {
+                                    "device_info":
+                                    {
+                                        "capabilities": {
+                                            "can_be_player": false,
+                                            "hidden": true,
+                                            "needs_full_player_state": true
+                                        }
+                                    }
+                                }
+                            }),
+                            {
+                                Authorization: `Bearer ${local_state.bearer_token}`,
+                                "X-Spotify-Connection-Id": connection_id
+                            },
+                            false)
+                        const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}`
+                        local_http.POST(
+                            transfer_url,
+                            JSON.stringify({
+                                "command": {
+                                    "context": {
+                                        uri: this.context_uri,
+                                        url: this.context_url,
+                                        "metadata": {}
+                                    },
+                                    "play_origin": {
+                                        "feature_identifier": "album",
+                                        //feature_identifier: "show",
+                                        //feature_identifier: "audiobook",
+                                        "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b",
+                                        "referrer_identifier": "your_library"
+                                    },
+                                    "options": {
+                                        "license": "on-demand",
+                                        "skip_to": this.skip_to_data.content_type === "track" ? {
+                                            track_index: this.skip_to_data.track_album_index,
+                                            track_uid: this.skip_to_data.uid,
+                                            track_uri: this.skip_to_data.track_uri
+                                        } : {
+                                            track_uri: this.skip_to_data.track_uri
+                                        },
+                                        "player_options_override": {}
+                                    },
+                                    "logging_params": {
+                                        "page_instance_ids": [
+                                            "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e"
+                                        ],
+                                        "interaction_ids": [
+                                            "d3697919-e8be-425d-98bc-1ea70e28963a"
+                                        ],
+                                        "command_id": "46b1903536f6eda76783840368982c5e"
+                                    },
+                                    "endpoint": "play"
+                                }
+                            }),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false
+                        )
+                        return
+                    }
+
+                    if (message.uri === "hm://track-playback/v1/command") {
+                        if (message.payloads[0]?.state_machine.states.length === 0) {
+                            log("ignored WS message that was informing of the active device")
                             log(msg)
                             return
                         }
-                        // if (this.state_machine_id === "") {
-                        log("reading state details")
-                        const playback_id = connection.payloads[0]?.state_machine.states.find((state) => {
-                            return state.track_uid === this.uid
-                        })?.state_id
-                        // const playback_id = connection.payloads[0]?.state_machine.states[0]?.state_id
-                        if (playback_id === undefined || playback_id === "") {
+
+                        const state_machine = message.payloads[0]?.state_machine
+                        const playback_id = (() => {
+                            const data = this.skip_to_data
+                            switch (data.content_type) {
+                                case "episode": {
+                                    return state_machine?.states.find((state) => {
+                                        return state_machine.tracks[state.track]?.metadata.uri === data.track_uri
+                                    })?.state_id
+                                }
+                                case "track": {
+                                    return message.payloads[0]?.state_machine.states.find((state) => {
+                                        return state.track_uid === data.uid
+                                    })?.state_id
+                                }
+                                default:
+                                    throw assert_exhaustive(data)
+                            }
+                        })()
+
+                        if (playback_id === undefined) {
                             log("error missing playback_id")
                             log(msg)
                             return
-                            // throw new ScriptException("missing playback_id")
                         }
 
-
-
-                        const state_machine_id = connection.payloads[0]?.state_machine.state_machine_id
-                        if (state_machine_id === undefined || state_machine_id === "") {
+                        let state_machine_id = state_machine?.state_machine_id
+                        if (state_machine_id === undefined) {
                             log("error missing state_machine_id")
                             log(msg)
                             return
-                            // throw new ScriptException("missing state_machine_id")
                         }
-                        this.playback_id = playback_id
-                        this.state_machine_id = state_machine_id
-                        log(msg)
-                        // }
-
-
-
 
-                        // payloads statemachine states state_id
-
-                        // this.playback_id = "11"
+                        let seq_num = 3
+                        const initial_state_machine_id = state_machine_id
+                        const state_update_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
+
+                        // simulate song play
+                        const before_track_load: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
+                            "PUT",
+                            state_update_url,
+                            JSON.stringify(
+                                {
+                                    seq_num: seq_num,
+                                    state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                                    sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                    debug_source: "before_track_load"
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false).body)
+                        state_machine_id = before_track_load.state_machine.state_machine_id
+                        seq_num += 1
+
+                        local_http.requestWithBody(
+                            "PUT",
+                            state_update_url,
+                            JSON.stringify(
+                                {
+                                    seq_num: seq_num,
+                                    state_ref: { state_machine_id: initial_state_machine_id, state_id: playback_id, paused: false },
+                                    sub_state: { playback_speed: 0, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                    debug_source: "speed_changed"
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false)
+                        seq_num += 1
+
+                        const speed_change: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
+                            "PUT",
+                            state_update_url,
+                            JSON.stringify(
+                                {
+                                    seq_num: seq_num,
+                                    state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                                    sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                    previous_position: 0,
+                                    debug_source: "speed_changed"
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false).body)
+                        state_machine_id = speed_change.state_machine.state_machine_id
+                        seq_num += 1
+
+                        const started_playing: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
+                            "PUT",
+                            state_update_url,
+                            JSON.stringify(
+                                {
+                                    seq_num: seq_num,
+                                    state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                                    sub_state: { playback_speed: 1, position: 1360, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                    previous_position: 1360,
+                                    debug_source: "started_playing"
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false).body)
+                        state_machine_id = started_playing.state_machine.state_machine_id
+                        seq_num += 1
+
+                        const played_threshold_reached: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
+                            "PUT",
+                            state_update_url,
+                            JSON.stringify(
+                                {
+                                    seq_num: seq_num,
+                                    state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                                    sub_state: { playback_speed: 1, position: 30786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                    previous_position: 30786,
+                                    debug_source: "played_threshold_reached"
+                                }
+                            ),
+                            { Authorization: `Bearer ${local_state.bearer_token}` },
+                            false).body)
+                        state_machine_id = played_threshold_reached.state_machine.state_machine_id
+                        seq_num += 1
 
 
-                        // this.state_machine_id = "69"
+                        // delete the device
+                        const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`
+                        local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false)
 
-                        // if (!this.start_triggered && this.transfered) {
+                        const deregister = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}`
+                        local_http.requestWithBody("DELETE", deregister, JSON.stringify(
+                            {
+                                seq_num: seq_num,
+                                state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false },
+                                sub_state: { playback_speed: 1, position: 40786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 },
+                                previous_position: 40786,
+                                debug_source: "deregister"
+                            }
+                        ), { Authorization: `Bearer ${local_state.bearer_token}` }, false)
 
-                        // }
+                        socket.close()
+                        this.play_recorded = true
+                        log("closing WebSocket connection")
 
                         return
                     }
@@ -3051,448 +3315,13 @@ class SpotifyPlaybackTracker extends PlaybackTracker {
                     log(msg)
 
                     return
+                },
+                failure: (exception) => {
+                    log("failure")
+                    console.log(exception)
                 }
-                this.connection_id = connection.headers["Spotify-Connection-Id"]
-                // register device
-
-                log("registering device")
-                const register_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices"
-                const response = local_http.POST(
-                    register_url,
-                    // JSON.stringify({
-                    //     connection_id: connection.headers["Spotify-Connection-Id"],
-                    //     device: {
-                    //         device_id: this.device_id,
-                    //         model: "web_player",
-                    //         name: "Web Player (Grayjay)",
-                    //         // capabilities: {
-                    //         //     change_volume: false,
-                    //         //     audio_podcasts: true,
-                    //         //     manifest_formats: [
-                    //         //         "file_ids_mp3",
-                    //         //         "file_urls_mp3"
-                    //         //     ]
-                    //         // },
-                    //         "capabilities":{"change_volume":true,"enable_play_token":true,"supports_file_media_type":true,"play_token_lost_behavior":"pause","disable_connect":false,"audio_podcasts":true,"video_playback":true,"manifest_formats":["file_ids_mp3","file_urls_mp3","manifest_urls_audio_ad","manifest_ids_video","file_urls_external","file_ids_mp4","file_ids_mp4_dual","manifest_urls_audio_ad"]},
-                    //         client_version: "harmony:4.42.0-2780565f",
-                    //         // brand: "spotify",
-                    //         device_type: "computer"
-                    //     }
-                    // }),
-                    JSON.stringify(
-                        { "device": { "brand": "spotify", "capabilities": { "change_volume": true, "enable_play_token": true, "supports_file_media_type": true, "play_token_lost_behavior": "pause", "disable_connect": false, "audio_podcasts": true, "video_playback": true, "manifest_formats": ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"] }, "device_id": this.device_id, "device_type": "computer", "metadata": {}, "model": "web_player", "name": "Web Player (Chrome)", "platform_identifier": "web_player linux undefined;chrome 125.0.0.0;desktop", "is_group": false }, "outro_endcontent_snooping": false, "connection_id": this.connection_id, "client_version": "harmony:4.42.0-2780565f", "volume": 65535 }
-                    ),
-                    { Authorization: `Bearer ${local_state.bearer_token}` },
-                    false
-                )
-                log(response)
-
-                log("grabbing devices info")
-                const another_register_thing = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`
-
-                const response1 = local_http.requestWithBody(
-                    "PUT",
-                    another_register_thing,
-                    JSON.stringify({
-                        "member_type": "CONNECT_STATE",
-                        "device":
-                        {
-                            "device_info":
-                            {
-                                "capabilities": {
-                                    "can_be_player": false,
-                                    "hidden": true,
-                                    "needs_full_player_state": true
-                                }
-                            }
-                        }
-                    }),
-                    {
-                        Authorization: `Bearer ${local_state.bearer_token}`,
-                        "X-Spotify-Connection-Id": this.connection_id
-                    },
-                    false)
-
-                const device_info = JSON.parse(response1.body)
-                log(device_info)
-
-
-                // this.device_active = "active_device_id" in device_info
-
-
-                // this.transfered = true
-
-                // this.registered = true
-
-                // payloads cluster playerstate
-
-                // payloads statemachine staemachine_id
-
-
-                // if (1 + 2 > 3) {
-
-                // }
-                // log(response.body)
-                // gives the list of devices
-                //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_5ef1df4daf071872bfe5ae0714efafa29f2
-                //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_ce5888d21908a6372f02c2c0155f3d7d1c9
-                // actually registers a device
-                //https://gue1-spclient.spotify.com/track-playback/v1/devices
-
-            },
-            failure: (exception) => {
-                log("failure")
-                console.log(exception)
-            }
-        })
-    }
-    override onInit(seconds: number): void {
-        this.init_seconds = seconds
-    }
-    override onProgress(seconds: number, is_playing: boolean): void {
-
-        //{"seq_num":15,"state_ref":{"state_machine_id":"ChQ0Jnocbbg7kDx3WOjgNutMUyLLzA","state_id":"8425aeb0fef142d597d1b578c5f31061","paused":true},"sub_state":{"playback_speed":0,"position":33535,"duration":307927,"media_type":"AUDIO","bitrate":128000,"audio_quality":"HIGH","format":10},"previous_position":33535,"debug_source":"pause"}
-
-        if (this.socket_closed) {
-            return
-        }
-
-
-        if (seconds - this.init_seconds > 70 && is_playing) {
-
-            this.socket.close()
-            this.socket_closed = true
-            log("done closing")
-        }
-
-        if (this.another_one) {
-            return
-        }
-
-
-
-        if (seconds - this.init_seconds > 60 && is_playing) {
-
-            log("deleting device")
-            const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`
-            const response = local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false)
-            log(response)
-
-            const url2 = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}`
-            const response2 = local_http.requestWithBody("DELETE", url2, JSON.stringify(
-                {"seq_num":this.seq_num,"state_ref":{"state_machine_id":this.state_machine_id,"state_id":this.playback_id,"paused":false},"sub_state":{"playback_speed":1,"position":40786,"duration":this.duration,"media_type":"AUDIO","bitrate":128000,"audio_quality":"HIGH","format":10},"previous_position":40786,"debug_source":"deregister"}
-            ) ,{ Authorization: `Bearer ${local_state.bearer_token}` }, false)
-            log(response2)
-
-            /*
-            log("trigger finish")
-
-            const initial_state_machine_id = this.state_machine_id
-            const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response1: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                register_playback_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": this.duration - 158, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": this.duration - 158, "playback_stats": { "ms_total_est": this.duration, "ms_metadata_duration": 0, "ms_manifest_latency": 196, "ms_latency": 1188, "start_offset_ms": 14, "ms_initial_buffering": 451, "ms_initial_rebuffer": 451, "ms_seek_rebuffering": 0, "ms_stalled": 0, "max_ms_seek_rebuffering": 0, "max_ms_stalled": 0, "n_stalls": 0, "n_rendition_upgrade": 0, "n_rendition_downgrade": 0, "bps_bandwidth_max": 0, "bps_bandwidth_min": 0, "bps_bandwidth_avg": 0, "audiocodec": "mp4", "start_bitrate": 128000, "time_weighted_bitrate": 0, "key_system": "widevine", "ms_key_latency": 1796, "total_bytes": 3494928, "local_time_ms": Date.now(), "n_dropped_video_frames": 0, "n_total_video_frames": 0, "resolution_max": 0, "resolution_min": 0, "strategy": "MSE" }, "debug_source": "track_data_finalized" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response1)
-            this.seq_num += 1
-            this.state_machine_id = response1.state_machine.state_machine_id
-
-
-
-
-            log("triggering before play")
-            const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response2: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response2)
-            this.state_machine_id = response2.state_machine.state_machine_id
-            this.seq_num += 1
-
-            // let res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-
-
-            log("speed change 1")
-            // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response3: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response3)
-            this.seq_num += 1
-
-            */
-
-
-
-            this.another_one = true
-
-
-        }
-
-        if (this.in_between) {
-            return
-        }
-
-        if (seconds - this.init_seconds > 50 && is_playing) {
-            if (!this.socket.isOpen) {
-                log("socket not open!")
-            } else {
-                log(`recording play of ${this.uri_id}`)
-
-                // this.socket.close()
-            }
-            const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                register_playback_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 30786, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 30786, "debug_source": "played_threshold_reached" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response)
-            this.seq_num += 1
-            this.state_machine_id = response.state_machine.state_machine_id
-
-
-
-            this.in_between = true
-
-
-        }
-
-        if (this.play_recorded) {
-            return
-        }
-        if (seconds - this.init_seconds > 15 && is_playing) {
-            this.play_recorded = true
-
-
-
-            // log(this.connection_id)
-
-
-            // command id is random
-            //t = e=>{
-            // const t = Math.ceil(e / 2);
-            // return function(e) {
-            //     let t = "";
-            //     for (let n = 0; n < e.length; n++) {
-            //         const i = e[n];
-            //         i < 16 && (t += "0"),
-            //         t += i.toString(16)
-            //     }
-            //     return t
-            // }(gt(t))
-            //     const un = /^[0-9a-f]{32}$/i
-            //     , pn = ()=>ft(32)
-            //     , mn = e=>{
-            //       if (e && (t = e,
-            //       !un.test(t)))
-            //           throw new TypeError(`Invalid commandId. Expected a 32 character hex string but got: ${e}`);
-            //       var t;
-            //       return e || pn()
-            //   }
-
-            const initial_state_machine_id = this.state_machine_id
-
-            log("triggering before play")
-            const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response1: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response1)
-            this.state_machine_id = response1.state_machine.state_machine_id
-            this.seq_num += 1
-
-            // let res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-
-
-            log("speed change 1")
-            // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response3: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response3)
-            this.seq_num += 1
-            // this.state_machine_id = response3.state_machine.state_machine_id
-
-            // res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-
-            log("speedchange 2")
-            // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response4: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                before_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 0, "debug_source": "speed_changed" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response4)
-            this.state_machine_id = response4.state_machine.state_machine_id
-            this.seq_num += 1
-
-            // res = 0
-            // for(let i = 0; i<10000;i++){
-            //     res = (res+1)*2/2
-            // }
-
-
-            log("triggering play start")
-            const started_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`
-            const response: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody(
-                "PUT",
-                started_playling_url,
-                // JSON.stringify({
-                //     debug_source: "played_threshold_reached",
-
-                // }),
-                JSON.stringify(
-                    { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 1360, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 1360, "debug_source": "started_playing" }
-                ),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false).body)
-            log(response)
-            this.state_machine_id = response.state_machine.state_machine_id
-            this.seq_num += 1
-            // this.start_triggered = true
-
-
-        }
+            })
 
-        if (this.transfered) {
-            return
-        }
-        if (seconds - this.init_seconds > 5 && is_playing) {
-            log("transfering to device")
-            const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}`
-            const transfer_response = local_http.POST(
-                transfer_url,
-                // this.device_active ? JSON.stringify(
-                //     { "transfer_options": { "restore_paused": "restore" }, "interaction_id": "cf075506-9bc9-4af6-a164-93778f310345", "command_id": "3bcf58bc37afa628c3d441df53efc469" }
-                // ) : 
-                JSON.stringify({
-                    "command": {
-                        "context": {
-                            // "uri": "spotify:track:6CbPF34njo6PpWYTFQrMZN",
-                            // "url": "context://spotify:track:6CbPF34njo6PpWYTFQrMZN",
-                            uri: `spotify:album:${this.album_uri_id}`,
-                            url: `context://spotify:album:${this.album_uri_id}`,
-                            "metadata": {}
-                        },
-                        "play_origin": {
-                            "feature_identifier": "album",
-                            // "feature_identifier": "track",
-                            "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b",
-                            "referrer_identifier": "your_library"
-                        },
-                        "options": {
-                            "license": "on-demand",
-                            "skip_to": {
-                                track_index: this.track_album_index,
-                                track_uid: this.uid,
-                                track_uri: this.track_uri
-                            },
-                            "player_options_override": {}
-                        },
-                        "logging_params": {
-                            "page_instance_ids": [
-                                "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e"
-                            ],
-                            "interaction_ids": [
-                                "d3697919-e8be-425d-98bc-1ea70e28963a"
-                            ],
-                            "command_id": "46b1903536f6eda76783840368982c5e"
-                        },
-                        "endpoint": "play"
-                    }
-                }),
-                // JSON.stringify({
-                //     command: {
-                //         endpoint: "play",
-                //         context: {
-                //             metadata: {},
-                //             uri: "spotify:track:7aohwSiTDju51QmC54AUba",
-                //             url: "context://spotify:track:7aohwSiTDju51QmC54AUba"
-                //         },
-                //         "logging_params": { "page_instance_ids": ["5616d9d6-c44f-4cda-a7c2-167890dd2beb"], "interaction_ids": ["72ab0dbb-7a83-4644-8bad-550d65ff8e77"], "command_id": "0f85a8b2347ff239207f32344d7da9d6" },
-                //         "options": {
-                //             "license": "on-demand", "skip_to": {}, "player_options_override": {}
-                //         },
-                //         "play_origin": { "feature_identifier": "track", "feature_version": "web-player_2024-05-23_1716493666036_b53deef", "referrer_identifier": "your_library" },
-                //     }
-                //     // command_id: "1ec91233c1cd60f69f5de11f513b2887",
-                //     // transfer_options: {
-                //     //     restore_paused: "pause"
-                //     // }
-                // }),
-                { Authorization: `Bearer ${local_state.bearer_token}` },
-                false
-            )
-            log(transfer_response)
-            this.transfered = true
         }
     }
 }
diff --git a/src/types.ts b/src/types.ts
index 50fb27f..cd256ce 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -288,9 +288,12 @@ export type SectionItemEpisode = {
             readonly coverArt: null | {
                 readonly sources: ImageSources
             }
+            readonly __typename: "Podcast"
+        } | {
+            readonly __typename: "NotFound"
         }
     }
-    readonly releaseDate: {
+    readonly releaseDate: null | {
         readonly isoString: string
     }
 }
@@ -359,7 +362,7 @@ export type SectionItemArtist = {
 export type GenrePlaylistSection = {
     readonly data: {
         readonly __typename: "BrowseGenericSectionData"
-        readonly title: {
+        readonly title: null | {
             readonly transformedLabel: string
         }
     }
@@ -522,6 +525,13 @@ export type TranscriptResponse = {
     } | {
         readonly startMs: number
         readonly title: unknown
+    } | {
+        readonly startMs: number
+        readonly fallback: {
+            readonly sentence: {
+                readonly text: string
+            }
+        }
     })[]
     readonly language: "en"
 }
@@ -649,6 +659,8 @@ export type TrackMetadataResponse = {
     readonly data: {
         readonly trackUnion: {
             readonly playcount: string
+            readonly uri: string
+            readonly trackNumber: number
             readonly firstArtist: {
                 readonly items: {
                     readonly id: string
@@ -664,6 +676,7 @@ export type TrackMetadataResponse = {
                 readonly date: {
                     readonly isoString: string
                 }
+                readonly uri: string
             }
             readonly duration: {
                 readonly totalMilliseconds: number
@@ -731,13 +744,18 @@ export type SongMetadataResponse = {
         name: string
     }[]
     readonly canonical_uri: string
-    readonly file: {
-        readonly file_id: string
-        // only MP4_128 and MP4_256 are available on the web and therefore what we support
-        readonly format: "MP4_128" | "AAC_24" | "MP4_256" | "MP4_256_DUAL" | "OGG_VORBIS_320"
+    readonly file: Files | undefined
+    readonly alternative: undefined | {
+        readonly file: Files
     }[]
 }
 
+type Files = {
+    readonly file_id: string
+    // only MP4_128 and MP4_256 are available on the web and therefore what we support
+    readonly format: "MP4_128" | "AAC_24" | "MP4_256" | "MP4_256_DUAL" | "OGG_VORBIS_320"
+}[]
+
 export type ShowMetadataResponse = {
     readonly data: {
         readonly podcastUnionV2: {
@@ -805,6 +823,7 @@ export type Tracks = {
             }
             readonly uri: string
         }
+        readonly uid: string
     }[]
     readonly totalCount: number
 }
-- 
GitLab