From 8ccd9580105eca3d95c113e6e6bd01e0295fa10b Mon Sep 17 00:00:00 2001
From: Kai DeLorenzo <git@seaoflaurels.com>
Date: Fri, 24 May 2024 01:32:45 -0500
Subject: [PATCH] initial hardcoded playback tracking

---
 README.md                  |  12 +-
 build/SpotifyScript.js     | 511 ++++++++++++++++++++++++++---
 build/SpotifyScript.js.map |   2 +-
 build/SpotifyScript.ts     | 655 ++++++++++++++++++++++++++++++++++---
 package-lock.json          |  91 +++---
 package.json               |   2 +-
 src/SpotifyScript.ts       | 655 ++++++++++++++++++++++++++++++++++---
 src/types.ts               |  36 +-
 8 files changed, 1758 insertions(+), 206 deletions(-)

diff --git a/README.md b/README.md
index 6164e0e..ef25079 100644
--- a/README.md
+++ b/README.md
@@ -9,14 +9,22 @@
 - [ ]   test the logged out version of the plugin
 - [ ]   music video support (not available in the us)
 - [ ]   video podcast support (requires a better websocket api)
-- [ ]   support offline playback
 - [ ]   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.
+        Offline playback is likely possible if we emulate the desktop or mobile app functionality
+        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
+- [ ]   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
 
 ## Grayjay Bugs
 - [ ]   RatingScaler doesn't work
@@ -24,4 +32,4 @@
 - [ ]   datetime doesn't display for playlists
 - [ ]   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
\ No newline at end of file
+- [ ]   the channel about section doesn't render HTML
diff --git a/build/SpotifyScript.js b/build/SpotifyScript.js
index 6b199ad..42e9ef0 100644
--- a/build/SpotifyScript.js
+++ b/build/SpotifyScript.js
@@ -1,6 +1,6 @@
 const CONTENT_REGEX = /^https:\/\/open\.spotify\.com\/(track|episode)\/([a-zA-Z0-9]*)($|\/)/;
 const PLAYLIST_REGEX = /^https:\/\/open\.spotify\.com\/(album|playlist|collection)\/([a-zA-Z0-9]*|your-episodes|tracks)($|\/)/;
-const CHANNEL_REGEX = /^https:\/\/open\.spotify\.com\/(show|artist|user|genre|section|content-feed)\/(section|)([a-zA-Z0-9]*)($|\/)/;
+const CHANNEL_REGEX = /^https:\/\/open\.spotify\.com\/(show|artist|user|genre|section|content-feed)\/(section|)([a-zA-Z0-9]*|recently-played)($|\/)/;
 const SONG_URL_PREFIX = "https://open.spotify.com/track/";
 const EPISODE_URL_PREFIX = "https://open.spotify.com/episode/";
 const SHOW_URL_PREFIX = "https://open.spotify.com/show/";
@@ -239,13 +239,15 @@ function saveState() {
 function getHome() {
     check_and_update_token();
     const { url, headers } = home_args(10);
-    const { url: new_url, headers: new_heaers } = whats_new_args(0, 50);
+    const { url: new_url, headers: new_headers } = whats_new_args(0, 50);
+    const { url: recent_url, headers: recent_headers } = recently_played_ids_args(0, 50);
     const responses = local_http
         .batch()
         .GET(url, headers, false)
-        .GET(new_url, new_heaers, false)
+        .GET(new_url, new_headers, false)
+        .GET(recent_url, recent_headers, false)
         .execute();
-    if (responses[0] === undefined || responses[1] === undefined) {
+    if (responses[0] === undefined || responses[1] === undefined || responses[2] === undefined) {
         throw new ScriptException("unreachable");
     }
     const home_response = JSON.parse(responses[0].body);
@@ -262,8 +264,34 @@ function getHome() {
             section_url: "https://open.spotify.com/content-feed",
             sectionItems: whats_new_response.data.whatsNewFeedItems
         });
+        const recently_played_ids = JSON.parse(responses[2].body);
+        const { url, headers } = recently_played_details_args(recently_played_ids.playContexts.map(function (uri_obj) {
+            return uri_obj.uri;
+        }));
+        const recently_played_response = JSON.parse(local_http.GET(url, headers, false).body);
+        sections.unshift({
+            data: {
+                __typename: "CustomRecentlyPlayedSectionData",
+                title: {
+                    text: "Recently played"
+                },
+            },
+            section_url: "https://open.spotify.com/genre/recently-played",
+            sectionItems: {
+                items: recently_played_response.data.lookup.flatMap(function (section_item) {
+                    if (section_item.__typename === "UnknownTypeWrapper") {
+                        return [];
+                    }
+                    return {
+                        content: {
+                            data: section_item.data
+                        }
+                    };
+                })
+            }
+        });
     }
-    const playlists = format_page(home_response.data.home.sectionContainer.sections.items, 4);
+    const playlists = format_page(sections, 4);
     return new ContentPager(playlists, false);
 }
 function whats_new_args(offset, limit) {
@@ -444,7 +472,7 @@ function getContentDetails(url) {
                 return accumulator.height > current.height ? accumulator : current;
             });
             let subtitles = [];
-            if (results[2] !== undefined) {
+            if (results[2] !== undefined && results[2].code !== 404) {
                 const lyrics_response = JSON.parse(results[2].body);
                 const subtitle_name = function () {
                     switch (lyrics_response.lyrics.language) {
@@ -1472,6 +1500,44 @@ function getChannel(url) {
             });
         }
         case "genre": {
+            if (channel_uri_id === "recently-played") {
+                if (!bridge.isLoggedIn()) {
+                    throw new LoginRequiredException("login to open recently-played");
+                }
+                // Spotify just load the first 50
+                const { url: uri_url, headers: uri_headers } = recently_played_ids_args(0, 50);
+                const recently_played_ids = JSON.parse(local_http.GET(uri_url, uri_headers, false).body);
+                const { url, headers } = recently_played_details_args(recently_played_ids.playContexts.map(function (uri_obj) {
+                    return uri_obj.uri;
+                }));
+                const recently_played_response = JSON.parse(local_http.GET(url, headers, false).body);
+                const section_items = recently_played_response.data.lookup.flatMap(function (section_item) {
+                    if (section_item.__typename === "UnknownTypeWrapper") {
+                        return [];
+                    }
+                    const section_item_content = section_item.data;
+                    if (section_item_content.__typename === "Playlist" || section_item_content.__typename === "Album") {
+                        return [section_item_content];
+                    }
+                    return [];
+                });
+                const first_section_item = section_items?.[0];
+                if (first_section_item === undefined) {
+                    throw new ScriptException("unreachable");
+                }
+                const first_section_first_playlist_image = first_section_item.__typename === "Album"
+                    ? first_section_item.coverArt.sources[0]?.url
+                    : first_section_item.images.items[0]?.sources[0]?.url;
+                if (first_section_first_playlist_image === undefined) {
+                    throw new ScriptException("missing playlist image");
+                }
+                return new PlatformChannel({
+                    id: new PlatformID(PLATFORM, channel_uri_id, plugin.config.id),
+                    name: "Recently played",
+                    thumbnail: first_section_first_playlist_image,
+                    url: "https://open.spotify.com/genre/recently-played"
+                });
+            }
             // use limit of 4 to load minimal data but try to guarantee that we can get a cover photo
             const limit = 4;
             const { url, headers } = browse_page_args(channel_uri_id, { offset: 0, limit }, { offset: 0, limit });
@@ -1567,7 +1633,8 @@ function getChannel(url) {
 function is_playlist_section(item) {
     return item.data.__typename === "BrowseGenericSectionData"
         || item.data.__typename === "HomeGenericSectionData"
-        || item.data.__typename === "WhatsNewSectionData";
+        || item.data.__typename === "WhatsNewSectionData"
+        || item.data.__typename === "CustomRecentlyPlayedSectionData";
 }
 function browse_page_args(page_uri_id, pagePagination, sectionPagination) {
     const variables = JSON.stringify({
@@ -1587,6 +1654,26 @@ function browse_page_args(page_uri_id, pagePagination, sectionPagination) {
     url.searchParams.set("extensions", extensions);
     return { url: url.toString(), headers: { Authorization: `Bearer ${local_state.bearer_token}` } };
 }
+function recently_played_ids_args(offset, limit) {
+    const url = `https://spclient.wg.spotify.com/recently-played/v3/user/${local_state.username}/recently-played?format=json&offset=${offset}&limit=${limit}&filter=default,collection-new-episodes`;
+    return { url: url.toString(), headers: { Authorization: `Bearer ${local_state.bearer_token}` } };
+}
+function recently_played_details_args(uris) {
+    const variables = JSON.stringify({
+        uris
+    });
+    const extensions = JSON.stringify({
+        persistedQuery: {
+            version: 1,
+            sha256Hash: "8e4eb5eafa2837eca337dc11321ac285a01f9a056a7ac83f77a66f9998b06a73"
+        }
+    });
+    const url = new URL(QUERY_URL);
+    url.searchParams.set("operationName", "fetchEntitiesForRecentlyPlayed");
+    url.searchParams.set("variables", variables);
+    url.searchParams.set("extensions", extensions);
+    return { url: url.toString(), headers: { Authorization: `Bearer ${local_state.bearer_token}` } };
+}
 function parse_channel_url(url) {
     const match_result = url.match(CHANNEL_REGEX);
     if (match_result === null) {
@@ -1605,7 +1692,7 @@ function parse_channel_url(url) {
     if (channel_uri_id === undefined) {
         throw new ScriptException("regex error");
     }
-    return { channel_type, channel_uri_id };
+    return { channel_type, channel_uri_id: channel_uri_id === "recently-played" ? "recently-played" : channel_uri_id };
 }
 //#endregion
 //#region channel content
@@ -1658,6 +1745,43 @@ function getChannelContents(url, type, order, filters) {
             return new SectionPager(channel_uri_id, section_items, 0, initial_limit, author, section.sectionItems.totalCount > initial_limit);
         }
         case "genre": {
+            if (channel_uri_id === "recently-played") {
+                if (!bridge.isLoggedIn()) {
+                    throw new LoginRequiredException("login to open recently-played");
+                }
+                // Spotify just load the first 50
+                const { url: uri_url, headers: uri_headers } = recently_played_ids_args(0, 50);
+                const recently_played_ids = JSON.parse(local_http.GET(uri_url, uri_headers, false).body);
+                const { url, headers } = recently_played_details_args(recently_played_ids.playContexts.map(function (uri_obj) {
+                    return uri_obj.uri;
+                }));
+                const recently_played_response = JSON.parse(local_http.GET(url, headers, false).body);
+                const section_items = recently_played_response.data.lookup.flatMap(function (section_item) {
+                    if (section_item.__typename === "UnknownTypeWrapper") {
+                        return [];
+                    }
+                    const section_item_content = section_item.data;
+                    if (section_item_content.__typename === "Playlist" || section_item_content.__typename === "Album") {
+                        return [section_item_content];
+                    }
+                    return [];
+                });
+                const first_section_item = section_items?.[0];
+                if (first_section_item === undefined) {
+                    throw new ScriptException("unreachable");
+                }
+                const first_section_first_playlist_image = first_section_item.__typename === "Album"
+                    ? first_section_item.coverArt.sources[0]?.url
+                    : first_section_item.images.items[0]?.sources[0]?.url;
+                if (first_section_first_playlist_image === undefined) {
+                    throw new ScriptException("missing playlist image");
+                }
+                const author = new PlatformAuthorLink(new PlatformID(PLATFORM, "recently-played", plugin.config.id), "Recently played", `${PAGE_URL_PREFIX}recently-played`, first_section_first_playlist_image);
+                const playlists = section_items.map(function (section_item) {
+                    return format_section_item(section_item, author);
+                });
+                return new ContentPager(playlists, false);
+            }
             const limit = 4;
             const { url, headers } = browse_page_args(channel_uri_id, { offset: 0, limit: 50 }, { offset: 0, limit: limit });
             const browse_page_response = JSON.parse(local_http.GET(url, headers, false).body);
@@ -1865,14 +1989,19 @@ function format_section_item(section, section_as_author) {
             if (image_url === undefined) {
                 throw new ScriptException("missing playlist thumbnail");
             }
-            if (section.ownerV2.data.name !== "Spotify") {
-                throw new ScriptException("unhandled playlist owner");
+            let author = section_as_author;
+            // TODO we might want to look up the username of the playlist if it is missing instead of using the section/page/genre as the channel
+            if (section.ownerV2.data.username) {
+                if (!section.ownerV2.data.username) {
+                    throw new ScriptException(`missing username for owner ${section.ownerV2}`);
+                }
+                author = new PlatformAuthorLink(new PlatformID(PLATFORM, section.ownerV2.data.username, plugin.config.id), section.ownerV2.data.name, `${USER_URL_PREFIX}${section.ownerV2.data.username}`, section.ownerV2.data.avatar?.sources[0]?.url);
             }
             const platform_playlist = {
                 id: new PlatformID(PLATFORM, id_from_uri(section.uri), plugin.config.id),
                 url: `${PLAYLIST_URL_PREFIX}${id_from_uri(section.uri)}`,
                 name: section.name,
-                author: section_as_author,
+                author,
                 // TODO load some other way videoCount:
                 thumbnail: image_url
             };
@@ -2306,65 +2435,344 @@ function getUserSubscriptions() {
 }
 function getPlaybackTracker(url) {
     const { content_uri_id } = parse_content_url(url);
+    check_and_update_token();
     return new SpotifyPlaybackTracker(content_uri_id);
 }
-// let socket: SocketResult
 class SpotifyPlaybackTracker extends PlaybackTracker {
     uri_id;
+    state_machine_id = "";
+    playback_id = "";
     play_recorded = false;
+    socket_closed = 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 = "b27bde830fd81dbff77339f7ed344db1a40";
+    uid = "da3986443f3dbf5a0881";
+    duration = 303440;
     constructor(uri_id) {
         const interval_seconds = 10;
         super(interval_seconds * 1000);
         this.uri_id = uri_id;
-        check_and_update_token();
-        // const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`
-        let url = "wss://echo.websocket.in";
+        // 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);
-        // socket.connect({
-        //     open() {
-        //         log("open")
-        //         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(msg)
-        //         socket.close()
-        //     },
-        //     failure(exception) {
-        //         log("failure")
-        //         console.log(exception)
-        //     }
-        // })
+        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");
+                            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 === "") {
+                            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 === "") {
+                            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) {
+                        // }
+                        return;
+                    }
+                    log("ignored WS message");
+                    log(msg);
+                    return;
+                }
+                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 (Grayjay)", "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 device info")
+                // const another_register_thing = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id}`
+                // 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) {
-        log("connecting to websocket");
-        log(seconds.toString());
+        this.init_seconds = seconds;
     }
     onProgress(seconds, is_playing) {
-        if (this.play_recorded) {
+        if (this.socket_closed) {
             return;
         }
-        if (!this.socket.isOpen && seconds > 10) {
-            log("actually connecting");
+        if (seconds - this.init_seconds > 50 && is_playing) {
+            this.socket.close();
+            this.socket_closed = true;
+            log("done closing");
+        }
+        if (this.in_between) {
+            return;
+        }
+        if (seconds - this.init_seconds > 35 && 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": 6, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 39536, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 39536, "debug_source": "played_threshold_reached" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body);
+            log(response);
+            this.state_machine_id = response.state_machine.state_machine_id;
+            this.in_between = true;
         }
-        if (seconds > 30) {
-            log(`recording play of ${this.uri_id}`);
+        if (this.play_recorded) {
+            return;
+        }
+        if (seconds - this.init_seconds > 20 && is_playing) {
             this.play_recorded = true;
-            // this.socket.send(JSON.stringify({
-            //     type: "ping"
-            // }))
+            // 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()
+            //   }
+            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": 3, "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;
+            // 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": 4, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 0, "position": 0, "duration": 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.state_machine_id = response3.state_machine.state_machine_id
+            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": 4, "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;
+            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": 5, "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.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:7aJuG4TFXa2hmE4z1yxc3n",
+                        url: "context://spotify:album:7aJuG4TFXa2hmE4z1yxc3n",
+                        "metadata": {}
+                    },
+                    "play_origin": {
+                        "feature_identifier": "album",
+                        // "feature_identifier": "track",
+                        "feature_version": "web-player_2024-05-23_1716493666036_b53deef",
+                        "referrer_identifier": "your_library"
+                    },
+                    "options": {
+                        "license": "on-demand",
+                        "skip_to": {
+                            track_index: 2,
+                            track_uid: this.uid,
+                            track_uri: "spotify:track:7BRD7x5pt8Lqa1eGYC4dzj"
+                        },
+                        "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;
         }
-        log(is_playing.toString());
     }
 }
 //#endregion
@@ -2372,6 +2780,9 @@ class SpotifyPlaybackTracker extends PlaybackTracker {
 function url_from_image_uri(image_uri) {
     const match_result = image_uri.match(/^spotify:(image|mosaic):([0-9a-zA-Z:]*)$/);
     if (match_result === null) {
+        if (/^https:\/\//.test(image_uri)) {
+            return image_uri;
+        }
         throw new ScriptException("regex error");
     }
     const image_type = match_result[1];
diff --git a/build/SpotifyScript.js.map b/build/SpotifyScript.js.map
index de7465e..3245b83 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 b718513..ab9ad74 100644
--- a/build/SpotifyScript.ts
+++ b/build/SpotifyScript.ts
@@ -47,11 +47,14 @@ import {
     type FollowingResponse,
     type UriType,
     type SpotifySource,
+    type RecentlyPlayedUris,
+    type RecentlyPlayedDetails,
+    type RecentlyPlayedSection,
 } from "./types.js"
 
 const CONTENT_REGEX = /^https:\/\/open\.spotify\.com\/(track|episode)\/([a-zA-Z0-9]*)($|\/)/
 const PLAYLIST_REGEX = /^https:\/\/open\.spotify\.com\/(album|playlist|collection)\/([a-zA-Z0-9]*|your-episodes|tracks)($|\/)/
-const CHANNEL_REGEX = /^https:\/\/open\.spotify\.com\/(show|artist|user|genre|section|content-feed)\/(section|)([a-zA-Z0-9]*)($|\/)/
+const CHANNEL_REGEX = /^https:\/\/open\.spotify\.com\/(show|artist|user|genre|section|content-feed)\/(section|)([a-zA-Z0-9]*|recently-played)($|\/)/
 const SONG_URL_PREFIX = "https://open.spotify.com/track/" as const
 const EPISODE_URL_PREFIX = "https://open.spotify.com/episode/" as const
 const SHOW_URL_PREFIX = "https://open.spotify.com/show/" as const
@@ -303,13 +306,15 @@ function saveState() {
 function getHome() {
     check_and_update_token()
     const { url, headers } = home_args(10)
-    const { url: new_url, headers: new_heaers } = whats_new_args(0, 50)
+    const { url: new_url, headers: new_headers } = whats_new_args(0, 50)
+    const { url: recent_url, headers: recent_headers } = recently_played_ids_args(0, 50)
     const responses = local_http
         .batch()
         .GET(url, headers, false)
-        .GET(new_url, new_heaers, false)
+        .GET(new_url, new_headers, false)
+        .GET(recent_url, recent_headers, false)
         .execute()
-    if (responses[0] === undefined || responses[1] === undefined) {
+    if (responses[0] === undefined || responses[1] === undefined || responses[2] === undefined) {
         throw new ScriptException("unreachable")
     }
     const home_response: HomeResponse = JSON.parse(responses[0].body)
@@ -326,8 +331,35 @@ function getHome() {
             section_url: "https://open.spotify.com/content-feed",
             sectionItems: whats_new_response.data.whatsNewFeedItems
         })
+        const recently_played_ids: RecentlyPlayedUris = JSON.parse(responses[2].body)
+
+        const { url, headers } = recently_played_details_args(recently_played_ids.playContexts.map(function (uri_obj) {
+            return uri_obj.uri
+        }))
+        const recently_played_response: RecentlyPlayedDetails = JSON.parse(local_http.GET(url, headers, false).body)
+        sections.unshift({
+            data: {
+                __typename: "CustomRecentlyPlayedSectionData",
+                title: {
+                    text: "Recently played"
+                },
+            },
+            section_url: "https://open.spotify.com/genre/recently-played",
+            sectionItems: {
+                items: recently_played_response.data.lookup.flatMap(function (section_item) {
+                    if (section_item.__typename === "UnknownTypeWrapper") {
+                        return []
+                    }
+                    return {
+                        content: {
+                            data: section_item.data
+                        }
+                    }
+                })
+            }
+        })
     }
-    const playlists = format_page(home_response.data.home.sectionContainer.sections.items, 4)
+    const playlists = format_page(sections, 4)
     return new ContentPager(playlists, false)
 }
 function whats_new_args(offset: number, limit: number): { readonly url: string, readonly headers: { Authorization: string } } {
@@ -528,7 +560,7 @@ function getContentDetails(url: string) {
 
             let subtitles: ISubtitleSource[] = []
 
-            if (results[2] !== undefined) {
+            if (results[2] !== undefined && results[2].code !== 404) {
                 const lyrics_response: LyricsResponse = JSON.parse(results[2].body)
                 const subtitle_name = function () {
                     switch (lyrics_response.lyrics.language) {
@@ -1687,6 +1719,49 @@ function getChannel(url: string): PlatformChannel {
             })
         }
         case "genre": {
+            if (channel_uri_id === "recently-played") {
+                if (!bridge.isLoggedIn()) {
+                    throw new LoginRequiredException("login to open recently-played")
+                }
+
+                // Spotify just load the first 50
+                const { url: uri_url, headers: uri_headers } = recently_played_ids_args(0, 50)
+                const recently_played_ids: RecentlyPlayedUris = JSON.parse(local_http.GET(uri_url, uri_headers, false).body)
+
+                const { url, headers } = recently_played_details_args(recently_played_ids.playContexts.map(function (uri_obj) {
+                    return uri_obj.uri
+                }))
+                const recently_played_response: RecentlyPlayedDetails = JSON.parse(local_http.GET(url, headers, false).body)
+
+                const section_items = recently_played_response.data.lookup.flatMap(function (section_item) {
+                    if (section_item.__typename === "UnknownTypeWrapper") {
+                        return []
+                    }
+                    const section_item_content = section_item.data
+                    if (section_item_content.__typename === "Playlist" || section_item_content.__typename === "Album") {
+                        return [section_item_content]
+                    }
+                    return []
+                })
+                const first_section_item = section_items?.[0]
+                if (first_section_item === undefined) {
+                    throw new ScriptException("unreachable")
+                }
+                const first_section_first_playlist_image = first_section_item.__typename === "Album"
+                    ? first_section_item.coverArt.sources[0]?.url
+                    : first_section_item.images.items[0]?.sources[0]?.url
+
+                if (first_section_first_playlist_image === undefined) {
+                    throw new ScriptException("missing playlist image")
+                }
+                return new PlatformChannel({
+                    id: new PlatformID(PLATFORM, channel_uri_id, plugin.config.id),
+                    name: "Recently played",
+                    thumbnail: first_section_first_playlist_image,
+                    url: "https://open.spotify.com/genre/recently-played"
+                })
+            }
+
             // use limit of 4 to load minimal data but try to guarantee that we can get a cover photo
             const limit = 4
 
@@ -1696,7 +1771,7 @@ function getChannel(url: string): PlatformChannel {
                 throw new ScriptException("error loading genre page")
             }
             const name = browse_page_response.data.browse.header.title.transformedLabel
-            const sections = browse_page_response.data.browse.sections.items.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection)[] {
+            const sections = browse_page_response.data.browse.sections.items.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection | RecentlyPlayedSection)[] {
                 if (is_playlist_section(item)) {
                     return [item]
                 }
@@ -1793,10 +1868,11 @@ function getChannel(url: string): PlatformChannel {
             throw assert_exhaustive(channel_type, "unreachable")
     }
 }
-function is_playlist_section(item: Section): item is GenrePlaylistSection | HomePlaylistSection | WhatsNewSection {
+function is_playlist_section(item: Section): item is GenrePlaylistSection | HomePlaylistSection | WhatsNewSection | RecentlyPlayedSection {
     return item.data.__typename === "BrowseGenericSectionData"
         || item.data.__typename === "HomeGenericSectionData"
         || item.data.__typename === "WhatsNewSectionData"
+        || item.data.__typename === "CustomRecentlyPlayedSectionData"
 }
 function browse_page_args(
     page_uri_id: string,
@@ -1825,7 +1901,30 @@ function browse_page_args(
     url.searchParams.set("extensions", extensions)
     return { url: url.toString(), headers: { Authorization: `Bearer ${local_state.bearer_token}` } }
 }
-function parse_channel_url(url: string) {
+function recently_played_ids_args(
+    offset: number,
+    limit: number
+) {
+    const url = `https://spclient.wg.spotify.com/recently-played/v3/user/${local_state.username}/recently-played?format=json&offset=${offset}&limit=${limit}&filter=default,collection-new-episodes`
+    return { url: url.toString(), headers: { Authorization: `Bearer ${local_state.bearer_token}` } }
+}
+function recently_played_details_args(uris: string[]): { readonly url: string, readonly headers: { Authorization: string } } {
+    const variables = JSON.stringify({
+        uris
+    })
+    const extensions = JSON.stringify({
+        persistedQuery: {
+            version: 1,
+            sha256Hash: "8e4eb5eafa2837eca337dc11321ac285a01f9a056a7ac83f77a66f9998b06a73"
+        }
+    })
+    const url = new URL(QUERY_URL)
+    url.searchParams.set("operationName", "fetchEntitiesForRecentlyPlayed")
+    url.searchParams.set("variables", variables)
+    url.searchParams.set("extensions", extensions)
+    return { url: url.toString(), headers: { Authorization: `Bearer ${local_state.bearer_token}` } }
+}
+function parse_channel_url(url: string): { channel_type: ChannelType, channel_uri_id: "recently-played" | string } {
     const match_result = url.match(CHANNEL_REGEX)
     if (match_result === null) {
         throw new ScriptException("regex error")
@@ -1843,7 +1942,7 @@ function parse_channel_url(url: string) {
     if (channel_uri_id === undefined) {
         throw new ScriptException("regex error")
     }
-    return { channel_type, channel_uri_id }
+    return { channel_type, channel_uri_id: channel_uri_id === "recently-played" ? "recently-played" : channel_uri_id }
 }
 //#endregion
 
@@ -1909,6 +2008,56 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o
             return new SectionPager(channel_uri_id, section_items, 0, initial_limit, author, section.sectionItems.totalCount > initial_limit)
         }
         case "genre": {
+            if (channel_uri_id === "recently-played") {
+                if (!bridge.isLoggedIn()) {
+                    throw new LoginRequiredException("login to open recently-played")
+                }
+
+                // Spotify just load the first 50
+                const { url: uri_url, headers: uri_headers } = recently_played_ids_args(0, 50)
+                const recently_played_ids: RecentlyPlayedUris = JSON.parse(local_http.GET(uri_url, uri_headers, false).body)
+
+                const { url, headers } = recently_played_details_args(recently_played_ids.playContexts.map(function (uri_obj) {
+                    return uri_obj.uri
+                }))
+                const recently_played_response: RecentlyPlayedDetails = JSON.parse(local_http.GET(url, headers, false).body)
+
+                const section_items = recently_played_response.data.lookup.flatMap(function (section_item) {
+                    if (section_item.__typename === "UnknownTypeWrapper") {
+                        return []
+                    }
+                    const section_item_content = section_item.data
+                    if (section_item_content.__typename === "Playlist" || section_item_content.__typename === "Album") {
+                        return [section_item_content]
+                    }
+                    return []
+                })
+
+                const first_section_item = section_items?.[0]
+                if (first_section_item === undefined) {
+                    throw new ScriptException("unreachable")
+                }
+                const first_section_first_playlist_image = first_section_item.__typename === "Album"
+                    ? first_section_item.coverArt.sources[0]?.url
+                    : first_section_item.images.items[0]?.sources[0]?.url
+
+                if (first_section_first_playlist_image === undefined) {
+                    throw new ScriptException("missing playlist image")
+                }
+
+                const author = new PlatformAuthorLink(
+                    new PlatformID(PLATFORM, "recently-played", plugin.config.id),
+                    "Recently played",
+                    `${PAGE_URL_PREFIX}recently-played`,
+                    first_section_first_playlist_image
+                )
+
+                const playlists = section_items.map(function (section_item) {
+                    return format_section_item(section_item, author)
+                })
+                return new ContentPager(playlists, false)
+            }
+
             const limit = 4
             const { url, headers } = browse_page_args(channel_uri_id, { offset: 0, limit: 50 }, { offset: 0, limit: limit })
             const browse_page_response: BrowsePageResponse = JSON.parse(local_http.GET(url, headers, false).body)
@@ -1973,7 +2122,7 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o
  * @returns 
  */
 function format_page(sections: Section[], display_limit: number): (PlatformPlaylist | PlatformVideo)[] {
-    const filtered_sections = sections.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection)[] {
+    const filtered_sections = sections.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection | RecentlyPlayedSection)[] {
         if (is_playlist_section(item)) {
             return [item]
         }
@@ -2157,14 +2306,24 @@ function format_section_item(section: SectionItemAlbum | SectionItemPlaylist | S
             if (image_url === undefined) {
                 throw new ScriptException("missing playlist thumbnail")
             }
-            if (section.ownerV2.data.name !== "Spotify") {
-                throw new ScriptException("unhandled playlist owner")
+            let author = section_as_author
+            // TODO we might want to look up the username of the playlist if it is missing instead of using the section/page/genre as the channel
+            if (section.ownerV2.data.username) {
+                if (!section.ownerV2.data.username) {
+                    throw new ScriptException(`missing username for owner ${section.ownerV2}`)
+                }
+                author = new PlatformAuthorLink(
+                    new PlatformID(PLATFORM, section.ownerV2.data.username, plugin.config.id),
+                    section.ownerV2.data.name,
+                    `${USER_URL_PREFIX}${section.ownerV2.data.username}`,
+                    section.ownerV2.data.avatar?.sources[0]?.url
+                )
             }
             const platform_playlist = {
                 id: new PlatformID(PLATFORM, id_from_uri(section.uri), plugin.config.id),
                 url: `${PLAYLIST_URL_PREFIX}${id_from_uri(section.uri)}`,
                 name: section.name,
-                author: section_as_author,
+                author,
                 // TODO load some other way videoCount:
                 thumbnail: image_url
             }
@@ -2644,69 +2803,454 @@ function getUserSubscriptions(): string[] {
 }
 function getPlaybackTracker(url: string): PlaybackTracker {
     const { content_uri_id } = parse_content_url(url)
+    check_and_update_token()
     return new SpotifyPlaybackTracker(content_uri_id)
 }
-// let socket: SocketResult
 class SpotifyPlaybackTracker extends PlaybackTracker {
+    private state_machine_id = ""
+    private playback_id = ""
     private play_recorded = false
+    private socket_closed = 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 = "b27bde830fd81dbff77339f7ed344db1a40"
+    private readonly uid = "da3986443f3dbf5a0881"
+    private readonly duration = 303440
     constructor(private readonly uri_id: string) {
         const interval_seconds = 10
         super(interval_seconds * 1000)
 
-        check_and_update_token()
-        // const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`
-        let url = "wss://echo.websocket.in"
+        // 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)
-        // socket.connect({
-        //     open() {
-        //         log("open")
-        //         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(msg)
-        //         socket.close()
-        //     },
-        //     failure(exception) {
-        //         log("failure")
-        //         console.log(exception)
-        //     }
-        // })
+        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: {
+                    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)) {
+
+
+                    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")
+                            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 === "") {
+                            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 === "") {
+                            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) {
+
+                        // }
+
+                        return
+                    }
+
+                    log("ignored WS message")
+                    log(msg)
+
+                    return
+                }
+                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 (Grayjay)", "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 device info")
+                // const another_register_thing = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id}`
+
+                // 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 {
-        log("connecting to websocket")
-        log(seconds.toString())
-
+        this.init_seconds = seconds
     }
     override onProgress(seconds: number, is_playing: boolean): void {
-        if (this.play_recorded) {
+
+        if (this.socket_closed) {
             return
         }
-        if (!this.socket.isOpen && seconds > 10) {
-            log("actually connecting")
 
+        if (seconds - this.init_seconds > 50 && is_playing) {
+            this.socket.close()
+            this.socket_closed = true
+            log("done closing")
+        }
 
+        if (this.in_between) {
+            return
+        }
 
+        if (seconds - this.init_seconds > 35 && 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": 6, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 39536, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 39536, "debug_source": "played_threshold_reached" }
+                ),
+                { Authorization: `Bearer ${local_state.bearer_token}` },
+                false).body)
+            log(response)
+            this.state_machine_id = response.state_machine.state_machine_id
+            this.in_between = true
+        }
+
+        if (this.play_recorded) {
+            return
         }
-        if (seconds > 30) {
-            log(`recording play of ${this.uri_id}`)
+        if (seconds - this.init_seconds > 20 && is_playing) {
             this.play_recorded = true
 
-            // this.socket.send(JSON.stringify({
-            //     type: "ping"
-            // }))
+
+
+            // 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()
+            //   }
+
+
+
+            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": 3, "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
+
+            // 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": 4, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 0, "position": 0, "duration": 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.state_machine_id = response3.state_machine.state_machine_id
+
+
+            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": 4, "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
+
+
+            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": 5, "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.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:7aJuG4TFXa2hmE4z1yxc3n",
+                            url: "context://spotify:album:7aJuG4TFXa2hmE4z1yxc3n",
+                            "metadata": {}
+                        },
+                        "play_origin": {
+                            "feature_identifier": "album",
+                            // "feature_identifier": "track",
+                            "feature_version": "web-player_2024-05-23_1716493666036_b53deef",
+                            "referrer_identifier": "your_library"
+                        },
+                        "options": {
+                            "license": "on-demand",
+                            "skip_to": {
+                                track_index: 2,
+                                track_uid: this.uid,
+                                track_uri: "spotify:track:7BRD7x5pt8Lqa1eGYC4dzj"
+                            },
+                            "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
         }
-        log(is_playing.toString())
     }
 }
 //#endregion
@@ -2715,6 +3259,9 @@ class SpotifyPlaybackTracker extends PlaybackTracker {
 function url_from_image_uri(image_uri: string) {
     const match_result = image_uri.match(/^spotify:(image|mosaic):([0-9a-zA-Z:]*)$/)
     if (match_result === null) {
+        if (/^https:\/\//.test(image_uri)) {
+            return image_uri
+        }
         throw new ScriptException("regex error")
     }
     const image_type: "image" | "mosaic" = match_result[1] as "image" | "mosaic"
diff --git a/package-lock.json b/package-lock.json
index 1006136..3af776b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,7 +10,7 @@
             "license": "MPL-2.0",
             "devDependencies": {
                 "@grayjay/plugin": "gitlab:kaidelorenzo/grayjay-plugin-types#d66c6ca2a381238f5e69eadffc92dbad36994e51",
-                "@types/node": "^20.12.11",
+                "@types/node": "^20.12.12",
                 "http-server": "^14.1.1",
                 "npm-check-updates": "^16.14.20"
             },
@@ -621,6 +621,7 @@
             "version": "3.0.1",
             "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
             "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
+            "deprecated": "This package is no longer supported.",
             "dev": true,
             "dependencies": {
                 "delegates": "^1.0.0",
@@ -745,12 +746,12 @@
             }
         },
         "node_modules/braces": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-            "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+            "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
             "dev": true,
             "dependencies": {
-                "fill-range": "^7.0.1"
+                "fill-range": "^7.1.1"
             },
             "engines": {
                 "node": ">=8"
@@ -786,9 +787,9 @@
             }
         },
         "node_modules/cacache/node_modules/minipass": {
-            "version": "7.1.1",
-            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz",
-            "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
+            "version": "7.1.2",
+            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+            "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
             "dev": true,
             "engines": {
                 "node": ">=16 || 14 >=14.17"
@@ -1308,9 +1309,9 @@
             }
         },
         "node_modules/fill-range": {
-            "version": "7.0.1",
-            "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-            "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+            "version": "7.1.1",
+            "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+            "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
             "dev": true,
             "dependencies": {
                 "to-regex-range": "^5.0.1"
@@ -1416,9 +1417,9 @@
             }
         },
         "node_modules/fs-minipass/node_modules/minipass": {
-            "version": "7.1.1",
-            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz",
-            "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
+            "version": "7.1.2",
+            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+            "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
             "dev": true,
             "engines": {
                 "node": ">=16 || 14 >=14.17"
@@ -1443,6 +1444,7 @@
             "version": "4.0.4",
             "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
             "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
+            "deprecated": "This package is no longer supported.",
             "dev": true,
             "dependencies": {
                 "aproba": "^1.0.3 || ^2.0.0",
@@ -1529,16 +1531,16 @@
             }
         },
         "node_modules/glob": {
-            "version": "10.3.15",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz",
-            "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
             "dev": true,
             "dependencies": {
                 "foreground-child": "^3.1.0",
-                "jackspeak": "^2.3.6",
-                "minimatch": "^9.0.1",
-                "minipass": "^7.0.4",
-                "path-scurry": "^1.11.0"
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
             },
             "bin": {
                 "glob": "dist/esm/bin.mjs"
@@ -1563,9 +1565,9 @@
             }
         },
         "node_modules/glob/node_modules/minipass": {
-            "version": "7.1.1",
-            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz",
-            "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
+            "version": "7.1.2",
+            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+            "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
             "dev": true,
             "engines": {
                 "node": ">=16 || 14 >=14.17"
@@ -1932,6 +1934,7 @@
             "version": "1.0.6",
             "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
             "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+            "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
             "dev": true,
             "dependencies": {
                 "once": "^1.3.0",
@@ -1945,9 +1948,9 @@
             "dev": true
         },
         "node_modules/ini": {
-            "version": "4.1.2",
-            "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
-            "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
+            "version": "4.1.3",
+            "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
+            "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
             "dev": true,
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -2103,9 +2106,9 @@
             "dev": true
         },
         "node_modules/jackspeak": {
-            "version": "2.3.6",
-            "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
-            "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz",
+            "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==",
             "dev": true,
             "dependencies": {
                 "@isaacs/cliui": "^8.0.2"
@@ -2312,12 +2315,12 @@
             }
         },
         "node_modules/micromatch": {
-            "version": "4.0.5",
-            "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
-            "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+            "version": "4.0.7",
+            "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+            "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
             "dev": true,
             "dependencies": {
-                "braces": "^3.0.2",
+                "braces": "^3.0.3",
                 "picomatch": "^2.3.1"
             },
             "engines": {
@@ -2444,9 +2447,9 @@
             }
         },
         "node_modules/minipass-fetch/node_modules/minipass": {
-            "version": "7.1.1",
-            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz",
-            "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
+            "version": "7.1.2",
+            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+            "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
             "dev": true,
             "engines": {
                 "node": ">=16 || 14 >=14.17"
@@ -3121,6 +3124,7 @@
             "version": "6.0.2",
             "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
             "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
+            "deprecated": "This package is no longer supported.",
             "dev": true,
             "dependencies": {
                 "are-we-there-yet": "^3.0.0",
@@ -3535,6 +3539,7 @@
             "version": "6.0.4",
             "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz",
             "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==",
+            "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.",
             "dev": true,
             "dependencies": {
                 "glob": "^10.2.2",
@@ -3960,9 +3965,9 @@
             }
         },
         "node_modules/spdx-license-ids": {
-            "version": "3.0.17",
-            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
-            "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
+            "version": "3.0.18",
+            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
+            "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
             "dev": true
         },
         "node_modules/sprintf-js": {
@@ -3984,9 +3989,9 @@
             }
         },
         "node_modules/ssri/node_modules/minipass": {
-            "version": "7.1.1",
-            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz",
-            "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
+            "version": "7.1.2",
+            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+            "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
             "dev": true,
             "engines": {
                 "node": ">=16 || 14 >=14.17"
diff --git a/package.json b/package.json
index 51057e5..203124f 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
     "type": "module",
     "devDependencies": {
         "@grayjay/plugin": "gitlab:kaidelorenzo/grayjay-plugin-types#d66c6ca2a381238f5e69eadffc92dbad36994e51",
-        "@types/node": "^20.12.11",
+        "@types/node": "^20.12.12",
         "http-server": "^14.1.1",
         "npm-check-updates": "^16.14.20"
     }
diff --git a/src/SpotifyScript.ts b/src/SpotifyScript.ts
index f79c00a..06e6a84 100644
--- a/src/SpotifyScript.ts
+++ b/src/SpotifyScript.ts
@@ -47,11 +47,14 @@ import {
     type FollowingResponse,
     type UriType,
     type SpotifySource,
+    type RecentlyPlayedUris,
+    type RecentlyPlayedDetails,
+    type RecentlyPlayedSection,
 } from "./types.js"
 
 const CONTENT_REGEX = /^https:\/\/open\.spotify\.com\/(track|episode)\/([a-zA-Z0-9]*)($|\/)/
 const PLAYLIST_REGEX = /^https:\/\/open\.spotify\.com\/(album|playlist|collection)\/([a-zA-Z0-9]*|your-episodes|tracks)($|\/)/
-const CHANNEL_REGEX = /^https:\/\/open\.spotify\.com\/(show|artist|user|genre|section|content-feed)\/(section|)([a-zA-Z0-9]*)($|\/)/
+const CHANNEL_REGEX = /^https:\/\/open\.spotify\.com\/(show|artist|user|genre|section|content-feed)\/(section|)([a-zA-Z0-9]*|recently-played)($|\/)/
 const SONG_URL_PREFIX = "https://open.spotify.com/track/" as const
 const EPISODE_URL_PREFIX = "https://open.spotify.com/episode/" as const
 const SHOW_URL_PREFIX = "https://open.spotify.com/show/" as const
@@ -303,13 +306,15 @@ function saveState() {
 function getHome() {
     check_and_update_token()
     const { url, headers } = home_args(10)
-    const { url: new_url, headers: new_heaers } = whats_new_args(0, 50)
+    const { url: new_url, headers: new_headers } = whats_new_args(0, 50)
+    const { url: recent_url, headers: recent_headers } = recently_played_ids_args(0, 50)
     const responses = local_http
         .batch()
         .GET(url, headers, false)
-        .GET(new_url, new_heaers, false)
+        .GET(new_url, new_headers, false)
+        .GET(recent_url, recent_headers, false)
         .execute()
-    if (responses[0] === undefined || responses[1] === undefined) {
+    if (responses[0] === undefined || responses[1] === undefined || responses[2] === undefined) {
         throw new ScriptException("unreachable")
     }
     const home_response: HomeResponse = JSON.parse(responses[0].body)
@@ -326,8 +331,35 @@ function getHome() {
             section_url: "https://open.spotify.com/content-feed",
             sectionItems: whats_new_response.data.whatsNewFeedItems
         })
+        const recently_played_ids: RecentlyPlayedUris = JSON.parse(responses[2].body)
+
+        const { url, headers } = recently_played_details_args(recently_played_ids.playContexts.map(function (uri_obj) {
+            return uri_obj.uri
+        }))
+        const recently_played_response: RecentlyPlayedDetails = JSON.parse(local_http.GET(url, headers, false).body)
+        sections.unshift({
+            data: {
+                __typename: "CustomRecentlyPlayedSectionData",
+                title: {
+                    text: "Recently played"
+                },
+            },
+            section_url: "https://open.spotify.com/genre/recently-played",
+            sectionItems: {
+                items: recently_played_response.data.lookup.flatMap(function (section_item) {
+                    if (section_item.__typename === "UnknownTypeWrapper") {
+                        return []
+                    }
+                    return {
+                        content: {
+                            data: section_item.data
+                        }
+                    }
+                })
+            }
+        })
     }
-    const playlists = format_page(home_response.data.home.sectionContainer.sections.items, 4)
+    const playlists = format_page(sections, 4)
     return new ContentPager(playlists, false)
 }
 function whats_new_args(offset: number, limit: number): { readonly url: string, readonly headers: { Authorization: string } } {
@@ -528,7 +560,7 @@ function getContentDetails(url: string) {
 
             let subtitles: ISubtitleSource[] = []
 
-            if (results[2] !== undefined) {
+            if (results[2] !== undefined && results[2].code !== 404) {
                 const lyrics_response: LyricsResponse = JSON.parse(results[2].body)
                 const subtitle_name = function () {
                     switch (lyrics_response.lyrics.language) {
@@ -1687,6 +1719,49 @@ function getChannel(url: string): PlatformChannel {
             })
         }
         case "genre": {
+            if (channel_uri_id === "recently-played") {
+                if (!bridge.isLoggedIn()) {
+                    throw new LoginRequiredException("login to open recently-played")
+                }
+
+                // Spotify just load the first 50
+                const { url: uri_url, headers: uri_headers } = recently_played_ids_args(0, 50)
+                const recently_played_ids: RecentlyPlayedUris = JSON.parse(local_http.GET(uri_url, uri_headers, false).body)
+
+                const { url, headers } = recently_played_details_args(recently_played_ids.playContexts.map(function (uri_obj) {
+                    return uri_obj.uri
+                }))
+                const recently_played_response: RecentlyPlayedDetails = JSON.parse(local_http.GET(url, headers, false).body)
+
+                const section_items = recently_played_response.data.lookup.flatMap(function (section_item) {
+                    if (section_item.__typename === "UnknownTypeWrapper") {
+                        return []
+                    }
+                    const section_item_content = section_item.data
+                    if (section_item_content.__typename === "Playlist" || section_item_content.__typename === "Album") {
+                        return [section_item_content]
+                    }
+                    return []
+                })
+                const first_section_item = section_items?.[0]
+                if (first_section_item === undefined) {
+                    throw new ScriptException("unreachable")
+                }
+                const first_section_first_playlist_image = first_section_item.__typename === "Album"
+                    ? first_section_item.coverArt.sources[0]?.url
+                    : first_section_item.images.items[0]?.sources[0]?.url
+
+                if (first_section_first_playlist_image === undefined) {
+                    throw new ScriptException("missing playlist image")
+                }
+                return new PlatformChannel({
+                    id: new PlatformID(PLATFORM, channel_uri_id, plugin.config.id),
+                    name: "Recently played",
+                    thumbnail: first_section_first_playlist_image,
+                    url: "https://open.spotify.com/genre/recently-played"
+                })
+            }
+
             // use limit of 4 to load minimal data but try to guarantee that we can get a cover photo
             const limit = 4
 
@@ -1696,7 +1771,7 @@ function getChannel(url: string): PlatformChannel {
                 throw new ScriptException("error loading genre page")
             }
             const name = browse_page_response.data.browse.header.title.transformedLabel
-            const sections = browse_page_response.data.browse.sections.items.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection)[] {
+            const sections = browse_page_response.data.browse.sections.items.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection | RecentlyPlayedSection)[] {
                 if (is_playlist_section(item)) {
                     return [item]
                 }
@@ -1793,10 +1868,11 @@ function getChannel(url: string): PlatformChannel {
             throw assert_exhaustive(channel_type, "unreachable")
     }
 }
-function is_playlist_section(item: Section): item is GenrePlaylistSection | HomePlaylistSection | WhatsNewSection {
+function is_playlist_section(item: Section): item is GenrePlaylistSection | HomePlaylistSection | WhatsNewSection | RecentlyPlayedSection {
     return item.data.__typename === "BrowseGenericSectionData"
         || item.data.__typename === "HomeGenericSectionData"
         || item.data.__typename === "WhatsNewSectionData"
+        || item.data.__typename === "CustomRecentlyPlayedSectionData"
 }
 function browse_page_args(
     page_uri_id: string,
@@ -1825,7 +1901,30 @@ function browse_page_args(
     url.searchParams.set("extensions", extensions)
     return { url: url.toString(), headers: { Authorization: `Bearer ${local_state.bearer_token}` } }
 }
-function parse_channel_url(url: string) {
+function recently_played_ids_args(
+    offset: number,
+    limit: number
+) {
+    const url = `https://spclient.wg.spotify.com/recently-played/v3/user/${local_state.username}/recently-played?format=json&offset=${offset}&limit=${limit}&filter=default,collection-new-episodes`
+    return { url: url.toString(), headers: { Authorization: `Bearer ${local_state.bearer_token}` } }
+}
+function recently_played_details_args(uris: string[]): { readonly url: string, readonly headers: { Authorization: string } } {
+    const variables = JSON.stringify({
+        uris
+    })
+    const extensions = JSON.stringify({
+        persistedQuery: {
+            version: 1,
+            sha256Hash: "8e4eb5eafa2837eca337dc11321ac285a01f9a056a7ac83f77a66f9998b06a73"
+        }
+    })
+    const url = new URL(QUERY_URL)
+    url.searchParams.set("operationName", "fetchEntitiesForRecentlyPlayed")
+    url.searchParams.set("variables", variables)
+    url.searchParams.set("extensions", extensions)
+    return { url: url.toString(), headers: { Authorization: `Bearer ${local_state.bearer_token}` } }
+}
+function parse_channel_url(url: string): { channel_type: ChannelType, channel_uri_id: "recently-played" | string } {
     const match_result = url.match(CHANNEL_REGEX)
     if (match_result === null) {
         throw new ScriptException("regex error")
@@ -1843,7 +1942,7 @@ function parse_channel_url(url: string) {
     if (channel_uri_id === undefined) {
         throw new ScriptException("regex error")
     }
-    return { channel_type, channel_uri_id }
+    return { channel_type, channel_uri_id: channel_uri_id === "recently-played" ? "recently-played" : channel_uri_id }
 }
 //#endregion
 
@@ -1909,6 +2008,56 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o
             return new SectionPager(channel_uri_id, section_items, 0, initial_limit, author, section.sectionItems.totalCount > initial_limit)
         }
         case "genre": {
+            if (channel_uri_id === "recently-played") {
+                if (!bridge.isLoggedIn()) {
+                    throw new LoginRequiredException("login to open recently-played")
+                }
+
+                // Spotify just load the first 50
+                const { url: uri_url, headers: uri_headers } = recently_played_ids_args(0, 50)
+                const recently_played_ids: RecentlyPlayedUris = JSON.parse(local_http.GET(uri_url, uri_headers, false).body)
+
+                const { url, headers } = recently_played_details_args(recently_played_ids.playContexts.map(function (uri_obj) {
+                    return uri_obj.uri
+                }))
+                const recently_played_response: RecentlyPlayedDetails = JSON.parse(local_http.GET(url, headers, false).body)
+
+                const section_items = recently_played_response.data.lookup.flatMap(function (section_item) {
+                    if (section_item.__typename === "UnknownTypeWrapper") {
+                        return []
+                    }
+                    const section_item_content = section_item.data
+                    if (section_item_content.__typename === "Playlist" || section_item_content.__typename === "Album") {
+                        return [section_item_content]
+                    }
+                    return []
+                })
+
+                const first_section_item = section_items?.[0]
+                if (first_section_item === undefined) {
+                    throw new ScriptException("unreachable")
+                }
+                const first_section_first_playlist_image = first_section_item.__typename === "Album"
+                    ? first_section_item.coverArt.sources[0]?.url
+                    : first_section_item.images.items[0]?.sources[0]?.url
+
+                if (first_section_first_playlist_image === undefined) {
+                    throw new ScriptException("missing playlist image")
+                }
+
+                const author = new PlatformAuthorLink(
+                    new PlatformID(PLATFORM, "recently-played", plugin.config.id),
+                    "Recently played",
+                    `${PAGE_URL_PREFIX}recently-played`,
+                    first_section_first_playlist_image
+                )
+
+                const playlists = section_items.map(function (section_item) {
+                    return format_section_item(section_item, author)
+                })
+                return new ContentPager(playlists, false)
+            }
+
             const limit = 4
             const { url, headers } = browse_page_args(channel_uri_id, { offset: 0, limit: 50 }, { offset: 0, limit: limit })
             const browse_page_response: BrowsePageResponse = JSON.parse(local_http.GET(url, headers, false).body)
@@ -1973,7 +2122,7 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o
  * @returns 
  */
 function format_page(sections: Section[], display_limit: number): (PlatformPlaylist | PlatformVideo)[] {
-    const filtered_sections = sections.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection)[] {
+    const filtered_sections = sections.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection | RecentlyPlayedSection)[] {
         if (is_playlist_section(item)) {
             return [item]
         }
@@ -2157,14 +2306,24 @@ function format_section_item(section: SectionItemAlbum | SectionItemPlaylist | S
             if (image_url === undefined) {
                 throw new ScriptException("missing playlist thumbnail")
             }
-            if (section.ownerV2.data.name !== "Spotify") {
-                throw new ScriptException("unhandled playlist owner")
+            let author = section_as_author
+            // TODO we might want to look up the username of the playlist if it is missing instead of using the section/page/genre as the channel
+            if (section.ownerV2.data.username) {
+                if (!section.ownerV2.data.username) {
+                    throw new ScriptException(`missing username for owner ${section.ownerV2}`)
+                }
+                author = new PlatformAuthorLink(
+                    new PlatformID(PLATFORM, section.ownerV2.data.username, plugin.config.id),
+                    section.ownerV2.data.name,
+                    `${USER_URL_PREFIX}${section.ownerV2.data.username}`,
+                    section.ownerV2.data.avatar?.sources[0]?.url
+                )
             }
             const platform_playlist = {
                 id: new PlatformID(PLATFORM, id_from_uri(section.uri), plugin.config.id),
                 url: `${PLAYLIST_URL_PREFIX}${id_from_uri(section.uri)}`,
                 name: section.name,
-                author: section_as_author,
+                author,
                 // TODO load some other way videoCount:
                 thumbnail: image_url
             }
@@ -2644,69 +2803,454 @@ function getUserSubscriptions(): string[] {
 }
 function getPlaybackTracker(url: string): PlaybackTracker {
     const { content_uri_id } = parse_content_url(url)
+    check_and_update_token()
     return new SpotifyPlaybackTracker(content_uri_id)
 }
-// let socket: SocketResult
 class SpotifyPlaybackTracker extends PlaybackTracker {
+    private state_machine_id = ""
+    private playback_id = ""
     private play_recorded = false
+    private socket_closed = 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 = "b27bde830fd81dbff77339f7ed344db1a40"
+    private readonly uid = "da3986443f3dbf5a0881"
+    private readonly duration = 303440
     constructor(private readonly uri_id: string) {
         const interval_seconds = 10
         super(interval_seconds * 1000)
 
-        check_and_update_token()
-        // const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`
-        let url = "wss://echo.websocket.in"
+        // 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)
-        // socket.connect({
-        //     open() {
-        //         log("open")
-        //         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(msg)
-        //         socket.close()
-        //     },
-        //     failure(exception) {
-        //         log("failure")
-        //         console.log(exception)
-        //     }
-        // })
+        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: {
+                    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)) {
+
+
+                    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")
+                            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 === "") {
+                            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 === "") {
+                            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) {
+
+                        // }
+
+                        return
+                    }
+
+                    log("ignored WS message")
+                    log(msg)
+
+                    return
+                }
+                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 (Grayjay)", "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 device info")
+                // const another_register_thing = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id}`
+
+                // 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 {
-        log("connecting to websocket")
-        log(seconds.toString())
-
+        this.init_seconds = seconds
     }
     override onProgress(seconds: number, is_playing: boolean): void {
-        if (this.play_recorded) {
+
+        if (this.socket_closed) {
             return
         }
-        if (!this.socket.isOpen && seconds > 10) {
-            log("actually connecting")
 
+        if (seconds - this.init_seconds > 50 && is_playing) {
+            this.socket.close()
+            this.socket_closed = true
+            log("done closing")
+        }
 
+        if (this.in_between) {
+            return
+        }
 
+        if (seconds - this.init_seconds > 35 && 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": 6, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 39536, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 39536, "debug_source": "played_threshold_reached" }
+                ),
+                { Authorization: `Bearer ${local_state.bearer_token}` },
+                false).body)
+            log(response)
+            this.state_machine_id = response.state_machine.state_machine_id
+            this.in_between = true
+        }
+
+        if (this.play_recorded) {
+            return
         }
-        if (seconds > 30) {
-            log(`recording play of ${this.uri_id}`)
+        if (seconds - this.init_seconds > 20 && is_playing) {
             this.play_recorded = true
 
-            // this.socket.send(JSON.stringify({
-            //     type: "ping"
-            // }))
+
+
+            // 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()
+            //   }
+
+
+
+            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": 3, "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
+
+            // 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": 4, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 0, "position": 0, "duration": 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.state_machine_id = response3.state_machine.state_machine_id
+
+
+            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": 4, "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
+
+
+            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": 5, "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.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:7aJuG4TFXa2hmE4z1yxc3n",
+                            url: "context://spotify:album:7aJuG4TFXa2hmE4z1yxc3n",
+                            "metadata": {}
+                        },
+                        "play_origin": {
+                            "feature_identifier": "album",
+                            // "feature_identifier": "track",
+                            "feature_version": "web-player_2024-05-23_1716493666036_b53deef",
+                            "referrer_identifier": "your_library"
+                        },
+                        "options": {
+                            "license": "on-demand",
+                            "skip_to": {
+                                track_index: 2,
+                                track_uid: this.uid,
+                                track_uri: "spotify:track:7BRD7x5pt8Lqa1eGYC4dzj"
+                            },
+                            "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
         }
-        log(is_playing.toString())
     }
 }
 //#endregion
@@ -2715,6 +3259,9 @@ class SpotifyPlaybackTracker extends PlaybackTracker {
 function url_from_image_uri(image_uri: string) {
     const match_result = image_uri.match(/^spotify:(image|mosaic):([0-9a-zA-Z:]*)$/)
     if (match_result === null) {
+        if (/^https:\/\//.test(image_uri)) {
+            return image_uri
+        }
         throw new ScriptException("regex error")
     }
     const image_type: "image" | "mosaic" = match_result[1] as "image" | "mosaic"
diff --git a/src/types.ts b/src/types.ts
index 62239aa..dfce978 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -35,6 +35,23 @@ export type Section = GenrePlaylistSection
         }
     }
     | WhatsNewSection
+    | RecentlyPlayedSection
+export type RecentlyPlayedSection = {
+    readonly data: {
+        readonly __typename: "CustomRecentlyPlayedSectionData"
+        readonly title: {
+            readonly text: "Recently played"
+        }
+    }
+    readonly section_url: "https://open.spotify.com/genre/recently-played"
+    readonly sectionItems: {
+        readonly items: {
+            readonly content: {
+                readonly data: SectionItemAlbum | SectionItemPlaylist | SectionItemPodcast | SectionItemArtist
+            }
+        }[]
+    }
+}
 export type WhatsNewSection = {
     readonly data: {
         readonly __typename: "WhatsNewSectionData"
@@ -277,7 +294,7 @@ export type SectionItemPlaylist = {
         readonly data: {
             readonly name: string
             readonly username: string
-            readonly avatar: {
+            readonly avatar?: {
                 readonly sources: ImageSources
             }
         }
@@ -407,6 +424,23 @@ export type BrowseSectionResponse = {
     }
 }
 
+export type RecentlyPlayedUris = {
+    readonly playContexts: {
+        readonly uri: string
+    }[]
+}
+
+export type RecentlyPlayedDetails = {
+    readonly data: {
+        readonly lookup: ({
+            readonly __typename: "AlbumResponseWrapper" | "PlaylistResponseWrapper"
+            readonly data: SectionItemAlbum | SectionItemPlaylist | SectionItemArtist | SectionItemPodcast
+        } | {
+            readonly __typename: "UnknownTypeWrapper"
+        })[]
+    }
+}
+
 export type UserPlaylistsResponse = {
     readonly public_playlists: {
         uri: string
-- 
GitLab