Giter Site home page Giter Site logo

philippe44 / spotconnect Goto Github PK

View Code? Open in Web Editor NEW
69.0 3.0 3.0 4.17 GB

Turn any UPnP or AirPlay player into a Spotify Connect device

License: MIT License

Batchfile 0.40% Shell 2.65% C 56.53% CMake 4.31% C++ 36.11%
bridge spotify spotify-connect upnp airplay freebsd linux macos solaris windows

spotconnect's Introduction

SpotConnect: Enable Spotify Connect for UPnP and AirPlay devices

Use these applications to add Spotify Connect capabilities to UPnP (like Sonos) or AirPlay players. Respectively spotupnp for UPnP and spotraop for AirPlay

SpotConnect can run on any machine that has access to your local network (Windows, MacOS x86 and arm64, Linux x86, x86_64, arm, aarch64, sparc, mips, powerpc, Solaris and FreeBSD). It does not need to be on your main computer. (For example, a Raspberry Pi works well). It will detect UPnP/Sonos or AirPlay players, create as many virtual Spotify Connect devices as needed, and act as a bridge/proxy between Spotify controller (iPhone, iPad, PC, Mac ...) and the real UPnP/Sonos or AirPlay players.

For UPnP, the audio, after being decoded from vorbis, can be sent in plain, or re-encoded using mp3, aac, vorbis, opus or flac. The tracks can be sent one-by one and use the capability of UPnP players to do gapless playback by sending the next track ahead of the current one, but not all players support that or might simply be faulty. There is also a 'flow' mode where all tracks are sent in a continuous stream, similar to a webradio. Note that this mode can be brittle with regard to track position. In 'flow' mode, metadata are likely not to be sent, unlesss player supports 'icy' protocol.

For AirPlay, the audio can be re-encoded using ALAC or left as raw PCM. Note that bridging also works with AppleTV, but you need to create a pairing key. This is done by launching the application with the -l option and following instructions. A config file with the required <raop_credentials> tag is automatically written to the directory from which the application was launched and will be required for further use. For software-based AirPlay emulators like most cheap knock-off, encryption is required (see below)

Please read carefully the credentials paragraph to understand how to handle Spotify credentials

Installing

  1. Pre-built binaries are in the SpotConnect-X.Y.Z.zip file (both spotupnp or spotraop), use the version that matches your OS. You can also look at releases

    • For AirPlay, the file is spotraop-<os>-<platform> (so spotraop-linux-aarch64 for AirPlay on Linux + arm64 CPU)
    • For UPnP/Sonos, the file is spotupnp-<os>-<platform> (so spotupnp-macos-arm64 for UPnP/Sonos on macOS + arm CPU)
  2. Store the <executable> (e.g. spotupnp-linux-aarch64multi) in any directory.

  3. OS-specific steps:

    • macOS: Install openSSL and do the following steps to use the dynamic load library version:

      • install openssl: brew install openssl. This creates libraries (or at least links) into /usr/local/opt/openssl[/x.y.z]/lib where optional 'x.y.z' is a version number
      • create links to these libraries:
      ln -s /usr/local/opt/openssl[/x.y.z]/lib/libcrypto.dylib /usr/local/lib/libcrypto.dylib 
      ln -s /usr/local/opt/openssl[/x.y.z]/lib/libssl.dylib /usr/local/lib/libssl.dylib 
      
    • Non-Windows machines (including macOS), open a terminal and change directories to where the executable is stored and run chmod +x <executable>. (Example: chmod +x spotupnp-osx-multi). Note that if you choose to download the whole repository (instead of individual files) from you web browser and then unzip it, then in the bin/ sub-directory, file permissions should be already set.

    • Windows: Copy all the .dll as well if you want to use the non-static version or use the Windows MSVC package

  4. Don't use firewall or set ports using options below and open them.

    • Each device uses 1 port for HTTP (use -a parameter, default is random)
    • UPnP adds one extra port for discovery (use -b or <upnp_socket> parameter, default is 49152 and user value must be above this)
  5. In Docker, you must use 'host' mode to enable audio webserver. Note that you can't have a NAT between your devices and the machine where AirConnect runs.

Running

Double click the <executable> or launch it by typing ./<executable> in the same command line window.

You should start to see lots of log messages on screen. Using your iOS/Mac/iTunes/Airfoil/other client, you should now see new AirPlay devices and can try to play audio to them.

If it works, type exit, which terminates the executable, and then, on non-Windows/MacOS machines, relaunch it with -z so that it can run in the background and you can close the command line window. You can also start it automatically using any startup script or a Linux service as explained below. Nothing else should be required, no library or anything to install.

For each platform, there is a normal and a '-static' version. This one includes all libraries directly inside the application, so normally there is no dependence to 3rd party shared libraries, including SSL. You can try it if the normal fails to load (especially on old systems), but static linkage is a blessing a curse (exact reasons out of scope of this README). Now, if the static version still does not work, there are other solutons that are pretty technical, see here. Best is that you open an issue if you want help with tha

Common information:

Use -h for command line details

  • When started in interactive mode (w/o -Z or -z option) a few commands can be typed at the prompt
    • exit
    • save <file> : save the current configuration in file named [name]
  • Volume changes made in native control applications are synchronized with Spotify controller
  • Pause made using native control application is sent back to Spotify
  • Re-scan for new / lost players happens every 30s
  • A config file (default config.xml) can be created for advanced tweaking (a reference version can be generated using the -i <file> command line). To specify a config file, use -x <file>.
  • When you have more than one ethernet card, you case use -b [ip|iface] to set what card to bind to. Note that 0.0.0.0 is not authorized
  • Use -l for AppleTV pairing mode
  • Use -L to set password for AirPlay devices (these password will be stored obfuscated in .xml config file)
  • Use -b [ip|iface][:port] to set network interface (ip@ or interface name as reported by ifconfig/ipconfig) to use and, for spotupnp only, UPnP port to listen to (must be above the default 49152)
  • Use -r to set Spotify's Vorbis encoding rate
  • Use -N "<format>" to change the default name of Spotify players (the player name followed by '+' by default). It's a C-string format where '%s' is the player's name, so default is "%s+"
  • Use -a <port>[:<count>]to specify a port range (default count is 128)
  • Use of -z disables interactive mode (no TTY) and self-daemonizes (use -p <file> to get the PID). Use of -Z only disables interactive mode
  • Do not daemonize (using & or any other method) the executable w/o disabling interactive mode (-Z), otherwise it will consume all CPU. On Linux, FreeBSD and Solaris, best is to use -z. Note that -z option is not available on MacOS or Windows

Config file parameters

The default configuration file is config.xml, stored in the same directory as the <executable>. Each of "Common" parameters below can be set in the <common> section to apply to all devices. It can also be set in any <device> section to apply only to a specific device and overload the value set in <common>. Use the -x <config> command line option to use a config file of your choice.

Common

  • enabled <0|1> : in common section, enables new discovered players by default. In a dedicated section, enables the player
  • name : The name that will appear for the device in AirPlay. You can change the default name.
  • vorbis_rate <96|160|320> : set the Spotify bitrate
  • remove_timeout <-1|n> : set to -1 to avoid removing devices prematurely
UPnP
  • upnp_max : set the maximum UPnP version use to search players (default 1)
  • artwork : an URL to a fixed artwork to be displayed on player in flow mode
  • flow : enable flow mode
  • gapless : use UPnP gapless mode (if players supports it)
  • http_content_length : same as -g command line parameter
  • codec mp3[:<bitrate>]|aac[:<bitrate>]|vorbis[:<bitrate>]|opus[:<bitrate>]|flc[:0..9]|wav|pcm: format used to send HTTP audio. FLAC is recommended but uses more CPU (pcm only available for UPnP). For example, mp3:320 for 320Kb/s MP3 encoding.
  • use_filecache: cache the whole track on disk (see this section)

AirPlay

  • alac_encode <0|1>: format used to send audio (0 = PCM, 1 = ALAC)
  • encryption <0|1>: most software-based player and cheap knock-off require encryption to be activated otherwise they won't stream.

Apple TV

  • raop_credentials : Apple TV pairing credential obtained from running in -l pairing mode

Global

These are set in the main <spotraop> section:

  • log_limit <-1|n> : (default -1) when using log file (-f parameter), limits its size to 'n' MB (-1 = no limit)
  • max_players : set the maximum of players (default 32)
  • ports <port>[:<count>] : set port range to use (see -a)
  • interface ?|<iface>|<ip> : set the network interface, ip or autodetect
  • credentials 0|1 : see below
  • credentials_path <path>: see below

There are many other parameters, to list all of them, use -i <config> to create a default config file.

Credentials

A player can be discovered using the ZeroConf protocol or can spontaneuously register to Spotify servers. When using ZeroConf, the player is by default not registered to Spotify servers and if you use a WebAPI application (e.g. an HomeAutomation service), it will not list it. Here is the reason why:

In ZeroConf, the player simply broadcasts (using mDNS) information to your local network so that a local Spotify listener can discover it, query Spotify servers to get credentials and pass these back to the player which then will register to the servers. This is why you don't need to enter any credentials for the player. It's convenient because only the listener stores the sensitive credentials but again, this means that the player will not be "standby" on Spotify servers.

There is also a way for players to store credentials and immediately register to Spotify servers upon startup. You can either pass your username (-U) and password (-P) on the command line so that SpotConnect has the full information to register, but it's not ideal in term of security and you have to make sure the script that launches it is not readable by unauthorized users. Luckily, Spotify provides a mechansim by which their servers provide device-specific reusable credentials in a form of a token which is less sensitive. SpotConnect can query and store these, using two different methods:

1- Store credentials in the config file: using the -j command line option, SpotConnect reads the .xml config file for <credentials> JSON tag and uses it to register. When SpotConnect receives such reusable credentials from Spotify, it will also store them into the config file, of course assuming that the -I option is set to authorize its update. Note that the '-j' on command line is equivalent to the root tag <credentials> of the config file. It's a global enablement parameter and cannot be set per player.

2- Store credentials in separated files: using the -J <path> command line option, SpotConnect writes and read such reusable credentials in files named spotraop-XXXXXXXX.json (respectively spotupnp...). The root tag <credentials_path> in config file is equivalent to the -J command line to set base path for these files. This can be a slightly better option to secure such credentials (which again are less sensitive, they won't allow access to your account).

SpotConnect can only write reusable credentials when it obtains it. This can done either by running it once with -U and -P and wait for all UPnP/AirPlay players to be discovered, or by playing something onto each player at least once using (e.g.) Spotify desktop application. Of course, at least one of -J or -j' and -I options must be used to allow storage of these credentials.

So for example, if you set -J, and a credentials files is found, it will be used to register directly onto servers. If there is no file, this SpotConnect player will remain in ZeroConf mode until it is discovered by Spotify desktop application at which time credentials are received and stored and so next time it will register right away.

I don't know for how long these reusable credentials are valid. In case they become unusable, you can just use -U and -P on command line, it will force re-acquisition, or you can delete the credential files and erase the <credentials> tags in the config file. Note that if you use -J and -j at the same time, per-player files and config file will be updated but the credentials found in dedicated files have precedence.

Start automatically in Linux

  1. Create a file in /etc/systemd/system, e.g. airupnp.service with the following content (assuming the airupnp binary is in /var/lib/airconnect)
[Unit]  
Description=Spotify bridge  
After=network-online.target  
Wants=network-online.target  

[Service]  
ExecStart=/var/lib/spotconnect/spotupnp-linux-arm -Z -x /var/lib/airconnect/spotupnp.xml   
Restart=on-failure  
RestartSec=30  

[Install]  
WantedBy=multi-user.target   
  1. Enable the service sudo systemctl enable spotupnp.service

  2. Start the service sudo service spotupnp start

To start or stop manually the service, type sudo service spotupnp start|stop in a command line window

To disable the service, type sudo systemctl disable spotupnp.service

To view the log, journalctl -u spotupnp.service

On rPi lite, add the following to the /boot/cmdline.txt: init=/bin/systemd

Start automatically in macOS (credits @aiwipro)

Create the file com.spotupnp.bridge.plist in ~/Library/LaunchAgents/

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.spotupnp.bridge</string>
    <key>ProgramArguments</key>
    <array>
        <string>/[path]/spotupnp-macos</string>
	<string>-Z</string>
        <string>-x</string>
        <string>/[path]/spotupnp.xml</string>
        <string>-f</string>
        <string>/[path]/spotupnp.log</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>LaunchOnlyOnce</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Where [path] is the path where you've stored the spotupnpexecutable (without the []). It can be for example Users/xxx/spotconnect where xxx is your user name

Start automatically under Windows

There are many tools that allow an application to be run as a service. You can try this one

Synology installation

N/A

Player specific hints and tips

Sonos

The upnp version is often used with Sonos players. When a Sonos group is created, only the master of that group will appear as a Spotify Connect player and others will be removed if they were already detected. If the group is later split, then individual players will re-appear.

When changing volume of a group, each player's volume is changed trying to respect the relative values. It's not perfect and stil under test now. To reset all volumes to the same value, simply move the cursor to 0 and then to the new value. All players will have the same volume then. You need to use the Sonos application to change individual volumes.

To identify your Sonos players, pick an identified IP address, and visit the Sonos status page in your browser, like http://192.168.1.126:1400/support/review. Click Zone Players and you will see the identifiers for your players in the UUID column.

Bose SoundTouch

@chpusch has found that Bose SoundTouch work well including synchonisation (as for Sonos, you need to use Bose's native application for grouping / ungrouping). I don't have a SoundTouch system so I cannot do the level of slave/master detection I did for Sonos

Pioneer/Phorus/Play-Fi

Some of these speakers only support mp3

Misc tips

  • When players disappear regularly, it might be that your router is filtering out multicast packets. For example, for a Asus AC-RT68U, you have to login by ssh and run echo 0 > /sys/class/net/br0/bridge/multicast_snooping but it does not stay after a reboot.

  • Lots of users seems to have problem with Unify and broadcasting / finding players. Here is a guide https://www.neilgrogan.com/ubnt-sonos/ made by somebody who fixes the issue for his Sonos

  • Some older Avahi distributions grab the port mDNS port 5353 for exclusive use, preventing SpotConnect to respond to queries. Please set disallow-other-stacks=noin /etc/avahi/avahi-daemon.conf

  • If the non-static version fails to load complaining that GLIBCXX_3.4.29 is missing, please have a look there and use the existing libraries I've provided in that repository. You can simply copy the right libstdc++.so.6.0.29 in the directory where AirConnect is and create symlink for libstdc++.so and libstdc++.so.6, then use the LD_LIBRARY_PATH='$ORIGIN' <app> trick, it will work without messing anything in your system.

HTTP & UPnP specificities

HTTP content-length and transfer modes

Lots of UPnP player have very poor quality HTTP and UPnP stacks, in addition of UPnP itself being a poorly defined/certified standard. One of the main difficulty comes from the fact that AirConnect cannot provide the length of the file being streamed as Spotify does not provide it.

The HTTP standard is clear that the "content-length" header is optional and can be omitted when server does not know the size of the source. If the client is HTTP 1.1 there is another possibility which is to use "chunked" mode where the body of the message is divided into chunks of variable length. This is explicitely made for case of unknown source length and an HTTP client that claims to support 1.1 must support chunked-encoding.

The default mode of SpotUPnP is "chunked-encoding" (<http_content_length> = -3) but unfortunately some players who claim to be HTTP 1.1 do not support it. You can then try "no length" (<http_content_length> = -1). Another option is add a fake content-length (<http_content_length> = 0). It is estimating the duration with a comfortable margin... When using pcm or wav, the length can be deduced from duration, so a real value is sent. The last option is -2 where a "content-length" is sent only if it can be properly calculated (wav and pcm codecs). Note that if player is HTTP 1.0 and http_header is set to -3, SpotUPnP will fallback no content-length. The command line option -g has the same effect that <http_content_length> in the <common> section of a config file.

All this might still not work as some players do not understand that the source is not a randomly accessible (searchable) file and want to get the first(e.g.) 128kB to try to do some smart guess on the length, close the connection, re-open it from the beginning and expect to have the same content. I'm trying to keep a buffer of last recently sent bytes to be able to resend-it, but that does not always works. Normally, players should understand that when they ask for a range and the response is 200 (full content), it means the source does not support range request but some don't.

To add insult to injury, when pausing some players close the connection and re-open it upon resume, but want the whole resource again, they can't even bother do a range-request starting at the last byte they received. That happens regardless of how you've instructed them that they should NOT do that. The only option is then to cache the whole track, which I can't do in memory, so in that case use the option use_filecache (or -C on command line) to have the whole track buffered on disk (in system tmp's). Now, even that might not suffice in chunked-encoding mode, these players WANT a track size to be able to pause. So in that case you need use HTTP mode 0 as well.

UPnP is a boatload of crap, unfortunately...

Compiling from source

It's a CMake-oriented build, and there is a bash script (built.sh) and Windows one (build.cmd). The bash script is intended for cross-platform build and you might be able to call directly your native compiler, but have a look at the command line in the build.sh to make sure it can work.

Please see here to know how to rebuild my apps in general

More precisely, here are the steps you should take:

  • Install libraries and tools
sudo apt-get install cmake
sudo apt-get install libmbedtls-dev
sudo apt-get install python3-protobuf
sudo apt-get install protobuf-compiler
  • Download source code
cd ~
git clone http://github.com/philippe44/spotconnect
cd ~/spotconnect && git submodule update --init
cd ~/spotconnect/common/cspot && git submodule update --init --recursive

NB: you can speed up all clonings by a lot by adding --depth 1 option to just to a shallow clone (you probably don't need all the commits)

  • Build makefiles
cd ~/spotconnect/spotupnp && mkdir build 
cd ~/spotconnect/spotupnp/build && rm -rf * && cmake .. [-DHOST=<linux|freefbs|solaris|macos>] [-DPLATFORM=<x86|x86_64|arm|armv5|armv6|arm|aarch74|sparc|mips>]

NB: with some older version of cmake, guessing the compiler made by root CMakefile.txt might fail. In such case, set the optional HOST and PLATFORM macros.

  • Build (only required step if you just change source code)
cd ~/spotconnect/spotupnp/build
make

It will probably complain a bit about some potential issues on the static version, but it should build

Credits

spotconnect's People

Contributors

nano9g avatar philippe44 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

spotconnect's Issues

Binaries for release 0.2.7

Hello @philippe44 and thank you for the great work.
Is there a chance that the latest 0.2.7 does not include x86_64 linux versions, which 0.2.6 was including?
Thank you

Unable to pair Apple TV HDs

I have an assortment of Apple TV models and was able to immediately pair the 4K. However, I have been unable to pair the HDs (model A1625). Most of the time, the output looks like this (running with -l -d all=sdebug):

pick an AppleTV or type "exit" to leave pairing mode

[IP1]      => [ID]@Apple TV 4K._raop._tcp.local
[IP2]      =>  [ID]@Apple TV HD2._raop._tcp.local
[IP3]      =>  [ID]@Apple TV HD1._raop._tcp.local

IP address: [IP3]
[17:02:12.098712] http_parse_simple:961 sock: 15, received Date: Sat, 29 Jul 2023 21:02:12 GMT
[17:02:12.099253] http_parse_simple:961 sock: 15, received Content-Length: 0
[17:02:12.099882] http_parse_simple:961 sock: 15, received Server: AirTunes/695.5.1
enter PIN code displayed on AppleTV: [PIN]
step1 ... verifying pin
please wait 5 seconds...

and then it loops back to "pick an AppleTV…"

Occasionally (maybe 1 out of 10 times?) it will say step2 ... verifying M1 but even then it never comes back with a credential string.

Please let me know what I can do to help figure out what's happening. Thank you as always!

seeking doesn't seem to work

when seeking inside track the playback is stopped and spotify is disconnecting playback device.

I HTTPstreamer.cpp:455: HTTP close 22
I HTTPstreamer.cpp:440: got HTTP connection 22
I HTTPstreamer.cpp:207: HTTP received =>
GET /stream?id=bbbb3054b6be_1 HTTP/1.1
User-Agent: Rygel/0.42.1 DLNADOC/1.50 UPnP/1.0
Accept-Encoding: identity
Connection: Keep-Alive
Host: x.x.x.107:33855
icy-metadata: 1
transferMode.dlna.org: Streaming

I HTTPstreamer.cpp:309: HTTP response =>
HTTP/1.1 200 OK
contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000
transfermode.dlna.org: streaming
Server: spot-connect
Content-Type: audio/flac
Connection: close

I HTTPstreamer.cpp:455: HTTP close 22
D MercurySession.cpp:222: Executing Mercury Request, type SEND
[20:13:32.661495] ActionHandler:560 [0x7fdee9ec9a68]: uPNP stopped
I spotify.cpp:459: Disconnecting Audio/Video playback on xxxx+
[20:13:32.661615] shadowRequest:301 [0x7fdee9ec9a68]: Stop
[20:13:32.661644] AVTStop:204 [0x7fdee9ec9a68]: uPNP stop (cookie 0x1e)
I HTTPstreamer.cpp:163: HTTP streamer bbbb3054b6be_1 stopped
I HTTPstreamer.cpp:140: deleting HTTP streamer bbbb3054b6be_1
I MercurySession.cpp:100: Disconnecting mercury session
I PlainConnection.cpp:187: Closing socket...
E MercurySession.cpp:41: Error while receiving packet: Error in read
I spotify.cpp:576: disconnecting player Audio/Video playback on xxxx+
[20:13:33.660019] ActionHandler:560 [0x7fdee9ec9a68]: uPNP stopped

AirPlay to HomePod mini only stays connected for about 30 seconds

I have SpotConnect up and running, but I'm having difficulty with the AirPlay component of spotraop. Whenever I play to my HomePod mini, the audio stops after approximately 30 seconds, but there are no error messages in the spotraop log and it seems to continue streaming from Spotify until I disconnect it.

I'm using all defaults (just running spotraop without any parameters and no config file) just to rule out any config issues. However, I have also tried the following, with the same result:

  • Changing <vorbis_rate> to 320 and 160
  • Setting <encryption> to 1
  • Increasing <read_ahead> to 2500
  • Using PCM codec (which seems to be <alac_encode>0</alac_encode>, not <codec>pam</codec> like the docs state.

The log is below, and I've marked the place where playback dropped. Please let me know if you need more information. Thanks!

$ /var/lib/spoconnect/spotraop-linux-aarch64-static
[10:25:26.125420] main:1134 Starting spotraop version: v0.1.1 (Jul 10 2023 @ 06:41:20)

[10:25:26.125711] main:1141

!!!!!!!!!!!!!!!!!! ERROR LOADING CONFIG FILE !!!!!!!!!!!!!!!!!!!!!

[10:25:26.134780] Start:903 Binding to X.Y.Z.245
[10:25:26.135383] StartActiveRemote:788 DACP port: 39181
[10:25:26.168933] AddRaopDevice:514 [0xa58e10]: creating MAC
[10:25:26.416891] AddRaopDevice:528 [0xa5a0f0]: adding renderer ([email protected]) with mac AAAA-A3093349
[10:25:26.417211] raopcl_create:713 [0x7f94031950]: using ALAC coding
I BellHTTPServer.cpp:184: Server listening on port 0
I spotify.cpp:359: Server using actual port 44415
I MDNSService.cpp:181: using built-in mDNS for HomePod+
I spotify.cpp:380: Spotify client connected for HomePod+
D Session.cpp:63: Connecting with AP <ap-gue1.spotify.com:4070>
D PlainConnection.cpp:101: Connected to spotify server
I Session.cpp:39: Received APHello response
D Session.cpp:44: Received shannon keys
D Session.cpp:82: Authorization successful
I MercurySession.cpp:42: Received packet, command: 4
D TimeProvider.cpp:15: Time synced with spotify servers
I MercurySession.cpp:42: Received packet, command: 2
I MercurySession.cpp:42: Received packet, command: 118
I MercurySession.cpp:42: Received packet, command: 27
I MercurySession.cpp:42: Received packet, command: 80
I MercurySession.cpp:42: Received packet, command: 31
D MercurySession.cpp:251: Executing Mercury Request, type SUB
I MercurySession.cpp:42: Received packet, command: 105
D MercurySession.cpp:153: Received country code US
I MercurySession.cpp:42: Received packet, command: 181
I AccessKeyFetcher.cpp:68: Access token expired, fetching new one...
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 74
I MercurySession.cpp:42: Received packet, command: 179
D MercurySession.cpp:174: Received mercury packet
D MercurySession.cpp:251: Executing Mercury Request, type SEND
D SpircHandler.cpp:59: Sent kMessageTypeHello!
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
I MercurySession.cpp:42: Received packet, command: 178
D SpircHandler.cpp:124: Notify frame
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:170: Load frame 4!
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I TrackPlayer.cpp:94: Resetting state
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: The Rind
I TrackQueue.cpp:159: Track duration: 513599
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I MercurySession.cpp:42: Received packet, command: 181
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/c6c932818921492b276b8143ab1b768c861bb4aa?1690467941_TKC46qiOok0nRK2K1GAkH30VTY4LznODBM-pZrNFcq8=
I TrackPlayer.cpp:167: Got track ID=c6c932818921492b276b8143ab1b768c861bb4aa
I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa.scdn.co/audio/c6c932818921492b276b8143ab1b768c861bb4aa?1690467941_TKC46qiOok0nRK2K1GAkH30VTY4LznODBM-pZrNFcq8=
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Everyone Else is a Stranger
I TrackQueue.cpp:159: Track duration: 651479
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I CDNAudioFile.cpp:70: Header and footer bytes received
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:235: new track will start at 0
[10:25:42.024978] shadowRequest:219 [0xa5a0f0]: spotify LOAD request
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[10:25:42.161803] raopcl_connect:996 [0x7f94031950]: local interface X.Y.Z.245
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/54ec30bd9db3509837ea4079f8453ea281182620?1690467942_yMCT3rajD3QTAATsRT_Vkbu7DWO19XkZlW2_4EkCCd0=
[10:25:49.866160] raopcl_analyse_setup:943 [0x7f94031950]: missing timing port, will get it later
[10:25:49.878780] raopcl_connect:1080 [0x7f94031950]: setting volume as part of connect -30.00
D MercurySession.cpp:251: Executing Mercury Request, type SEND
[10:25:49.900589] shadowRequest:223 [0xa5a0f0]: spotify play request
[10:25:49.953014] ActiveRemoteThread:634 raw active remote: get /ctrl-int/1/setproperty?dmcp.device-volume=-24.3012 http/1.1
host: <hostname>.local.
active-remote: 1405334755
user-agent: airplay/690.7.1


[10:25:49.953240] ActiveRemoteThread:668 [0xa5a0f0]: remote command setproperty?dmcp.device-volume=-24.3012
[10:25:49.953340] ActiveRemoteThread:726 [0xa5a0f0]: volume feedback 4 (-24.30)
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackPlayer.cpp:200: Playing
I spotify.cpp:133: trackUniqueId update  => c6c932818921492b276b8143ab1b768c861bb4aa
[10:25:50.086564] raopcl_accept_frames:416 [0x7f94031950]: begining to stream hts:0 n:1690381550.371776664
[10:25:50.086678] raopcl_accept_frames:424 [0x7f94031950]: restarting w/o pause n:1690381550.371776664, hts:74545826358816
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:249: Got next track id 0d838232fc2940e3bf4bb9050864b8e1 => <The Rind>
I spotify.cpp:169: Setting track position 138190 / 513599
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
[10:25:58.791147] raopcl_send_chunk:588 [0x7f94031950]: check n:2459411463 p:2459412676 ts:74545826741440 sn:24894
               retr: 0, avail: 0, send: 0, select: 0)
[10:26:08.811573] raopcl_send_chunk:588 [0x7f94031950]: check n:2459421483 p:2459422678 ts:74545827182496 sn:26147
               retr: 0, avail: 0, send: 0, select: 0)
**********************************
** Playback dropped around here **
**********************************
[10:26:18.814481] raopcl_send_chunk:588 [0x7f94031950]: check n:2459431486 p:2459432679 ts:74545827623552 sn:27400
               retr: 0, avail: 0, send: 0, select: 0)
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
[10:26:28.775444] raopcl_send_chunk:588 [0x7f94031950]: check n:2459441447 p:2459442672 ts:74545828064256 sn:28652
               retr: 0, avail: 0, send: 0, select: 0)
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
[10:26:38.810246] raopcl_send_chunk:588 [0x7f94031950]: check n:2459451482 p:2459452673 ts:74545828505312 sn:29905
               retr: 0, avail: 0, send: 0, select: 0)
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
D SpircHandler.cpp:129: Another player took control, pausing playback
I TrackPlayer.cpp:94: Resetting state
I TrackPlayer.cpp:249: Playing done
I spotify.cpp:104: Disconnecting HomePod+
I MercurySession.cpp:42: Received packet, command: 181
[10:26:40.912408] http_read_line:1032 disconnected on the other end 32
[10:26:40.912500] exec_request:625 [0x7f94035cf0]: response :  request failed
[10:26:40.912553] http_read_line:1032 disconnected on the other end 32
[10:26:40.912580] exec_request:625 [0x7f94035cf0]: response :  request failed
I TrackPlayer.cpp:94: Resetting state
I MercurySession.cpp:128: Disconnecting mercury session
I PlainConnection.cpp:197: Closing socket...
E PlainConnection.cpp:146: Connection lost, will need to reconnect...
E MercurySession.cpp:53: Error while receiving packet: Reconnection required
I spotify.cpp:432: disconnecting player HomePod+
exit
[10:26:41.691679] main:1252 stopping cspot devices ...
[10:26:41.691803] main:1254 stopping Raop devices ...
Segmentation fault

Spotraop does not respect port range for _spotify-connect._tcp port

When running spotraop, the spotify connect ports that are advertised via mdns are not chosen from the port range specified with the -a, the itunes control port is chosen from the range however.

When running with a firewall this prevents initial pairing of spotify credentials while the firewall is active. This can be worked around by using cli username and password or turning off the firewall, playing on each device at least once (to gen the credentials) and then turning it back on after.

It would be more ideal if the ports were chosen from the specified range however.

SpotUpnP Segmentation Error - Windows and Raspberry Pi

I manage to get a segmentation error on both my windows laptop and my raspberry pi zero2 w running Raspbian. The program launches but shuts down after a second. Sometimes some speakers are identified.

My setup consists of 5 sonos speakers/speaker pairs and my tv and soundbar both LG. One of the Sonos speakers is called "Kök". I have changed the name to "Kok" but the error seems to still be there, but I am unsure of how fastchanges are implemented in the Sonos ecosystem.

I saw in a prior issue you requested a gdb log, so I have inserted one below. I am unsure if configuration should be done differently but the same error is displayed every test. Let me know if I can do something else to find what causes the problem.

Starting program: /home/mathias/spotupnp-linux-aarch64 -r 320 -x config.xml -j -I -f log.txt
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ff7acf180 (LWP 3478)]
[New Thread 0x7ff72bf180 (LWP 3479)]
[New Thread 0x7ff6aaf180 (LWP 3480)]
[New Thread 0x7ff629f180 (LWP 3481)]
[New Thread 0x7ff5a8f180 (LWP 3482)]
[New Thread 0x7ff527f180 (LWP 3483)]
[New Thread 0x7ff4a6f180 (LWP 3484)]
[New Thread 0x7ff425f180 (LWP 3485)]
[New Thread 0x7ff39fd180 (LWP 3486)]
[New Thread 0x7ff31ed180 (LWP 3487)]
[New Thread 0x7ff29dd180 (LWP 3489)]
[New Thread 0x7ff21cd180 (LWP 3490)]
[New Thread 0x7ff19bd180 (LWP 3491)]
[New Thread 0x7ff11ad180 (LWP 3492)]
[23:08:07.381] I BellHTTPServer.cpp:194: Server listening on port 0
[New Thread 0x7ff0974180 (LWP 3495)]
[New Thread 0x7fcbfff180 (LWP 3496)]
[New Thread 0x7fcb7ef180 (LWP 3497)]
[New Thread 0x7fcafdf180 (LWP 3498)]
[New Thread 0x7fca7cf180 (LWP 3499)]
[23:08:07.436] I spotify.cpp:532: ZeroConf mode (port 44653)
[New Thread 0x7fc9fbf180 (LWP 3500)]
[23:08:07.438] I MDNSService.cpp:195: using built-in mDNS for Balkong+
[Thread 0x7ff4a6f180 (LWP 3484) exited]
[Thread 0x7ff5a8f180 (LWP 3482) exited]
[New Thread 0x7ff5a8f180 (LWP 3502)]

Thread 7 "spotupnp-linux-" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ff527f180 (LWP 3483)]
0x0000000000486e3c in notify(CSpotPlayer*, shadowEvent, std::__va_list) ()

SpotRaop - Frequent Crashes in 0.6.1

After upgrading to 0.6.1 I can't stream for more than a few minutes before SpotRaop crashes. I'm using spotraop-linux-aarch64-static on a Raspberry Pi 4B with 64-bit Raspberry Pi OS Bullseye (Linux kernel 6.1.21-v8+).

Here are logs for the two most recent crashes. Let me know if any more information would be helpful. Thanks!

📃 Crash 1: double free or corruption
spotraop-linux-aarch64-static: [17:19:14.723] I spotify.cpp:405: Spotify client launched for Kitchen HomePod
spotraop-linux-aarch64-static: [17:19:14.892] D Session.cpp:67: Connecting with AP <ap-gue1.spotify.com:4070>
spotraop-linux-aarch64-static: [17:19:14.964] D PlainConnection.cpp:101: Connected to spotify server
spotraop-linux-aarch64-static: [17:19:15.057] I Session.cpp:43: Received APHello response
spotraop-linux-aarch64-static: [17:19:15.082] D Session.cpp:48: Received shannon keys
spotraop-linux-aarch64-static: [17:19:15.171] D Session.cpp:87: Authorization successful
spotraop-linux-aarch64-static: [17:19:15.172] I MercurySession.cpp:42: Received packet, command: 4
spotraop-linux-aarch64-static: [17:19:15.172] D TimeProvider.cpp:15: Time synced with spotify servers
spotraop-linux-aarch64-static: [17:19:15.172] I MercurySession.cpp:42: Received packet, command: 2
spotraop-linux-aarch64-static: [17:19:15.172] I MercurySession.cpp:42: Received packet, command: 118
spotraop-linux-aarch64-static: [17:19:15.172] D MercurySession.cpp:251: Executing Mercury Request, type SUB
spotraop-linux-aarch64-static: [17:19:15.172] I MercurySession.cpp:42: Received packet, command: 27
spotraop-linux-aarch64-static: [17:19:15.172] D MercurySession.cpp:153: Received country code US
spotraop-linux-aarch64-static: [17:19:15.173] I MercurySession.cpp:42: Received packet, command: 80
spotraop-linux-aarch64-static: [17:19:15.173] I MercurySession.cpp:42: Received packet, command: 31
spotraop-linux-aarch64-static: [17:19:15.173] I MercurySession.cpp:42: Received packet, command: 105
spotraop-linux-aarch64-static: [17:19:15.220] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:15.272] I AccessKeyFetcher.cpp:99: Access token expired, fetching new one... 238
spotraop-linux-aarch64-static: [17:19:15.309] I MercurySession.cpp:42: Received packet, command: 74
spotraop-linux-aarch64-static: [17:19:15.309] I MercurySession.cpp:42: Received packet, command: 179
spotraop-linux-aarch64-static: [17:19:15.309] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:15.309] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:15.309] D SpircHandler.cpp:61: Sent kMessageTypeHello!
spotraop-linux-aarch64-static: [17:19:15.410] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:15.410] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:15.410] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:15.410] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:19:15.410] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:15.410] D SpircHandler.cpp:132: Notify frame
spotraop-linux-aarch64-static: [17:19:15.410] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:19:15.411] D SpircHandler.cpp:132: Notify frame
spotraop-linux-aarch64-static: [17:19:15.514] I AccessKeyFetcher.cpp:114: Access token sucessfully fetched
spotraop-linux-aarch64-static: [17:19:15.695] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:15.695] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:19:15.695] D SpircHandler.cpp:179: Load frame 91!
spotraop-linux-aarch64-static: [17:19:15.696] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:15.697] I TrackPlayer.cpp:98: Resetting state
spotraop-linux-aarch64-static: [17:19:15.714] D MercurySession.cpp:251: Executing Mercury Request, type GET
spotraop-linux-aarch64-static: [17:19:15.798] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:15.798] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:15.798] I TrackQueue.cpp:158: Track name: War of Roses
spotraop-linux-aarch64-static: [17:19:15.798] I T[17:19:16.345] shadowRequest:257 [0xa59658]: spotify LOAD request
spotraop-linux-aarch64-static: [17:19:16.451] raopcl_connect:1003 [0x7fb40098e0]: local interface [IP]
spotraop-linux-aarch64-static: rackQueue.cpp:159: Track duration: 207500
spotraop-linux-aarch64-static: [17:19:15.798] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
spotraop-linux-aarch64-static: [17:19:15.798] D TrackQueue.cpp:212: File format: 2
spotraop-linux-aarch64-static: [17:19:15.798] D TrackQueue.cpp:212: File format: 1
spotraop-linux-aarch64-static: [17:19:15.846] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:15.846] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:15.915] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:15.915] I MercurySession.cpp:42: Received packet, command: 13
spotraop-linux-aarch64-static: [17:19:15.915] I TrackQueue.cpp:252: Got audio key
spotraop-linux-aarch64-static: [17:19:15.915] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
spotraop-linux-aarch64-static: [17:19:16.130] I TrackQueue.cpp:301: Received CDN URL, https://audio-fa-tls130.spotifycdn.com/audio/8db49e5122303ef57e544364c60c17d08f402073?1701728356_up6F8tbDxNyOLEliBfXKHInTuIpHDFsT38TmlE8dUOg=
spotraop-linux-aarch64-static: [17:19:16.130] I TrackPlayer.cpp:171: Got track ID=8db49e5122303ef57e544364c60c17d08f402073
spotraop-linux-aarch64-static: [17:19:16.131] I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa-tls130.spotifycdn.com/audio/8db49e5122303ef57e544364c60c17d08f402073?1701728356_up6F8tbDxNyOLEliBfXKHInTuIpHDFsT38TmlE8dUOg=
spotraop-linux-aarch64-static: [17:19:16.231] D MercurySession.cpp:251: Executing Mercury Request, type GET
spotraop-linux-aarch64-static: [17:19:16.289] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:16.289] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:16.289] I TrackQueue.cpp:158: Track name: bb (four missed texts)
spotraop-linux-aarch64-static: [17:19:16.289] I TrackQueue.cpp:159: Track duration: 244506
spotraop-linux-aarch64-static: [17:19:16.289] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
spotraop-linux-aarch64-static: [17:19:16.289] D TrackQueue.cpp:212: File format: 2
spotraop-linux-aarch64-static: [17:19:16.289] D TrackQueue.cpp:212: File format: 1
spotraop-linux-aarch64-static: [17:19:16.344] I CDNAudioFile.cpp:70: Header and footer bytes received
spotraop-linux-aarch64-static: [17:19:16.345] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:16.365] I MercurySession.cpp:42: Received packet, command: 13
spotraop-linux-aarch64-static: [17:19:16.365] I TrackQueue.cpp:252: Got audio key
spotraop-linux-aarch64-static: [17:19:16.365] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
spotraop-linux-aarch64-static: [17:19:16.491] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:16.491] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:16.576] I TrackQueue.cpp:301: Received CDN URL, https://audio-fa-tls130.spotifycdn.com/audio/b47ad867f18b1985f36969c78e9372b96adf7e9e?1701728356_TdACT8ZHUNaFZRiCXHcKG6TZK_9INdJw2WYyAb7AbYs=
spotraop-linux-aarch64-static: [17:19:16.676] D MercurySession.cpp:251: Executing Mercury Request, type GET
spotraop-linux-aarch64-static: [17:19:16.738] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:16.738] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:16.739] I TrackQueue.cpp:158: Track name: For You
spotraop-linux-aarch64-static: [17:19:16.739] I TrackQueue.cpp:159: Track duration: 283132
spotraop-linux-aarch64-static: [17:19:16.739] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
spotraop-linux-aarch64-static: [17:19:16.739] D TrackQueue.cpp:212: File format: 2
spotraop-linux-aarch64-static: [17:19:16.739] D TrackQueue.cpp:212: File format: 1
spotraop-linux-aarch64-static: [17:19:16.803] I MercurySession.cpp:42: Received packet, command: 13
spotraop-linux-aarch64-static: [17:19:16.803] I TrackQueue.cpp:252: Got audio key
spotraop-linux-aarch64-static: [17:19:16.803] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
spotraop-linux-aarch64-static: [17:19:16.989] I TrackQueue.cpp:301: Received CDN URL, https://audio-fa-tls130.spotifycdn.com/audio/64f[17:19:17.214] raopcl_analyse_setup:950 [0x7fb40098e0]: missing timing port, will get it later
spotraop-linux-aarch64-static: [17:19:17.511] raopcl_connect:1087 [0x7fb40098e0]: setting volume as part of connect -30.00
spotraop-linux-aarch64-static: [17:19:17.541] shadowRequest:261 [0xa59658]: spotify PLAY request
spotraop-linux-aarch64-static: [17:19:17.863] raopcl_accept_frames:417 [0x7fb40098e0]: begining to stream hts:0 n:1701641957.3707617633
spotraop-linux-aarch64-static: [17:19:17.863] raopcl_accept_frames:425 [0x7fb40098e0]: restarting w/o pause n:1701641957.3707617633, hts:75042410341768
spotraop-linux-aarch64-static: [17:19:18.788] raopcl_send_chunk:589 [0x7fb40098e0]: check n:834909572 p:834910791 ts:75042410381544 sn:9271
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:19:19.038] GetArtworkThread:322 got artwork for https://i.scdn.co/image/ab67616d00001e027a7c4a1bb280b7f5d234b693
spotraop-linux-aarch64-static: [17:19:19.052] exec_request:663 [0x7fb400dcc0]: <------ : request failed, error P1.
spotraop-linux-aarch64-static: [17:19:19.052] exec_request:663 [0x7fb400dcc0]: <------ : request failed, error RTS/020ODate:
spotraop-linux-aarch64-static: [17:19:19.417] shadowRequest:275 [0xa59658]: spotify VOLUME request -28.125429
spotraop-linux-aarch64-static: [17:19:19.939] shadowRequest:275 [0xa59658]: spotify VOLUME request -26.250401
spotraop-linux-aarch64-static: [17:19:20.682] shadowRequest:275 [0xa59658]: spotify VOLUME request -24.375372
spotraop-linux-aarch64-static: [17:19:21.823] shadowRequest:275 [0xa59658]: spotify VOLUME request -22.500343
spotraop-linux-aarch64-static: [17:19:22.099] shadowRequest:275 [0xa59658]: spotify VOLUME request -20.625315
spotraop-linux-aarch64-static: [17:19:22.330] shadowRequest:275 [0xa59658]: spotify VOLUME request -18.750286
spotraop-linux-aarch64-static: 9fc23660262da87d20120ea928dcdcd885d5e?1701728356_W5BB31MfK37EoJwgm3_6PiRPk3Gnmv6wyv4v90obhCw=
spotraop-linux-aarch64-static: [17:19:17.539] I spotify.cpp:251: new track will start at 4973
spotraop-linux-aarch64-static: [17:19:17.540] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:17.700] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:17.700] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:17.863] I TrackPlayer.cpp:206: Playing
spotraop-linux-aarch64-static: [17:19:17.863] I spotify.cpp:144: trackUniqueId update  => 8db49e5122303ef57e544364c60c17d08f402073
spotraop-linux-aarch64-static: [17:19:18.905] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:18.905] I spotify.cpp:483: started track id 9e9facb41866430e9aef714cc46fbe94 => <War of Roses>
spotraop-linux-aarch64-static: [17:19:19.049] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:19.049] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:19.049] I spotify.cpp:460: Setting track position 4973 / 207500
spotraop-linux-aarch64-static: [17:19:19.052] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:19.219] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:19.219] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:19.415] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:19.415] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:19:19.416] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:19.552] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:19.552] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:19.937] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:19.937] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:19:19.937] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:20.077] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:20.077] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:20.681] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:20.681] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:19:20.681] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:20.817] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:20.817] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:21.821] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:21.821] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:19:21.821] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:21.965] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:21.965] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:22.097] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:22.098] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:19:22.098] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:22.328] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:22.328] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:22.328] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:19:22.328] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:22.330] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:22.619] shadowRequest:275 [0xa59658]: spotify VOLUME request -16.875257
spotraop-linux-aarch64-static: [17:19:28.796] raopcl_send_chunk:589 [0x7fb40098e0]: check n:834919580 p:834920784 ts:75042410822248 sn:10523
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:19:38.776] raopcl_send_chunk:589 [0x7fb40098e0]: check n:834929560 p:834930785 ts:75042411263304 sn:11776
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:19:48.765] raopcl_send_chunk:589 [0x7fb40098e0]: check n:834939549 p:834940787 ts:75042411704360 sn:13029
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:19:58.798] raopcl_send_chunk:589 [0x7fb40098e0]: check n:834949581 p:834950788 ts:75042412145416 sn:14282
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:20:08.768] raopcl_send_chunk:589 [0x7fb40098e0]: check n:834959551 p:834960789 ts:75042412586472 sn:15535
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:20:18.768] raopcl_send_chunk:589 [0x7fb40098e0]: check n:834969552 p:834970790 ts:75042413027528 sn:16788
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:20:28.767] raopcl_send_chunk:589 [0x7fb40098e0]: check n:834979551 p:834980784 ts:75042413468232 sn:18040
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:20:38.788] raopcl_send_chunk:589 [0x7fb40098e0]: check n:834989572 p:834990785 ts:75042413909288 sn:19293
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:20:48.802] raopcl_send_chunk:589 [0x7fb40098e0]: check n:834999585 p:835000786 ts:75042414350344 sn:20546
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:20:58.773] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835009557 p:835010787 ts:75042414791400 sn:21799
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:21:08.779] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835019562 p:835020789 ts:75042415232456 sn:23052
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:21:18.772] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835029556 p:835030790 ts:75042415673512 sn:24305
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:21:28.772] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835039556 p:835040791 ts:75042416114568 sn:25558
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:21:38.808] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835049592 p:835050785 ts:75042416555272 sn:26810
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:21:48.776] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835059560 p:835060786 ts:75042416996328 sn:28063
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:21:58.835] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835069619 p:835070787 ts:75042417437384 sn:29316
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:22:08.788] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835079572 p:835080788 ts:75042417878440 sn:30569
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:22:18.780] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835089563 p:835090790 ts:75042418319496 sn:31822
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:22:28.788] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835099572 p:835100791 ts:75042418760552 sn:33075
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:22:38.762] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835109546 p:835110784 ts:75042419201256 sn:34327
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:19:22.477] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:22.477] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:22.617] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:19:22.617] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:19:22.618] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:19:22.765] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:19:22.765] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:19:33.971] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:19:48.979] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:20:03.988] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:20:18.997] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:20:34.010] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:20:49.019] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:21:04.028] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:21:15.178] I MercurySession.cpp:42: Received packet, command: 4
spotraop-linux-aarch64-static: [17:21:15.178] D TimeProvider.cpp:15: Time synced with spotify servers
spotraop-linux-aarch64-static: [17:21:15.231] I MercurySession.cpp:42: Received packet, command: 74
spotraop-linux-aarch64-static: [17:21:19.033] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:21:34.042] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:21:49.051] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:22:04.060] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:22:19.069] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:22:34.078] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:22:40.314] I TrackPlayer.cpp:224: EOF
spotraop-linux-aarch64-static: [17:22:40.315] I TrackPlayer.cpp:255: Playing done
spotraop-linux-aarch64-static: [17:22:40.365] I TrackPlayer.cpp:171: Got track ID=b47ad867f18b1985f36969c78e9372b96adf7e9e
spotraop-linux-aarch64-static: [17:22:40.365] I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa-tls130.spotifycdn.com/audio/b47ad867f18b1985f36969c78e9372b96adf7e9e?1701728356_TdACT8ZHUNaFZRiCXHcKG6TZK_9INdJw2WYyAb7AbYs=
spotraop-linux-aarch64-static: [17:22:40.562] I CDNAudioFile.cpp:70: Header and footer bytes received
spotraop-linux-aarch64-static: [17:22:40.667] I TrackPlayer.cpp:206: Playing
spotraop-linux-aarch64-static: [17:22:40.669] I spotify.cpp:144: trackUniqueId update 8db49e5122303ef57e544364c60c17d08f402073 => b47ad867f18b1985f36969c78e9372b96adf7e9e
spotraop-linux-aarch64-static: [17:22:41.684] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:22:41.684] I spotify.cpp:483: started track id 90c681615ea1479a9b8d360ffed7e0b0 => <bb (four missed texts)>
spotraop-linux-aarch64-static: [17:22:41.700] D MercurySession.cpp:251: Executing Mercury Request, type GET
spotraop-linux-aarch64-static: [17:22:41.799] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:22:41.799] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:22:41.799] I TrackQueue.cpp:158: Track name: Friends and Lovers
spotraop-linux-aarch64-static: [17:22:41.799] I TrackQueue.cpp:159: Track duration: 229367
spotraop-linux-aarch64-static: [17:22:41.799] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
spotraop-linux-aarch64-static: [17:22:41.799] D TrackQueue.cpp:212: File format: 2
spotraop-linux-aarch64-static: [17:22:41.799] D TrackQueue.cpp:212: File format: 1
spotraop-linux-aarch64-static: [17:22:41.799] I spotify.cpp:460: Setting track position 0 / 244506
spotraop-linux-aarch64-static: [17:22:41.800] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:22:41.846] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:22:41.846] D Mercury[17:22:41.854] GetArtworkThread:322 got artwork for https://i.scdn.co/image/ab67616d00001e02fcd87fd2f2ba041b25a16294
spotraop-linux-aarch64-static: [17:22:48.760] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835119544 p:835120785 ts:75042419642312 sn:35580
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:22:58.782] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835129566 p:835130787 ts:75042420083368 sn:36833
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:23:08.774] raopcl_send_chunk:589 [0x7fb40098e0]: check n:835139558 p:835140788 ts:75042420524424 sn:38086
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: *** Error in `/var/lib/spotconnect/spotraop-linux-aarch64-static': double free or corruption (!prev): 0x0000007f800c86b0 ***
spotraop-linux-aarch64-static: ======= Backtrace: =========
spotraop-linux-aarch64-static: [0x829944]
spotraop-linux-aarch64-static: [0x82ee08]
spotraop-linux-aarch64-static: [0x467d10]
spotraop-linux-aarch64-static: [0x40d974]
spotraop-linux-aarch64-static: [0x43eb88]
spotraop-linux-aarch64-static: [0x40ab84]
spotraop-linux-aarch64-static: [0x759574]
spotraop-linux-aarch64-static: [0x84c4c0]
spotraop-linux-aarch64-static: ======= Memory map: ========
spotraop-linux-aarch64-static: 00400000-00a0b000 r-xp 00000000 08:02 2064                               /var/lib/spotconnect/spotraop-linux-aarch64-static
spotraop-linux-aarch64-static: 00a1a000-00a5a000 rw-p 0060a000 08:02 2064                               /var/lib/spotconnect/spotraop-linux-aarch64-static
spotraop-linux-aarch64-static: 00a5a000-00a8b000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 0b6aa000-0b6ed000 rw-p 00000000 00:00 0                                  [heap]
spotraop-linux-aarch64-static: 7f80000000-7f800d8000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f800d8000-7f84000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f84000000-7f84021000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f84021000-7f88000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f88000000-7f88021000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f88021000-7f8c000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8c000000-7f8c021000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8c021000-7f90000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f93800000-7f93801000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f93801000-7f94000000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f94000000-7f94025000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f94025000-7f98000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f98000000-7f98031000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f98031000-7f9c000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f9c000000-7f9c025000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f9c025000-7fa0000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa0000000-7fa0001000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa0001000-7fa0800000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa0800000-7fa0801000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa0801000-7fa1000000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa1000000-7fa1001000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa1001000-7fa1800000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa1800000-7fa1801000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa1801000-7fa2000000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa2000000-7fa2001000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa2001000-7fa2800000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa2800000-7fa2801000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa2801000-7fa3000000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa3000000-7fa3001000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa3001000-7fa3800000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa3800000-7fa3801000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa3801000-7fa4000000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa4000000-7fa4025000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa4025000-7fa8000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa8000000-7fa8025000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa8025000-7fac000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fac000000-7fac031000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fac031000-7fb0000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb0000000-7fb002f000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb002f000-7fb4000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb4000000-7fb4029000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb4029000-7fb8000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb8531000-7fb8554000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb8554000-7fb8555000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb8555000-7fb8d54000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb8d54000-7fb8d55000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb8d55000-7fb9554000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb9554000-7fb9555000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb9555000-7fb9d7d000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb9d7d000-7fb9d7e000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fb9d7e000-7fba57d000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fba57d000-7fba57e000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fba57e000-7fbad7d000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fbad7d000-7fbad7e000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fbad7e000-7fbb57d000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fbb57d000-7fbb57e000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fbb57e000-7fbbd7d000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fbbd7d000-7fbbd7e000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fbbd7e000-7fbc57d000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fbc57d000-7fbc57f000 r--p 00000000 00:00 0                              [vvar]
spotraop-linux-aarch64-static: 7fbc57f000-7fbc580000 r-xp 00000000 00:00 0                              [vdso]
spotraop-linux-aarch64-static: 7fc5fdc000-7fc5ffd000 rw-p 00000000 00:00 0                              [stack]
spotraop-linux-aarch64-static: Session.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:22:41.904] I MercurySession.cpp:42: Received packet, command: 13
spotraop-linux-aarch64-static: [17:22:41.904] I TrackQueue.cpp:252: Got audio key
spotraop-linux-aarch64-static: [17:22:41.904] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
spotraop-linux-aarch64-static: [17:22:41.994] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:22:41.994] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:22:42.078] I TrackQueue.cpp:301: Received CDN URL, https://audio-fa-tls130.spotifycdn.com/audio/8c4c3ec6819d865b39184e223da35d7c1246a8be?1701728562_JYp-2_3S36QWgyY9SKCmCqPztORTpdFPJwdEf_VnSjw=
spotraop-linux-aarch64-static: [17:22:56.801] D spotify.cpp:451: keepAlive Kitchen HomePod
systemd[1]: spotraop.service: Main process exited, code=killed, status=6/ABRT
spotraop-linux-aarch64-static: [17:23:11.809] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:23:15.189] I MercurySession.cpp:42: Received packet, command: 4
spotraop-linux-aarch64-static: [17:23:15.189] D TimeProvider.cpp:15: Time synced with spotify servers
spotraop-linux-aarch64-static: [17:23:15.242] I MercurySession.cpp:42: Received packet, command: 74
systemd[1]: spotraop.service: Failed with result 'signal'.
systemd[1]: spotraop.service: Consumed 32.058s CPU time.
systemd[1]: spotraop.service: Scheduled restart job, restart counter is at 1.
systemd[1]: Stopped Spotify to AirPlay Bridge.
systemd[1]: spotraop.service: Consumed 32.058s CPU time.
systemd[1]: Started Spotify to AirPlay Bridge.
spotraop-linux-aarch64-static[2943331]: [17:23:45.427] main:1222 Starting spotraop version: v0.6.1 (Dec  2 2023 @ 00:43:51)
📃 Crash 2: free(): invalid next size
spotraop-linux-aarch64-static: [17:24:03.625] I spotify.cpp:405: Spotify client launched for Kitchen HomePod
spotraop-linux-aarch64-static: [17:24:03.780] D Session.cpp:67: Connecting with AP <ap-gue1.spotify.com:4070>
spotraop-linux-aarch64-static: [17:24:03.853] D PlainConnection.cpp:101: Connected to spotify server
spotraop-linux-aarch64-static: [17:24:03.931] I Session.cpp:43: Received APHello response
spotraop-linux-aarch64-static: [17:24:03.947] D Session.cpp:48: Received shannon keys
spotraop-linux-aarch64-static: [17:24:04.036] D Session.cpp:87: Authorization successful
spotraop-linux-aarch64-static: [17:24:04.037] I MercurySession.cpp:42: Received packet, command: 4
spotraop-linux-aarch64-static: [17:24:04.037] D TimeProvider.cpp:15: Time synced with spotify servers
spotraop-linux-aarch64-static: [17:24:04.037] I MercurySession.cpp:42: Received packet, command: 2
spotraop-linux-aarch64-static: [17:24:04.037] I MercurySession.cpp:42: Received packet, command: 118
spotraop-linux-aarch64-static: [17:24:04.037] D MercurySession.cpp:251: Executing Mercury Request, type SUB
spotraop-linux-aarch64-static: [17:24:04.037] I MercurySession.cpp:42: Received packet, command: 27
spotraop-linux-aarch64-static: [17:24:04.037] D MercurySession.cpp:153: Received country code US
spotraop-linux-aarch64-static: [17:24:04.037] I MercurySession.cpp:42: Received packet, command: 80
spotraop-linux-aarch64-static: [17:24:04.037] I MercurySession.cpp:42: Received packet, command: 31
spotraop-linux-aarch64-static: [17:24:04.037] I MercurySession.cpp:42: Received packet, command: 105
spotraop-linux-aarch64-static: [17:24:04.088] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:04.137] I AccessKeyFetcher.cpp:99: Access token expired, fetching new one... 238
spotraop-linux-aarch64-static: [17:24:04.180] I MercurySession.cpp:42: Received packet, command: 74
spotraop-linux-aarch64-static: [17:24:04.180] I MercurySession.cpp:42: Received packet, command: 179
spotraop-linux-aarch64-static: [17:24:04.180] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:04.180] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:04.180] D SpircHandler.cpp:61: Sent kMessageTypeHello!
spotraop-linux-aarch64-static: [17:24:04.277] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:04.277] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:04.277] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:24:04.277] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:04.277] D SpircHandler.cpp:132: Notify frame
spotraop-linux-aarch64-static: [17:24:04.277] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:24:04.277] D SpircHandler.cpp:132: Notify frame
spotraop-linux-aarch64-static: [17:24:04.277] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:04.346] I AccessKeyFetcher.cpp:114: Access token sucessfully fetched
spotraop-linux-aarch64-static: [17:24:04.418] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:04.418] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:24:04.419] D SpircHandler.cpp:179: Load frame 90!
spotraop-linux-aarch64-static: [17:24:04.419] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:04.420] I TrackPlayer.cpp:98: Resetting state
spotraop-linux-aarch64-static: [17:24:04.446] D MercurySession.cpp:251: Executing Mercury Request, type GET
spotraop-linux-aarch64-static: [17:24:04.532] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:04.532] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:04.532] I TrackQueue.cpp:158: Track name: bb (four missed texts)
spotraop-linux-aarch64-static: [17:24:04.532] [17:24:05.042] shadowRequest:257 [0xa59658]: spotify LOAD request
spotraop-linux-aarch64-static: [17:24:05.146] raopcl_connect:1003 [0x7f9c009c80]: local interface [IP]
spotraop-linux-aarch64-static: I TrackQueue.cpp:159: Track duration: 244506
spotraop-linux-aarch64-static: [17:24:04.532] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
spotraop-linux-aarch64-static: [17:24:04.532] D TrackQueue.cpp:212: File format: 2
spotraop-linux-aarch64-static: [17:24:04.532] D TrackQueue.cpp:212: File format: 1
spotraop-linux-aarch64-static: [17:24:04.582] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:04.582] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:04.675] I MercurySession.cpp:42: Received packet, command: 13
spotraop-linux-aarch64-static: [17:24:04.675] I TrackQueue.cpp:252: Got audio key
spotraop-linux-aarch64-static: [17:24:04.675] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
spotraop-linux-aarch64-static: [17:24:04.855] I TrackQueue.cpp:301: Received CDN URL, https://audio-fa-tls130.spotifycdn.com/audio/b47ad867f18b1985f36969c78e9372b96adf7e9e?1701728644_4a2TlmYdTXVbrcpvn-A9MJj9bhNNwsaOkJqJd_tpqKU=
spotraop-linux-aarch64-static: [17:24:04.855] I TrackPlayer.cpp:171: Got track ID=b47ad867f18b1985f36969c78e9372b96adf7e9e
spotraop-linux-aarch64-static: [17:24:04.855] I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa-tls130.spotifycdn.com/audio/b47ad867f18b1985f36969c78e9372b96adf7e9e?1701728644_4a2TlmYdTXVbrcpvn-A9MJj9bhNNwsaOkJqJd_tpqKU=
spotraop-linux-aarch64-static: [17:24:04.955] D MercurySession.cpp:251: Executing Mercury Request, type GET
spotraop-linux-aarch64-static: [17:24:05.009] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:05.009] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:05.009] I TrackQueue.cpp:158: Track name: For You
spotraop-linux-aarch64-static: [17:24:05.009] I TrackQueue.cpp:159: Track duration: 283132
spotraop-linux-aarch64-static: [17:24:05.009] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
spotraop-linux-aarch64-static: [17:24:05.010] D TrackQueue.cpp:212: File format: 2
spotraop-linux-aarch64-static: [17:24:05.010] D TrackQueue.cpp:212: File format: 1
spotraop-linux-aarch64-static: [17:24:05.041] I CDNAudioFile.cpp:70: Header and footer bytes received
spotraop-linux-aarch64-static: [17:24:05.041] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:05.078] I MercurySession.cpp:42: Received packet, command: 13
spotraop-linux-aarch64-static: [17:24:05.078] I TrackQueue.cpp:252: Got audio key
spotraop-linux-aarch64-static: [17:24:05.078] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
spotraop-linux-aarch64-static: [17:24:05.171] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:05.171] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:05.265] I TrackQueue.cpp:301: Received CDN URL, https://audio-fa-tls130.spotifycdn.com/audio/64f9fc23660262da87d20120ea928dcdcd885d5e?1701728645_k4CS78DyvMSF3yTn7mVMqQUMkn5p7ob_RmGy7BCzayE=
spotraop-linux-aarch64-static: [17:24:05.365] D MercurySession.cpp:251: Executing Mercury Request, type GET
spotraop-linux-aarch64-static: [17:24:05.427] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:05.427] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:05.427] I TrackQueue.cpp:158: Track name: Friends and Lovers
spotraop-linux-aarch64-static: [17:24:05.427] I TrackQueue.cpp:159: Track duration: 229367
spotraop-linux-aarch64-static: [17:24:05.427] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
spotraop-linux-aarch64-static: [17:24:05.427] D TrackQueue.cpp:212: File format: 2
spotraop-linux-aarch64-static: [17:24:05.427] D TrackQueue.cpp:212: File format: 1
spotraop-linux-aarch64-static: [17:24:05.494] I MercurySession.cpp:42: Received packet, command: 13
spotraop-linux-aarch64-static: [17:24:05.494] I TrackQueue.cpp:252: Got audio key
spotraop-linux-aarch64-static: [17:24:05.494] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
spotraop-linux-aarch64-static: [17:24:05.657] I TrackQueue.cpp:301: Received CDN URL, https://audio-fa-tls130.spotifycdn.com/audio/8c4c3ec6819d865b39184e223da35d7c1246a8be?1701728645_LvngxRktr2OOt777_B_tuMQmMUBb4OwyeZz1UA5r6[17:24:05.677] raopcl_analyse_setup:950 [0x7f9c009c80]: missing timing port, will get it later
spotraop-linux-aarch64-static: [17:24:05.693] raopcl_connect:1087 [0x7f9c009c80]: setting volume as part of connect -30.00
spotraop-linux-aarch64-static: [17:24:05.711] shadowRequest:261 [0xa59658]: spotify PLAY request
spotraop-linux-aarch64-static: [17:24:05.834] raopcl_accept_frames:417 [0x7f9c009c80]: begining to stream hts:0 n:1701642245.3583720711
spotraop-linux-aarch64-static: [17:24:05.834] raopcl_accept_frames:425 [0x7f9c009c80]: restarting w/o pause n:1701642245.3583720711, hts:75042423041296
spotraop-linux-aarch64-static: [17:24:07.022] GetArtworkThread:322 got artwork for https://i.scdn.co/image/ab67616d00001e02fcd87fd2f2ba041b25a16294
spotraop-linux-aarch64-static: [17:24:08.810] raopcl_send_chunk:589 [0x7f9c009c80]: check n:835199594 p:835200789 ts:75042423170480 sn:9525
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:24:09.199] shadowRequest:275 [0xa59658]: spotify VOLUME request -28.125429
spotraop-linux-aarch64-static: [17:24:09.711] shadowRequest:275 [0xa59658]: spotify VOLUME request -26.250401
spotraop-linux-aarch64-static: [17:24:10.108] shadowRequest:275 [0xa59658]: spotify VOLUME request -24.375372
spotraop-linux-aarch64-static: [17:24:10.367] shadowRequest:275 [0xa59658]: spotify VOLUME request -22.500343
spotraop-linux-aarch64-static: [17:24:10.665] shadowRequest:275 [0xa59658]: spotify VOLUME request -20.625315
spotraop-linux-aarch64-static: [17:24:10.747] shadowRequest:275 [0xa59658]: spotify VOLUME request -18.750286
spotraop-linux-aarch64-static: WE=
spotraop-linux-aarch64-static: [17:24:05.711] I spotify.cpp:251: new track will start at 270
spotraop-linux-aarch64-static: [17:24:05.711] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:05.834] I TrackPlayer.cpp:206: Playing
spotraop-linux-aarch64-static: [17:24:05.834] I spotify.cpp:144: trackUniqueId update  => b47ad867f18b1985f36969c78e9372b96adf7e9e
spotraop-linux-aarch64-static: [17:24:05.868] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:05.868] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:06.869] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:06.870] I spotify.cpp:483: started track id 90c681615ea1479a9b8d360ffed7e0b0 => <bb (four missed texts)>
spotraop-linux-aarch64-static: [17:24:07.035] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:07.035] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:07.035] I spotify.cpp:460: Setting track position 270 / 244506
spotraop-linux-aarch64-static: [17:24:07.042] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:07.196] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:07.196] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:09.182] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:09.182] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:24:09.182] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:09.331] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:09.331] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:09.701] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:09.701] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:24:09.701] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:09.903] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:09.903] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:10.097] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:10.098] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:24:10.098] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:10.248] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:10.248] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:10.355] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:10.355] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:24:10.356] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:10.501] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:10.501] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:10.595] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:10.595] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:24:10.596] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:10.738] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:10.738] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:24:10.738] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:10.793] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:10.794] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:10.888] I MercurySession.cpp:42: Received packet, com[17:24:11.015] shadowRequest:275 [0xa59658]: spotify VOLUME request -16.875257
spotraop-linux-aarch64-static: [17:24:18.811] raopcl_send_chunk:589 [0x7f9c009c80]: check n:835209595 p:835210791 ts:75042423611536 sn:10778
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:24:28.791] raopcl_send_chunk:589 [0x7f9c009c80]: check n:835219575 p:835220784 ts:75042424052240 sn:12030
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: [17:24:38.785] raopcl_send_chunk:589 [0x7f9c009c80]: check n:835229569 p:835230785 ts:75042424493296 sn:13283
spotraop-linux-aarch64-static:                retr: 0, avail: 0, send: 0, select: 0)
spotraop-linux-aarch64-static: *** Error in `/var/lib/spotconnect/spotraop-linux-aarch64-static': free(): invalid next size (normal): 0x0000007f6c09efc0 ***
spotraop-linux-aarch64-static: ======= Backtrace: =========
spotraop-linux-aarch64-static: [0x829944]
spotraop-linux-aarch64-static: [0x82ee08]
spotraop-linux-aarch64-static: [0x467d10]
spotraop-linux-aarch64-static: [0x40d974]
spotraop-linux-aarch64-static: [0x43eb88]
spotraop-linux-aarch64-static: [0x40ab84]
spotraop-linux-aarch64-static: [0x759574]
spotraop-linux-aarch64-static: [0x84c4c0]
spotraop-linux-aarch64-static: ======= Memory map: ========
spotraop-linux-aarch64-static: 00400000-00a0b000 r-xp 00000000 08:02 2064                               /var/lib/spotconnect/spotraop-linux-aarch64-static
spotraop-linux-aarch64-static: 00a1a000-00a5a000 rw-p 0060a000 08:02 2064                               /var/lib/spotconnect/spotraop-linux-aarch64-static
spotraop-linux-aarch64-static: 00a5a000-00a8b000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 33cd8000-33d1b000 rw-p 00000000 00:00 0                                  [heap]
spotraop-linux-aarch64-static: 7f68000000-7f68021000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f68021000-7f6c000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f6c000000-7f6c0cb000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f6c0cb000-7f70000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f73800000-7f73801000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f73801000-7f74000000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f74000000-7f74021000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f74021000-7f78000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f78000000-7f78021000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f78021000-7f7c000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f7c000000-7f7c025000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f7c025000-7f80000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f80000000-7f80031000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f80031000-7f84000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f84000000-7f84025000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f84025000-7f88000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f88000000-7f88001000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f88001000-7f88800000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f88800000-7f88801000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f88801000-7f89000000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f89000000-7f89001000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f89001000-7f89800000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f89800000-7f89801000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f89801000-7f8a000000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8a000000-7f8a001000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8a001000-7f8a800000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8a800000-7f8a801000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8a801000-7f8b000000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8b000000-7f8b001000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8b001000-7f8b800000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8b800000-7f8b801000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8b801000-7f8c000000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8c000000-7f8c025000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f8c025000-7f90000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f90000000-7f90025000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f90025000-7f94000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f94000000-7f94031000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f94031000-7f98000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f98000000-7f9802f000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f9802f000-7f9c000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f9c000000-7f9c029000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7f9c029000-7fa0000000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa06e4000-7fa0707000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa0707000-7fa0708000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa0708000-7fa0f07000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa0f07000-7fa0f08000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa0f08000-7fa1707000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa1707000-7fa1708000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa1708000-7fa1f30000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa1f30000-7fa1f31000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa1f31000-7fa2730000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa2730000-7fa2731000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa2731000-7fa2f30000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa2f30000-7fa2f31000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa2f31000-7fa3730000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa3730000-7fa3731000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa3731000-7fa3f30000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa3f30000-7fa3f31000 ---p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa3f31000-7fa4730000 rw-p 00000000 00:00 0
spotraop-linux-aarch64-static: 7fa4730000-7fa4732000 r--p 00000000 00:00 0                              [vvar]
spotraop-linux-aarch64-static: 7fa4732000-7fa4733000 r-xp 00000000 00:00 0                              [vdso]
spotraop-linux-aarch64-static: 7feb700000-7feb721000 rw-p 00000000 00:00 0                              [stack]
spotraop-linux-aarch64-static: mand: 178
spotraop-linux-aarch64-static: [17:24:10.888] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:11.002] I MercurySession.cpp:42: Received packet, command: 181
spotraop-linux-aarch64-static: [17:24:11.002] D SpircHandler.cpp:69: Received subscription response
spotraop-linux-aarch64-static: [17:24:11.002] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotraop-linux-aarch64-static: [17:24:11.097] I MercurySession.cpp:42: Received packet, command: 178
spotraop-linux-aarch64-static: [17:24:11.097] D MercurySession.cpp:174: Received mercury packet
spotraop-linux-aarch64-static: [17:24:21.902] D spotify.cpp:451: keepAlive Kitchen HomePod
spotraop-linux-aarch64-static: [17:24:36.917] D spotify.cpp:451: keepAlive Kitchen HomePod
systemd[1]: spotraop.service: Main process exited, code=killed, status=6/ABRT
systemd[1]: spotraop.service: Failed with result 'signal'.
systemd[1]: spotraop.service: Consumed 4.760s CPU time.
systemd[1]: spotraop.service: Scheduled restart job, restart counter is at 1.
systemd[1]: Stopped Spotify to AirPlay Bridge.
systemd[1]: spotraop.service: Consumed 4.760s CPU time.
systemd[1]: Started Spotify to AirPlay Bridge.
spotraop-linux-aarch64-static[2943384]: [17:25:10.674] main:1222 Starting spotraop version: v0.6.1 (Dec  2 2023 @ 00:43:51)

Pressing pause takes around 30 seconds to be effective

Hello,
I'm running SpotConnect, on MacOS 13.5.1, simply with the command ./spotupnp-macos.

It correctly discovers locally my player. I then go to another device (an iPhone) to launch Spotify, choose the player (JBL OnBeat Air01D9BD+) and starts playing.
If I choose another track, it changes instantly.

But if I press pause on the device controlling Spotify (in my example, the iPhone), on the iPhone screen the state of the button is pause, but the music keeps playing on the JBL OnBeat Air01D9BD+. I do nothing and wait, for about 30 seconds, and it eventually pauses the music.
If I press play again, it starts again directly.

Below is a log of such scenario.
I'm not sure what's wrong: I also tried with the credentials (./spotupnp-macos -x config.xml -j -I), but the result is the same.

[16:28:40.244] main:1546 Starting stopupnp version: v0.5.0 (Nov 10 2023 @ 17:47:24)
[16:28:40.246] Start:1259 Binding to iface [email protected]:0
[16:28:40.247] Start:1273 Binding to 192.168.1.24:49152
[16:28:47.324] AddMRDevice:1185 [0x7fa7ec829000]: adding renderer (JBL OnBeat Air01D9BD) with mac BBBBBDD9015E
[16:28:47.330] MasterHandler:788 [0x7fa7ec829000]: subscribe success
[16:28:47.333] I BellHTTPServer.cpp:191: Server listening on port 0
[16:28:47.334] I spotify.cpp:556: ZeroConf mode (port 59393)
[16:28:47.341] ProcessEvent:515 [0x7fa7ec829000]: UPnP Volume local change 43:-1 (master)
[16:28:55.595] I spotify.cpp:599: Spotify client launched for JBL OnBeat Air01D9BD+
[16:28:55.643] D Session.cpp:67: Connecting with AP <ap-gew1.spotify.com:4070>
[16:28:55.651] D PlainConnection.cpp:101: Connected to spotify server
[16:28:55.666] I Session.cpp:43: Received APHello response
[16:28:55.676] D Session.cpp:48: Received shannon keys
[16:28:55.722] D Session.cpp:87: Authorization successful
[16:28:55.722] I MercurySession.cpp:42: Received packet, command: 4
[16:28:55.723] D TimeProvider.cpp:15: Time synced with spotify servers
[16:28:55.723] I MercurySession.cpp:42: Received packet, command: 2
[16:28:[55.723] I MercurySession.cpp:42: Received packet, command: 118
16:28:55.[723] D 16:MercurySession.cpp:251: 28:Executing Mercury Request, type SUB
55.723] I MercurySession.cpp:42: Received packet, command: 27
[16:28:55.723] D MercurySession.cpp:153: Received country code FR
[16:28:55.723] I MercurySession.cpp:42: Received packet, command: 80
[16:28:55.723] I MercurySession.cpp:42: Received packet, command: 31
[16:28:55.723] I MercurySession.cpp:42: Received packet, command: 105
[16:28:55.728] I MercurySession.cpp:42: Received packet, command: 181
[16:28:55.734] I MercurySession.cpp:42: Received packet, command: 74
[16:28:55.740] I MercurySession.cpp:42: Received packet, command: 179
[16:28:55.740] D MercurySession.cpp:174: Received mercury packet
[16:28:55.740] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:28:55.741] D SpircHandler.cpp:61: Sent kMessageTypeHello!
[16:28:55.800] I MercurySession.cpp:42: Received packet, command: 178
[16:28:55.800] D MercurySession.cpp:174: Received mercury packet
[16:28:55.805] I MercurySession.cpp:42: Received packet, command: 181
[16:28:55.806] I MercurySession.cpp:42: Received packet, command: 181
[16:28:55.806] D SpircHandler.cpp:69: Received subscription response
[16:28:55.806] D SpircHandler.cpp:132: Notify frame
[16:28:55.806] D SpircHandler.cpp:69: Received subscription response
[16:28:55.806] D SpircHandler.cpp:132: Notify frame
[16:28:55.827] I AccessKeyFetcher.cpp:99: Access token expired, fetching new one... 287
[16:28:55.889] I AccessKeyFetcher.cpp:114: Access token sucessfully fetched
[16:28:55.952] I MercurySession.cpp:42: Received packet, command: 181
[16:28:55.953] D SpircHandler.cpp:69: Received subscription response
[16:28:55.953] D SpircHandler.cpp:179: Load frame 50!
[16:28:55.953] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:28:55.953] I TrackPlayer.cpp:98: Resetting state
[16:28:55.990] D MercurySession.cpp:251: Executing Mercury Request, type GET
[16:28:55.998] I MercurySession.cpp:42: Received packet, command: 178
[16:28:55.998] D MercurySession.cpp:174: Received mercury packet
[16:28:55.998] I TrackQueue.cpp:158: Track name: Petit génie
[16:28:55.998] I TrackQueue.cpp:159: Track duration: 217259
[16:28:55.998] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
[16:28:55.998] D TrackQueue.cpp:212: File format: 2
[16:28:55.998] D TrackQueue.cpp:212: File format: 1
[16:28:56.006] I MercurySession.cpp:42: Received packet, command: 13
[16:28:56.006] I TrackQueue.cpp:252: Got audio key
[16:28:56.006] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[16:28:56.046] I TrackQueue.cpp:301: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/
[16:28:56.054] I TrackPlayer.cpp:171: Got track ID=fdcf5375e92a6b8caa37d3f274d85cf3fb5cfcaf
[16:28:56.054] I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:28:56.067] I MercurySession.cpp:42: Received packet, command: 178
[16:28:56.068] D MercurySession.cpp:174: Received mercury packet
[16:28:56.151] D MercurySession.cpp:251: Executing Mercury Request, type GET
[16:28:56.161] I MercurySession.cpp:42: Received packet, command: 178
[16:28:56.161] D MercurySession.cpp:174: Received mercury packet
[16:28:56.161] I TrackQueue.cpp:158: Track name: Si No Estás
[16:28:56.161] I TrackQueue.cpp:159: Track duration: 184061
[16:28:56.161] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
[16:28:56.161] D TrackQueue.cpp:212: File format: 2
[16:28:56.161] D TrackQueue.cpp:212: File format: 1
[16:28:56.166] I CDNAudioFile.cpp:70: Header and footer bytes received
[16:28:56.166] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:28:56.167] shadowRequest:338 [0x7fa7ec829000]: Stop
[16:28:56.167] I spotify.cpp:300: new track will start at 12172
[16:28:56.168] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:28:56.168] I spotify.cpp:322: Play
[16:28:56.169] I MercurySession.cpp:42: Received packet, command: 13
[16:28:56.169] I TrackQueue.cpp:252: Got audio key
[16:28:56.169] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[16:28:56.210] I TrackQueue.cpp:301: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:28:56.261] I MercurySession.cpp:42: Received packet, command: 178
[16:28:56.261] D MercurySession.cpp:174: Received mercury packet
[16:28:56.280] I MercurySession.cpp:42: Received packet, command: 178
[16:28:56.280] D MercurySession.cpp:174: Received mercury packet
[16:28:56.311] D MercurySession.cpp:251: Executing Mercury Request, type GET
[16:28:56.314] I TrackPlayer.cpp:206: Playing
[16:28:56.314] I spotify.cpp:176: trackUniqueId update  => fdcf5375e92a6b8caa37d3f274d85cf3fb5cfcaf
[16:28:56.314] I spotify.cpp:245: new track id 287522acd0774c5eae9deacae0e6e7f0 => <Petit génie>
[16:28:56.315] I HTTPstreamer.cpp:134: Bound to port 59405
[16:28:56.315] I spotify.cpp:255: loading with id bbbb5e01d9bd_0
[16:28:56.315] shadowRequest:355 [0x7fa7ec829000]: spotify LOAD request
[16:28:56.315] AVTSetURI:77 [0x7fa7ec829000]: uPNP setURI http://192.168.1.24:59405/stream?id=bbbb5e01d9bd_0 (cookie 0x0)
[16:28:56.315] shadowRequest:369 [0x7fa7ec829000]: spotify play request
[16:28:56.315] AVTPlay:137 [0x7fa7ec829000]: uPNP play (cookie 0x1)
[16:28:56.319] I MercurySession.cpp:42: Received packet, command: 178
[16:28:56.319] D MercurySession.cpp:174: Received mercury packet
[16:28:56.319] I TrackQueue.cpp:158: Track name: LAISSE MOI
[16:28:56.319] I TrackQueue.cpp:159: Track duration: 168620
[16:28:56.319] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
[16:28:56.319] D TrackQueue.cpp:212: File format: 2
[16:28:56.319] D TrackQueue.cpp:212: File format: 1
[16:28:56.327] I MercurySession.cpp:42: Received packet, command: 13
[16:28:56.327] I TrackQueue.cpp:252: Got audio key
[16:28:56.327] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[16:28:56.366] I TrackQueue.cpp:301: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:28:57.341] ActionHandler:595 [0x7fa7ec829000]: uPNP transition
[16:28:58.425] I MercurySession.cpp:42: Received packet, command: 181
[16:28:58.425] D SpircHandler.cpp:69: Received subscription response
[16:28:58.425] D SpircHandler.cpp:179: Load frame 50!
[16:28:58.425] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:28:58.427] I TrackPlayer.cpp:98: Resetting state
[16:28:58.438] I TrackPlayer.cpp:255: Playing done
[16:28:58.438] D MercurySession.cpp:251: Executing Mercury Request, type GET
[16:28:58.448] I MercurySession.cpp:42: Received packet, command: 178
[16:28:58.448] D MercurySession.cpp:174: Received mercury packet
[16:28:58.448] I TrackQueue.cpp:158: Track name: Dog Days Are Over
[16:28:58.448] I TrackQueue.cpp:159: Track duration: 252818
[16:28:58.448] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
[16:28:58.448] D TrackQueue.cpp:212: File format: 2
[16:28:58.448] D TrackQueue.cpp:212: File format: 1
[16:28:58.459] I MercurySession.cpp:42: Received packet, command: 13
[16:28:58.459] I TrackQueue.cpp:252: Got audio key
[16:28:58.459] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[16:28:58.510] I TrackQueue.cpp:301: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:28:58.510] I TrackPlayer.cpp:171: Got track ID=10c5b543a879496d62e1d59db486696fed81fae5
[16:28:58.510] I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:28:58.517] I MercurySession.cpp:42: Received packet, command: 178
[16:28:58.517] D MercurySession.cpp:174: Received mercury packet
[16:28:58.604] I CDNAudioFile.cpp:70: Header and footer bytes received
[16:28:58.605] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:28:58.606] shadowRequest:338 [0x7fa7ec829000]: Stop
[16:28:58.606] AVTStop:203 [0x7fa7ec829000]: uPNP stop (cookie 0x3)
[16:28:58.606] I spotify.cpp:300: new track will start at 0
[16:28:58.611] D MercurySession.cpp:251: Executing Mercury Request, type GET
[16:28:58.619] I MercurySession.cpp:42: Received packet, command: 178
[16:28:58.619] D MercurySession.cpp:174: Received mercury packet
[16:28:58.620] I TrackQueue.cpp:158: Track name: Heads Will Roll
[16:28:58.620] I TrackQueue.cpp:159: Track duration: 221000
[16:28:58.620] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
[16:28:58.620] D TrackQueue.cpp:212: File format: 2
[16:28:58.620] D TrackQueue.cpp:212: File format: 1
[16:28:58.628] I MercurySession.cpp:42: Received packet, command: 13
[16:28:58.628] I TrackQueue.cpp:252: Got audio key
[16:28:58.628] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[16:28:58.644] I HTTPstreamer.cpp:147: HTTP streamer bbbb5e01d9bd_0 deleted
[16:28:58.645] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:28:58.645] I spotify.cpp:322: Play
[16:28:58.668] I TrackQueue.cpp:301: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:28:58.690] I MercurySession.cpp:42: Received packet, command: 178
[16:28:58.690] D MercurySession.cpp:174: Received mercury packet
[16:28:58.702] I TrackPlayer.cpp:206: Playing
[16:28:58.703] I spotify.cpp:176: trackUniqueId update  => 10c5b543a879496d62e1d59db486696fed81fae5
[16:28:58.703] I spotify.cpp:245: new track id 8622f5b4748e48739fe3a3459168e9d3 => <Dog Days Are Over>
[16:28:58.703] I HTTPstreamer.cpp:134: Bound to port 59414
[16:28:58.703] I spotify.cpp:255: loading with id bbbb5e01d9bd_1
[16:28:58.703] shadowRequest:355 [0x7fa7ec829000]: spotify LOAD request
[16:28:58.703] AVTSetURI:77 [0x7fa7ec829000]: uPNP setURI http://192.168.1.24:59414/stream?id=bbbb5e01d9bd_1 (cookie 0x4)
[16:28:58.704] shadowRequest:369 [0x7fa7ec829000]: spotify play request
[16:28:58.704] AVTPlay:137 [0x7fa7ec829000]: uPNP play (cookie 0x5)
[16:28:58.737] I MercurySession.cpp:42: Received packet, command: 178
[16:28:58.737] D MercurySession.cpp:174: Received mercury packet
[16:28:58.762] I HTTPstreamer.cpp:467: got HTTP connection 15
[16:28:58.762] I HTTPstreamer.cpp:210: HTTP received =>
GET /stream?id=bbbb5e01d9bd_1 HTTP/1.1
Host: 192.168.1.24:59414
Icy-MetaData: 1
Connection: close
transferMode.dlna.org: Streaming
User-Agent: WinampMPEG/2.8
Accept: */*


[16:28:58.763] I HTTPstreamer.cpp:327: HTTP response =>
HTTP/1.1 200 OK
transfermode.dlna.org: streaming
Server: spot-connect
Content-Type: audio/flac
Connection: close


[16:28:58.770] D MercurySession.cpp:251: Executing Mercury Request, type GET
[16:28:58.778] I MercurySession.cpp:42: Received packet, command: 178
[16:28:58.778] D MercurySession.cpp:174: Received mercury packet
[16:28:58.778] I TrackQueue.cpp:158: Track name: Ophelia
[16:28:58.778] I TrackQueue.cpp:159: Track duration: 160097
[16:28:58.778] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
[16:28:58.778] D TrackQueue.cpp:212: File format: 2
[16:28:58.778] D TrackQueue.cpp:212: File format: 1
[16:28:58.786] I MercurySession.cpp:42: Received packet, command: 13
[16:28:58.786] I TrackQueue.cpp:252: Got audio key
[16:28:58.786] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[16:28:58.828] I TrackQueue.cpp:301: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:29:02.358] ActionHandler:595 [0x7fa7ec829000]: uPNP transition
[16:29:10.899] I MercurySession.cpp:42: Received packet, command: 181
[16:29:10.899] D SpircHandler.cpp:69: Received subscription response
[16:29:10.899] D SpircHandler.cpp:179: Load frame 50!
[16:29:10.899] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:29:10.901] I TrackPlayer.cpp:98: Resetting state
[16:29:10.906] I TrackPlayer.cpp:255: Playing done
[16:29:10.918] D MercurySession.cpp:251: Executing Mercury Request, type GET
[16:29:10.926] I MercurySession.cpp:42: Received packet, command: 178
[16:29:10.927] D MercurySession.cpp:174: Received mercury packet
[16:29:10.927] I TrackQueue.cpp:158: Track name: Heads Will Roll
[16:29:10.927] I TrackQueue.cpp:159: Track duration: 221000
[16:29:10.927] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
[16:29:10.927] D TrackQueue.cpp:212: File format: 2
[16:29:10.927] D TrackQueue.cpp:212: File format: 1
[16:29:10.937] I MercurySession.cpp:42: Received packet, command: 13
[16:29:10.937] I TrackQueue.cpp:252: Got audio key
[16:29:10.937] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[16:29:10.982] I MercurySession.cpp:42: Received packet, command: 178
[16:29:10.982] D MercurySession.cpp:174: Received mercury packet
[16:29:10.991] I TrackQueue.cpp:301: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:29:10.991] I TrackPlayer.cpp:171: Got track ID=2af283208df96842d5563380f507fbca27cb951c
[16:29:10.991] I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:29:11.094] D MercurySession.cpp:251: Executing Mercury Request, type GET
[16:29:11.102] I CDNAudioFile.cpp:70: Header and footer bytes received
[16:29:11.102] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:29:11.102] I MercurySession.cpp:42: Received packet, command: 178
[16:29:11.103] D MercurySession.cpp:174: Received mercury packet
[16:29:11.103] I TrackQueue.cpp:158: Track name: Ophelia
[16:29:11.103] I TrackQueue.cpp:159: Track duration: 160097
[16:29:11.103] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
[16:29:11.103] D TrackQueue.cpp:212: File format: 2
[16:29:11.103] D TrackQueue.cpp:212: File format: 1
[16:29:11.104] shadowRequest:338 [0x7fa7ec829000]: Stop
[16:29:11.104] AVTStop:203 [0x7fa7ec829000]: uPNP stop (cookie 0x1e)
[16:29:11.104] I spotify.cpp:300: new track will start at 0
[16:29:11.111] I MercurySession.cpp:42: Received packet, command: 13
[16:29:11.111] I TrackQueue.cpp:252: Got audio key
[16:29:11.111] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[16:29:11.118] E HTTPstreamer.cpp:427: HTTP error 32 for bbbb5e01d9bd_1 => send 0 / 32768 (15)
[16:29:11.118] I HTTPstreamer.cpp:503: closing socket 15
[16:29:11.118] I HTTPstreamer.cpp:147: HTTP streamer bbbb5e01d9bd_1 deleted
[16:29:11.119] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:29:11.120] I spotify.cpp:322: Play
[16:29:11.150] I TrackQueue.cpp:301: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:29:11.176] I TrackPlayer.cpp:206: Playing
[16:29:11.177] I spotify.cpp:176: trackUniqueId update  => 2af283208df96842d5563380f507fbca27cb951c
[16:29:11.177] I spotify.cpp:245: new track id 60e8d6fd460748f6ab02d08b73bd84b2 => <Heads Will Roll>
[16:29:11.177] I HTTPstreamer.cpp:134: Bound to port 59448
[16:29:11.177] I spotify.cpp:255: loading with id bbbb5e01d9bd_2
[16:29:11.177] shadowRequest:355 [0x7fa7ec829000]: spotify LOAD request
[16:29:11.177] AVTSetURI:77 [0x7fa7ec829000]: uPNP setURI http://192.168.1.24:59448/stream?id=bbbb5e01d9bd_2 (cookie 0x1f)
[16:29:11.177] shadowRequest:369 [0x7fa7ec829000]: spotify play request
[16:29:11.177] AVTPlay:137 [0x7fa7ec829000]: uPNP play (cookie 0x20)
[16:29:11.197] I MercurySession.cpp:42: Received packet, command: 178
[16:29:11.197] D MercurySession.cpp:174: Received mercury packet
[16:29:11.213] I MercurySession.cpp:42: Received packet, command: 178
[16:29:11.213] D MercurySession.cpp:174: Received mercury packet
[16:29:11.233] I HTTPstreamer.cpp:467: got HTTP connection 15
[16:29:11.234] I HTTPstreamer.cpp:210: HTTP received =>
GET /stream?id=bbbb5e01d9bd_2 HTTP/1.1
Host: 192.168.1.24:59448
Icy-MetaData: 1
Connection: close
transferMode.dlna.org: Streaming
User-Agent: WinampMPEG/2.8
Accept: */*


[16:29:11.234] I HTTPstreamer.cpp:327: HTTP response =>
HTTP/1.1 200 OK
transfermode.dlna.org: streaming
Server: spot-connect
Content-Type: audio/flac
Connection: close


[16:29:11.253] D MercurySession.cpp:251: Executing Mercury Request, type GET
[16:29:11.260] I MercurySession.cpp:42: Received packet, command: 178
[16:29:11.260] D MercurySession.cpp:174: Received mercury packet
[16:29:11.260] I TrackQueue.cpp:158: Track name: Spectrum (Say My Name) - Calvin Harris Remix
[16:29:11.261] I TrackQueue.cpp:159: Track duration: 218190
[16:29:11.261] D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
[16:29:11.261] D TrackQueue.cpp:212: File format: 2
[16:29:11.261] D TrackQueue.cpp:212: File format: 1
[16:29:11.268] I MercurySession.cpp:42: Received packet, command: 13
[16:29:11.268] I TrackQueue.cpp:252: Got audio key
[16:29:11.268] I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[16:29:11.310] I TrackQueue.cpp:301: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/xxx
[16:29:11.450] ActionHandler:595 [0x7fa7ec829000]: uPNP transition
[16:29:15.313] I MercurySession.cpp:42: Received packet, command: 181
[16:29:15.313] D SpircHandler.cpp:69: Received subscription response
[16:29:15.313] D SpircHandler.cpp:285: External pause command
[16:29:15.314] D MercurySession.cpp:251: Executing Mercury Request, type SEND
[16:29:15.315] I spotify.cpp:322: Pause
[16:29:15.315] shadowRequest:378 [0x7fa7ec829000]: spotify pause request
[16:29:15.315] AVTBasic:187 [0x7fa7ec829000]: uPNP Pause (cookie 0x2b)
[16:29:15.399] I MercurySession.cpp:42: Received packet, command: 178
[16:29:15.399] D MercurySession.cpp:174: Received mercury packet

Also taking the opportunity to say thank you for all the work!

SpotRaop 0.9.1 - Crashing with Bad Header Error

Lately I've been experiencing intermittent, semi-frequent SpotRaop crashes with a "bad header" error. I'm using spotraop-linux-aarch64-static 0.9.1 on a Raspberry Pi 4B with 64-bit Raspberry Pi OS Bullseye (Linux kernel 6.1.21-v8+).

Here are logs for three recent crashes. Let me know if any more information would be helpful. Thanks!

📃 Crash 1:
Feb 24 14:53:47 spotraop-linux-aarch64-static[2290423]: [14:53:47.193] I TrackPlayer.cpp:224: EOF
Feb 24 14:53:47 spotraop-linux-aarch64-static[2290423]: [14:53:47.193] I TrackPlayer.cpp:255: Playing done
Feb 24 14:53:47 spotraop-linux-aarch64-static[2290423]: [14:53:47.244] I TrackPlayer.cpp:171: Got track ID=c6a2837746ca14b7eaa2d35e92abb086a3ecde60
Feb 24 14:53:47 spotraop-linux-aarch64-static[2290423]: [14:53:47.244] I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa-tls130.spotifycdn.com/audio/c6a2837746ca14b7eaa2d35e92abb086a3ecde60?1708890472__lk_v_fMQ-QnhbjyiImtVCgTu9yELgNFuuh32Hg4lOk=
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:5[14:53:48.710] GetArtworkThread:319 got artwork for https://i.scdn.co/image/ab67616d00001e028768a3f69edb162509e1f6b0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.710] exec_request:663 [0x7fa000d570]: <------ : request failed, error T
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.711] exec_request:689 [0x7fa000d570]: Request failed, bad header
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: *** Error in `/var/lib/spotconnect/spotraop-linux-aarch64-static': free(): invalid pointer: 0x0000007f54008d1c ***
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: ======= Backtrace: =========
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [0x828964]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [0x82de28]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [0x407aa4]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [0x4698f4]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [0x46a4c4]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [0x4166cc]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [0x7585b4]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [0x84b4c0]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: ======= Memory map: ========
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 00400000-00a0a000 r-xp 00000000 08:02 2218                               /var/lib/spotconnect/spotraop-linux-aarch64-static
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 00a19000-00a59000 rw-p 00609000 08:02 2218                               /var/lib/spotconnect/spotraop-linux-aarch64-static
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 00a59000-00a8a000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 13988000-139cb000 rw-p 00000000 00:00 0                                  [heap]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f54000000-7f54021000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f54021000-7f58000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f58000000-7f580e9000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f580e9000-7f5c000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f5f800000-7f5f801000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f5f801000-7f60000000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f60000000-7f60021000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f60021000-7f64000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f64000000-7f64021000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f64021000-7f68000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f68000000-7f68025000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f68025000-7f6c000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f6c000000-7f6c025000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f6c025000-7f70000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f70000000-7f70025000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f70025000-7f74000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f74000000-7f74001000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f74001000-7f74800000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f74800000-7f74801000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f74801000-7f75000000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f75000000-7f75001000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f75001000-7f75800000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f75800000-7f75801000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f75801000-7f76000000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f76000000-7f76001000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f76001000-7f76800000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f76800000-7f76801000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f76801000-7f77000000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f77000000-7f77001000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f77001000-7f77800000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f77800000-7f77801000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f77801000-7f78000000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f78000000-7f78021000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f78021000-7f7c000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f7c000000-7f7c025000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f7c025000-7f80000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f80000000-7f80025000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f80025000-7f84000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f84000000-7f84031000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f84031000-7f88000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f88000000-7f88025000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f88025000-7f8c000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f8c000000-7f8c025000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f8c025000-7f90000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f90000000-7f90025000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f90025000-7f94000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f94000000-7f94001000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f94001000-7f94800000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f94800000-7f94801000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f94801000-7f95000000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f95000000-7f95001000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f95001000-7f95800000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f95800000-7f95801000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f95801000-7f96000000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f96000000-7f96001000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f96001000-7f96800000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f96800000-7f96801000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f96801000-7f97000000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f97000000-7f97001000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f97001000-7f97800000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f97800000-7f97801000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f97801000-7f98000000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f98000000-7f98031000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f98031000-7f9c000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f9c000000-7f9c030000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7f9c030000-7fa0000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa0000000-7fa0029000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa0029000-7fa4000000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa4070000-7fa4079000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa40b7000-7fa4103000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa4103000-7fa4104000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa4104000-7fa492c000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa492c000-7fa492d000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa492d000-7fa512c000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa512c000-7fa512d000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa512d000-7fa592c000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa592c000-7fa592d000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa592d000-7fa612c000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa612c000-7fa612d000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa612d000-7fa692c000 rw-p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa692c000-7fa692d000 ---p 00000000 00:00 0
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa692d000-7fa712c000 rw-p 00000000 00:00 0
Feb 24 14:53:48 systemd[1]: spotraop.service: Main process exited, code=killed, status=6/ABRT
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa712c000-7fa712e000 r--p 00000000 00:00 0                              [vvar]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fa712e000-7fa712f000 r-xp 00000000 00:00 0                              [vdso]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 7fc7b40000-7fc7b61000 rw-p 00000000 00:00 0                              [stack]
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: 3:47.379] I CDNAudioFile.cpp:70: Header and footer bytes received
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:47.493] I TrackPlayer.cpp:206: Playing
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:47.495] I spotify.cpp:145: trackUniqueId update 58f0ed1f3519cbc77df47f1609ea6e6778f55bc8 => c6a2837746ca14b7eaa2d35e92abb086a3ecde60
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.582] D MercurySession.cpp:251: Executing Mercury Request, type SEND
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.583] I spotify.cpp:484: started track id c4cb0585e79846159271724294e49cbf => <Surfboy - Remastered>
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.600] D MercurySession.cpp:251: Executing Mercury Request, type GET
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.705] I MercurySession.cpp:42: Received packet, command: 178
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.705] D MercurySession.cpp:174: Received mercury packet
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.705] I TrackQueue.cpp:162: Track name: Plastic Ferrari
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.705] I TrackQueue.cpp:163: Track duration: 200102
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.705] D TrackQueue.cpp:165: trackInfo.restriction.size() = 1
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.705] D TrackQueue.cpp:216: File format: 2
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.705] D TrackQueue.cpp:216: File format: 1
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.705] I spotify.cpp:461: Setting track position 0 / 453891
Feb 24 14:53:48 spotraop-linux-aarch64-static[2290423]: [14:53:48.711] D MercurySession.cpp:251: Executing Mercury Request, type SEND
Feb 24 14:53:48 systemd[1]: spotraop.service: Failed with result 'signal'.
📃 Crash 2:
Feb 25 18:11:17 spotraop-linux-aarch64-static[2296542]: [18:11:17.358] I TrackPlayer.cpp:224: EOF
Feb 25 18:11:17 spotraop-linux-aarch64-static[2296542]: [18:11:17.358] I TrackPlayer.cpp:255: Playing done
Feb 25 18:11:17 spotraop-linux-aarch64-static[2296542]: [18:11:17.408] I TrackPlayer.cpp:171: Got track ID=f7da7ebccf4b60b1d774eec5724583315928aebf
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:17.408] I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa-tls130.spotifycdn.com/audio/f7da7ebccf4b60b1d774eec5724583315928aebf?1708988933_EHTutm2t4QqFA0-f-om13a[18:11:18.861] GetArtworkThread:319 got artwork for https://i.scdn.co/image/ab67616d00001e02d71b52a2120245c4a07da97e
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.868] exec_request:663 [0x7f8800d720]: <------ : request failed, error RS/.
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.868] exec_request:689 [0x7f8800d720]: Request failed, bad header
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: *** Error in `/var/lib/spotconnect/spotraop-linux-aarch64-static': free(): invalid pointer: 0x0000007f4401aa38 ***
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.868] exec_request:663 [0x7f8800d720]: <------ : request failed, error TP1020ODate:
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: ======= Backtrace: =========
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [0x828964]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [0x82de28]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [0x407aa4]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [0x4698f4]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [0x46a4c4]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [0x4166cc]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [0x7585b4]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [0x84b4c0]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: ======= Memory map: ========
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 00400000-00a0a000 r-xp 00000000 08:02 2218                               /var/lib/spotconnect/spotraop-linux-aarch64-static
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 00a19000-00a59000 rw-p 00609000 08:02 2218                               /var/lib/spotconnect/spotraop-linux-aarch64-static
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 00a59000-00a8a000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 0330b000-0334e000 rw-p 00000000 00:00 0                                  [heap]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f40000000-7f400fa000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f400fa000-7f44000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f44000000-7f44021000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f44021000-7f48000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f48000000-7f48021000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f48021000-7f4c000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f4c000000-7f4c021000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f4c021000-7f50000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f50000000-7f50025000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f50025000-7f54000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f54800000-7f54801000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f54801000-7f55000000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f55000000-7f55001000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f55001000-7f55800000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f55800000-7f55801000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f55801000-7f56000000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f56000000-7f56001000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f56001000-7f56800000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f56800000-7f56801000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f56801000-7f57000000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f57000000-7f57001000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f57001000-7f57800000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f57800000-7f57801000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f57801000-7f58000000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f58000000-7f58025000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f58025000-7f5c000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f5c000000-7f5c025000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f5c025000-7f60000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f60000000-7f60031000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f60031000-7f64000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f64000000-7f64025000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f64025000-7f68000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f68000000-7f68025000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f68025000-7f6c000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f6c000000-7f6c025000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f6c025000-7f70000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f70000000-7f70025000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f70025000-7f74000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f74000000-7f74001000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f74001000-7f74800000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f74800000-7f74801000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f74801000-7f75000000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f75000000-7f75001000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f75001000-7f75800000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f75800000-7f75801000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f75801000-7f76000000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f76000000-7f76001000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f76001000-7f76800000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f76800000-7f76801000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f76801000-7f77000000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f77000000-7f77001000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f77001000-7f77800000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f77800000-7f77801000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f77801000-7f78000000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f78000000-7f78021000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f78021000-7f7c000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f7c000000-7f7c025000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f7c025000-7f80000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f80000000-7f80031000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f80031000-7f84000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f84000000-7f84030000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f84030000-7f88000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f88000000-7f88029000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f88029000-7f8c000000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8c3ba000-7f8c3c4000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8c423000-7f8c46f000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8c46f000-7f8c470000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8c470000-7f8cc6f000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8cc6f000-7f8cc70000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8cc70000-7f8d498000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8d498000-7f8d499000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8d499000-7f8dc98000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8dc98000-7f8dc99000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8dc99000-7f8e498000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8e498000-7f8e499000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8e499000-7f8ec98000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8ec98000-7f8ec99000 ---p 00000000 00:00 0
Feb 25 18:11:18 systemd[1]: spotraop.service: Main process exited, code=killed, status=6/ABRT
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8ec99000-7f8f498000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8f498000-7f8f499000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8f499000-7f8fc98000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8fc98000-7f8fc99000 ---p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f8fc99000-7f90498000 rw-p 00000000 00:00 0
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f90498000-7f9049a000 r--p 00000000 00:00 0                              [vvar]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7f9049a000-7f9049b000 r-xp 00000000 00:00 0                              [vdso]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: 7fd6a23000-7fd6a44000 rw-p 00000000 00:00 0                              [stack]
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: tzid6NisNUpnlZOwRWXYg=
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:17.569] I CDNAudioFile.cpp:70: Header and footer bytes received
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:17.676] I TrackPlayer.cpp:206: Playing
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:17.679] I spotify.cpp:145: trackUniqueId update a4a200d96eaa76d235e9ae3e6b11a9023d9f0073 => f7da7ebccf4b60b1d774eec5724583315928aebf
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.703] D MercurySession.cpp:251: Executing Mercury Request, type SEND
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.703] I spotify.cpp:484: started track id 76c6d9af282b4864848453929eef7b64 => <overreacting>
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.800] D MercurySession.cpp:251: Executing Mercury Request, type GET
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.860] I MercurySession.cpp:42: Received packet, command: 178
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.860] D MercurySession.cpp:174: Received mercury packet
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.860] I TrackQueue.cpp:162: Track name: Drowning
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.860] I TrackQueue.cpp:163: Track duration: 212142
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.860] D TrackQueue.cpp:165: trackInfo.restriction.size() = 1
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.860] D TrackQueue.cpp:216: File format: 2
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.860] D TrackQueue.cpp:216: File format: 1
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.860] I spotify.cpp:461: Setting track position 0 / 179888
Feb 25 18:11:18 spotraop-linux-aarch64-static[2296542]: [18:11:18.868] D MercurySession.cpp:251: Executing Mercury Request, type SEND
Feb 25 18:11:18 systemd[1]: spotraop.service: Failed with result 'signal'.
Feb 25 18:11:18 systemd[1]: spotraop.service: Consumed 16min 37.701s CPU time.
📃 Crash 3:
Mar 05 16:27:12 spotraop-linux-aarch64-static[200328]: [16:27:12.561] I MercurySession.cpp:42: Received packet, command: 4
Mar 05 16:27:12 spotraop-linux-aarch64-static[200328]: [16:27:12.561] D TimeProvider.cpp:15: Time synced with spotify servers
Mar 05 16:27:58 spotraop-linux-aarch64-static[200328]: [16:27:12.619] I MercurySession.cpp:42: Received packet, command: 7[16:27:58.800] raopcl_send_chunk:589 [0x7fb4014730]: check n:277094992 p:277096199 ts:75396626873540 sn:63599
Mar 05 16:27:58 spotraop-linux-aarch64-static[200328]:                retr: 0, avail: 0, send: 0, select: 0)
Mar 05 16:28:58 spotraop-linux-aarch64-static[200328]: [16:28:58.780] raopcl_send_chunk:589 [0x7fb4014730]: check n:277154972 p:277156198 ts:75396629519524 sn:5580
Mar 05 16:28:58 spotraop-linux-aarch64-static[200328]:                retr: 0, avail: 0, send: 0, select: 0)
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.450] GetArtworkThread:319 got artwork for https://i.scdn.co/image/ab67616d00001e027a7c4a1bb280b7f5d234b693
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.459] exec_request:663 [0x7fb4018b10]: <------ : request failed, error 930
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.464] exec_request:689 [0x7fb4018b10]: Request failed, bad header
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: *** Error in `/var/lib/spotconnect/spotraop-linux-aarch64-static': free(): invalid pointer: 0x0000007f68002a8c ***
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: ======= Backtrace: =========
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [0x828964]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [0x82de28]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [0x407aa4]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [0x4698f4]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [0x46a4c4]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [0x4166cc]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [0x7585b4]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [0x84b4c0]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: ======= Memory map: ========
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 00400000-00a0a000 r-xp 00000000 08:02 2218                               /var/lib/spotconnect/spotraop-linux-aarch64-static
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 00a19000-00a59000 rw-p 00609000 08:02 2218                               /var/lib/spotconnect/spotraop-linux-aarch64-static
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 00a59000-00a8a000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 0f85b000-0f89e000 rw-p 00000000 00:00 0                                  [heap]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f64000000-7f64021000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f64021000-7f68000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f68000000-7f68030000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f68030000-7f6c000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f6c000000-7f6c045000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f6c045000-7f70000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f70000000-7f70108000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f70108000-7f74000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f74000000-7f74025000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f74025000-7f78000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f78000000-7f78021000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f78021000-7f7c000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f7c000000-7f7c025000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f7c025000-7f80000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f80000000-7f80025000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f80025000-7f84000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f84000000-7f84031000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f84031000-7f88000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f88000000-7f88025000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f88025000-7f8c000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f8c000000-7f8c02e000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f8c02e000-7f90000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f91000000-7f91001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f91001000-7f91800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f91800000-7f91801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f91801000-7f92000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f92000000-7f92001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f92001000-7f92800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f92800000-7f92801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f92801000-7f93000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f93000000-7f93001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f93001000-7f93800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f93800000-7f93801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f93801000-7f94000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f94000000-7f9402e000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9402e000-7f98000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f98000000-7f98001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f98001000-7f98800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f98800000-7f98801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f98801000-7f99000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f99000000-7f99001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f99001000-7f99800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f99800000-7f99801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f99801000-7f9a000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9a000000-7f9a001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9a001000-7f9a800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9a800000-7f9a801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9a801000-7f9b000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9b000000-7f9b001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9b001000-7f9b800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9b800000-7f9b801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9b801000-7f9c000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9c000000-7f9c025000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7f9c025000-7fa0000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fa0000000-7fa0025000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fa0025000-7fa4000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fa4000000-7fa4021000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fa4021000-7fa8000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fa8000000-7fa802e000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fa802e000-7fac000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fac000000-7fac031000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fac031000-7fb0000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb0000000-7fb0001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb0001000-7fb0800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb0800000-7fb0801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb0801000-7fb1000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb1000000-7fb1001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb1001000-7fb1800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb1800000-7fb1801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb1801000-7fb2000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb2000000-7fb2001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb2001000-7fb2800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb2800000-7fb2801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb2801000-7fb3000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb3000000-7fb3001000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb3001000-7fb3800000 rw-p 00000000 00:00 0
Mar 05 16:28:59 systemd[1]: spotraop.service: Main process exited, code=killed, status=6/ABRT
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb3800000-7fb3801000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb3801000-7fb4000000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb4000000-7fb4029000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb4029000-7fb8000000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb8566000-7fb856a000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb85cf000-7fb85f8000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb8620000-7fb8621000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb8621000-7fb8622000 ---p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb8622000-7fb8e21000 rw-p 00000000 00:00 0
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb8e21000-7fb8e23000 r--p 00000000 00:00 0                              [vvar]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fb8e23000-7fb8e24000 r-xp 00000000 00:00 0                              [vdso]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 7fdc6c7000-7fdc6e8000 rw-p 00000000 00:00 0                              [stack]
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: 4
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:57.941] I TrackPlayer.cpp:224: EOF
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:57.941] I TrackPlayer.cpp:255: Playing done
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:57.991] I TrackPlayer.cpp:171: Got track ID=7b14620bf5d04bc8cc7f3cf93321e9f7d9ab8da9
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:57.991] I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa-tls130.spotifycdn.com/audio/7b14620bf5d04bc8cc7f3cf93321e9f7d9ab8da9?1709760053_RGqVuIYfK_j3AZ9oAAbAGzjonINBfcCS5uPXFlfUfto=
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:58.125] I CDNAudioFile.cpp:70: Header and footer bytes received
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:58.218] I TrackPlayer.cpp:206: Playing
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:58.219] I spotify.cpp:145: trackUniqueId update 8a91d2206120d49eb94d4ed9203f1e8f7e686efc => 7b14620bf5d04bc8cc7f3cf93321e9f7d9ab8da9
Mar 05 16:28:59 systemd[1]: spotraop.service: Failed with result 'signal'.
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.324] D MercurySession.cpp:251: Executing Mercury Request, type SEND
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.325] I spotify.cpp:484: started track id 756665c77a804fbf90f538331f1a4cab => <Contact High>
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.400] D MercurySession.cpp:251: Executing Mercury Request, type GET
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.459] I MercurySession.cpp:42: Received packet, command: 178
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.459] D MercurySession.cpp:174: Received mercury packet
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.459] I TrackQueue.cpp:162: Track name: Jupiter - Extended Mix
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.459] I TrackQueue.cpp:163: Track duration: 404343
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.459] D TrackQueue.cpp:165: trackInfo.restriction.size() = 1
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.459] D TrackQueue.cpp:216: File format: 2
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.459] D TrackQueue.cpp:216: File format: 1
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.459] I spotify.cpp:461: Setting track position 0 / 197250
Mar 05 16:28:59 spotraop-linux-aarch64-static[200328]: [16:28:59.459] D MercurySession.cpp:251: Executing Mercury Request, type SEND

Cannot play to Kodi's AirPlay implementation (OSMC/Arm)

Hello, I am trying to use Kodi AirPlay as a Spotify Connect device, but it does not seem to work. Every time it gets stuck on "GetArtworkThread:322". Nothing shows on the screen.
I have run this test with Docker stopped on a Pi4 box running OSMC.
On the same box, with docker running, Kodi's own airplay disabled, I can use an instance of shairport-sync using docker perfectly.

Here is the log using Kodi's own AirPlay (again, docker service is stopped here):

spotconnect-airplay | [07:48:00.020] raopcl_connect:1003 [0x7ff7f80095b0]: local interface 192.168.1.173
spotconnect-airplay | [07:48:00.021] http_read_line:1038 disconnected on the other end 16
spotconnect-airplay | [07:48:00.021] exec_request:655 [0x7ff7f800d990]: response :  request failed
spotconnect-airplay | [07:48:01.022] shadowRequest:275 [0x64c160]: spotify VOLUME request -5.161364
spotconnect-airplay | [07:48:01.023] shadowRequest:275 [0x64c160]: spotify VOLUME request -0.968185
spotconnect-airplay | [07:48:01.024] shadowRequest:275 [0x64c160]: spotify VOLUME request -0.000000
spotconnect-airplay | [07:48:03.420] GetArtworkThread:322 got artwork for https://i.scdn.co/image/ab67616d00001e026b8d89248315d098fc864098
spotconnect-airplay | [07:48:04.899] mDNSsearchCallback:437 Updating configuration /config/raop-config.xml
spotconnect-airplay | [07:47:58.931] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:47:58.931] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:47:58.982] I TrackQueue.cpp:305: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/12db28a105c550349549edd47139bf6e6fd5abe4?__token__=exp=REDACTED
spotconnect-airplay | [07:47:59.886] I MercurySession.cpp:42: Received packet, command: 181
spotconnect-airplay | [07:47:59.886] D SpircHandler.cpp:69: Received subscription response
spotconnect-airplay | [07:47:59.887] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotconnect-airplay | [07:47:59.918] I spotify.cpp:252: new track will start at 16785
spotconnect-airplay | [07:47:59.918] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotconnect-airplay | [07:48:00.005] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:48:00.005] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:48:00.068] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:48:00.068] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:48:00.095] I MercurySession.cpp:42: Received packet, command: 181
spotconnect-airplay | [07:48:00.095] D SpircHandler.cpp:69: Received subscription response
spotconnect-airplay | [07:48:00.095] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotconnect-airplay | [07:48:00.200] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:48:00.313] I MercurySession.cpp:42: Received packet, command: 181
spotconnect-airplay | [07:48:00.532] I MercurySession.cpp:42: Received packet, command: 181
spotconnect-airplay | [07:48:01.023] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:48:01.023] D SpircHandler.cpp:69: Received subscription response
spotconnect-airplay | [07:48:01.023] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotconnect-airplay | [07:48:01.023] D SpircHandler.cpp:69: Received subscription response
spotconnect-airplay | [07:48:01.023] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotconnect-airplay | [07:48:01.131] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:48:01.131] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:48:01.152] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:48:01.152] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:48:01.203] I TrackPlayer.cpp:206: Playing
spotconnect-airplay | [07:48:01.203] I spotify.cpp:145: trackUniqueId update  => ID_REDACTED
spotconnect-airplay | [07:48:03.356] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotconnect-airplay | [07:48:03.356] I spotify.cpp:484: started track id 02b04b6836224be794a1e65531c4df2f => <Oh Woman Oh Man>
spotconnect-airplay | [07:48:03.471] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:48:03.471] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:48:18.502] D spotify.cpp:452: keepAlive KodiLivingPi4+
spotconnect-airplay | [07:48:20.840] I MercurySession.cpp:42: Received packet, command: 181
spotconnect-airplay | [07:48:20.840] D SpircHandler.cpp:69: Received subscription response
spotconnect-airplay | [07:48:20.840] D SpircHandler.cpp:179: Load frame 18!
spotconnect-airplay | [07:48:20.840] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotconnect-airplay | [07:48:20.841] I TrackPlayer.cpp:98: Resetting state
spotconnect-airplay | [07:48:20.841] I TrackPlayer.cpp:255: Playing done
spotconnect-airplay | [07:48:20.903] D MercurySession.cpp:251: Executing Mercury Request, type GET
spotconnect-airplay | [07:48:20.931] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:48:21.224] shadowRequest:257 [0x64c160]: spotify LOAD request
spotconnect-airplay | [07:48:21.325] raopcl_connect:1003 [0x7ff7f80095b0]: local interface 192.168.1.173
spotconnect-airplay | [07:48:21.326] http_read_line:1038 disconnected on the other end 17
spotconnect-airplay | [07:48:21.326] exec_request:655 [0x7ff7f800d990]: response :  request failed
spotconnect-airplay | [07:48:20.931] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:48:20.931] I TrackQueue.cpp:162: Track name: Oh Woman Oh Man
spotconnect-airplay | [07:48:20.931] I TrackQueue.cpp:163: Track duration: 277613
spotconnect-airplay | [07:48:20.931] D TrackQueue.cpp:165: trackInfo.restriction.size() = 1
spotconnect-airplay | [07:48:20.931] D TrackQueue.cpp:216: File format: 2
spotconnect-airplay | [07:48:20.957] I MercurySession.cpp:42: Received packet, command: 13
spotconnect-airplay | [07:48:20.958] I TrackQueue.cpp:256: Got audio key
spotconnect-airplay | [07:48:20.958] I TrackQueue.cpp:279: Received access key, fetching CDN URL...
spotconnect-airplay | [07:48:21.091] I TrackQueue.cpp:305: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/ID_REDACTED?__token__=exp=REDACTED
spotconnect-airplay | [07:48:21.091] I TrackPlayer.cpp:171: Got track ID=ID_REDACTED
spotconnect-airplay | [07:48:21.091] I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-ak-spotify-com.akamaized.net/audio/ID_REDACTED?__token__=exp=REDACTED
spotconnect-airplay | [07:48:21.091] D MercurySession.cpp:251: Executing Mercury Request, type GET
spotconnect-airplay | [07:48:21.116] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:48:21.116] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:48:21.116] I TrackQueue.cpp:162: Track name: Hell To The Liars
spotconnect-airplay | [07:48:21.116] I TrackQueue.cpp:163: Track duration: 364506
spotconnect-airplay | [07:48:21.116] D TrackQueue.cpp:165: trackInfo.restriction.size() = 1
spotconnect-airplay | [07:48:21.117] D TrackQueue.cpp:216: File format: 2
spotconnect-airplay | [07:48:21.141] I MercurySession.cpp:42: Received packet, command: 13
spotconnect-airplay | [07:48:21.141] I TrackQueue.cpp:256: Got audio key
spotconnect-airplay | [07:48:21.141] I TrackQueue.cpp:279: Received access key, fetching CDN URL...
spotconnect-airplay | [07:48:21.223] I CDNAudioFile.cpp:70: Header and footer bytes received
spotconnect-airplay | [07:48:21.224] D MercurySession.cpp:251: Executing Mercury Request, type SEND
spotconnect-airplay | [07:48:21.250] I TrackQueue.cpp:305: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/781ef0194b04caf14436cdcd670e42a424479ff5?__token__=exp=1702972101~hmac=01746021506d58d759c32bca1bd10875d05286073b10559ba0acc9a49df4e8a6
spotconnect-airplay | [07:48:21.351] D MercurySession.cpp:251: Executing Mercury Request, type GET
spotconnect-airplay | [07:48:21.375] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:48:21.375] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:48:21.375] I TrackQueue.cpp:162: Track name: Everyone Else
spotconnect-airplay | [07:48:21.375] I TrackQueue.cpp:163: Track duration: 245240
spotconnect-airplay | [07:48:21.375] D TrackQueue.cpp:165: trackInfo.restriction.size() = 1
spotconnect-airplay | [07:48:21.375] D TrackQueue.cpp:216: File format: 2
spotconnect-airplay | [07:48:21.403] I MercurySession.cpp:42: Received packet, command: 13
spotconnect-airplay | [07:48:21.403] I TrackQueue.cpp:256: Got audio key
spotconnect-airplay | [07:48:21.403] I TrackQueue.cpp:279: Received access key, fetching CDN URL...
spotconnect-airplay | [07:48:21.516] I TrackQueue.cpp:305: Received CDN URL, https://audio-ak-spotify-com.akamaized.net/audio/12db28a105c550349549edd47139bf6e6fd5abe4?__token__=exp=1702972101~hmac=d25a82c0b3adcce4215a6ec3904b640b6cbf25b68222f395a275f6791f4e7a68
spotconnect-airplay | [07:48:21.591] I MercurySession.cpp:42: Received packet, command: 178
spotconnect-airplay | [07:48:21.592] D MercurySession.cpp:174: Received mercury packet
spotconnect-airplay | [07:48:22.328] shadowRequest:261 [0x64c160]: spotify PLAY request
spotconnect-airplay | [07:48:22.430] raopcl_connect:1003 [0x7ff7f80095b0]: local interface 192.168.1.173
spotconnect-airplay | [07:48:22.431] http_read_line:1038 disconnected on the other end 16
spotconnect-airplay | [07:48:22.431] exec_request:655 [0x7ff7f800d990]: response :  request failed
spotconnect-airplay | [07:48:25.704] GetArtworkThread:322 got artwork for https://i.scdn.co/image/ab67616d00001e026b8d89248315d098fc864098

Thank you!

Edit: some details

Unable to change device names

As long as I'm opening issues…

Using spotraop, I'm trying to change the name of a device. I've tried using both <friendly-name> and <name>, but the device still shows in Spotify as dev[string of numbers and letters]+, which is different from the ID in the config file. I have also tested it with and without spaces, which doesn’t seem to make a difference. (It isn't working with HomePods or Apple TVs either.)

    <device>
        <udn>[id]@Host Name._raop._tcp.local</udn>
        <name></name>
        <friendly_name>My AirPlay Device</friendly_name>
        <enabled>1</enabled>
    </device>

No matter what I do, the device list in Spotify is:

🔈 HomePod+
🔈 dev[string of numbers and letters]+

Is there anything else I should try?

Choppy playback on Aether Cone

Sorry to report that I've uncovered another problem while testing for #15. When I try to use SpotConnect to play to an Aether Cone, the audio is very choppy. In the log I don't see any actual errors, but appears to me that SpotConnect is constantly restarting the connection (and I could be reading it wrong).

The only difference with the Cone from my Apple devices is that it's on my IoT VLAN, however I have firewall rules in place that allow all communication from the Cone to the Raspberry Pi, and all devices from the main network are free to talk to the IoT network without restriction. I'm also able to AirPlay to the Cone from any Apple device on the main network as well as OwnTone hosted on the same Pi as SpotConnect without issue.

📃 Debug log of playback attempt
$ ./spotraop-linux-aarch64-static -x ./spotraop-config.xml -d all=debug
[21:27:55.575498] main:1134 Starting spotraop version: v0.1.2 (Jul 26 2023 @ 18:40:52)

[21:27:55.585064] Start:903 Binding to [Main Network IP]
[21:27:55.586050] StartActiveRemote:788 DACP port: 50707
[21:27:55.674113] AddRaopDevice:514 [0xa56e10]: creating MAC
[21:27:55.674284] AddRaopDevice:528 [0xa56e10]: adding renderer (DEVF6GT4QEDWK3TEFQNZ@[IOT Network IP]) with mac AAAA-XXXXXXXX
[21:27:55.674584] raopcl_create:713 [0x7f84009610]: using ALAC coding
I BellHTTPServer.cpp:191: Server listening on port 0
I spotify.cpp:359: Server using actual port 35075
I MDNSService.cpp:181: using built-in mDNS for Shop Cone+
I spotify.cpp:381: Spotify client connected for Shop Cone+
D Session.cpp:63: Connecting with AP <ap-gue1.spotify.com:4070>
D PlainConnection.cpp:101: Connected to spotify server
I Session.cpp:39: Received APHello response
D Session.cpp:44: Received shannon keys
D Session.cpp:82: Authorization successful
I MercurySession.cpp:42: Received packet, command: 4
D TimeProvider.cpp:15: Time synced with spotify servers
I MercurySession.cpp:42: Received packet, command: 2
I MercurySession.cpp:42: Received packet, command: 118
D MercurySession.cpp:251: Executing Mercury Request, type SUB
D spotify.cpp:416: keepAlive Shop Cone+
I MercurySession.cpp:42: Received packet, command: 27
D MercurySession.cpp:153: Received country code US
I MercurySession.cpp:42: Received packet, command: 80
I MercurySession.cpp:42: Received packet, command: 31
I MercurySession.cpp:42: Received packet, command: 105
I MercurySession.cpp:42: Received packet, command: 181
I AccessKeyFetcher.cpp:99: Access token expired, fetching new one... 238
I MercurySession.cpp:42: Received packet, command: 74
I MercurySession.cpp:42: Received packet, command: 179
D MercurySession.cpp:174: Received mercury packet
D MercurySession.cpp:251: Executing Mercury Request, type SEND
D SpircHandler.cpp:59: Sent kMessageTypeHello!
I MercurySession.cpp:42: Received packet, command: 181
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cppI MercurySession.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I AccessKeyFetcher.cpp:114: Access token sucessfully fetched
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:170: Load frame 3!
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I TrackPlayer.cpp:94: Resetting state
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Pergola
I TrackQueue.cpp:159: Track duration: 928143
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/c27f1826de3352b32952421744cd944675183a79?1691285283_mYyPHMIuCtNSfOjA1R60sZKT2K32GeFPNBT8ure2UZ4=
D MercurySession.cpp:251: Executing Mercury Request, type GET
I TrackPlayer.cpp:167: Got track ID=c27f1826de3352b32952421744cd944675183a79
I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa.scdn.co/audio/c27f1826de3352b32952421744cd944675183a79?1691285283_mYyPHMIuCtNSfOjA1R60sZKT2K32GeFPNBT8ure2UZ4=
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Ornamental Plants
I TrackQueue.cpp:159: Track duration: 907000
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I CDNAudioFile.cpp:70: Header and footer bytes received
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:235: new track will start at 0
[21:28:04.194216] shadowRequest:219 [0xa56e10]: spotify LOAD request
[21:28:04.297419] raopcl_connect:996 [0x7f84009610]: local interface [Main Network IP]
[21:28:04.298270] exec_request:614 [0x7f8400d9b0]: ----> : write POST /auth-setup RTSP/1.0
Content-Type: application/octet-stream
Content-Length: 33
CSeq: 1
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553

ŦB��%���q���=>��7:3���M O)�
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/3545d5438c8e299f480ade315f657e455958f9d3?1691285284_fMCs1W-NsVkWdmknb5mafnChXVEZhHyDK8zVJxT2o74=
D MercurySession.cpp:251: Executing Mercury Request, type GET
[21:28:04.601102] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:04.601550] exec_request:650 [0x7f8400d9b0]: <------ : Content-Type: application/octet-stream
[21:28:04.601798] exec_request:650 [0x7f8400d9b0]: <------ : Content-Length: 1076
[21:28:04.602056] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:04.602185] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 1
[21:28:04.602262] exec_request:691 [0x7f8400d9b0]: Body data len 1076
0000  fc b2 40 66 bf e7 96 50 52 3b e6 a2 3f c4 37 83   @f   PR;  ? 7
0010  ba 60 5c 2b d1 90 03 a6 c8 03 ce 41 ba 96 70 3b  `\+       A  p;
0020  00 00 03 8c 30 82 03 88 06 09 2a 86 48 86 f7 0d     0     * H
0030  01 07 02 a0 82 03 79 30 82 03 75 02 01 01 31 00       y0  u   1
0040  30 0b 06 09 2a 86 48 86 f7 0d 01 07 01 a0 82 03 0   * H
0050  5d 30 82 03 59 30 82 02 41 a0 03 02 01 02 02 0f ]0  Y0  A
0060  12 12 aa 13 11 03 aa 06 aa 12 94 aa 96 69 51 30              iQ0
0070  0d 06 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 81    * H        0
0080  83 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 13  1 0   U    US1
0090  30 11 06 03 55 04 0a 13 0a 41 70 70 6c 65 20 49 0   U    Apple I
00a0  6e 63 2e 31 26 30 24 06 03 55 04 0b 13 1d 41 70 nc.1&0$  U    Ap
00b0  70 6c 65 20 43 65 72 74 69 66 69 63 61 74 69 6f ple Certificatio
00c0  6e 20 41 75 74 68 6f 72 69 74 79 31 37 30 35 06 n Authority1705
00d0  03 55 04 03 13 2e 41 70 70 6c 65 20 69 50 6f 64  U   .Apple iPod
00e0  20 41 63 63 65 73 73 6f 72 69 65 73 20 43 65 72  Accessories Cer
00f0  74 69 66 69 63 61 74 69 6f 6e 20 41 75 74 68 6f tification Autho
0100  72 69 74 79 30 1e 17 0d 31 33 31 31 30 33 30 37 rity0   13110307
0110  35 31 31 32 5a 17 0d 32 31 31 31 30 33 30 37 35 5112Z  211103075
0120  31 31 32 5a 30 70 31 0b 30 09 06 03 55 04 06 13 112Z0p1 0   U
0130  02 55 53 31 13 30 11 06 03 55 04 0a 0c 0a 41 70  US1 0   U    Ap
0140  70 6c 65 20 49 6e 63 2e 31 1f 30 1d 06 03 55 04 ple Inc.1 0   U
0150  0b 0c 16 41 70 70 6c 65 20 69 50 6f 64 20 41 63    Apple iPod Ac
0160  63 65 73 73 6f 72 69 65 73 31 2b 30 29 06 03 55 cessories1+0)  U
0170  04 03 0c 22 49 50 41 5f 31 32 31 32 41 41 31 33    "IPA_1212AA13
0180  31 31 30 33 41 41 30 36 41 41 31 32 39 34 41 41 1103AA06AA1294AA
0190  39 36 36 39 35 31 30 81 9f 30 0d 06 09 2a 86 48 9669510  0   * H
01a0  86 f7 0d 01 01 01 05 00 03 81 8d 00 30 81 89 02             0
01b0  81 81 00 aa a3 77 e5 3f 4f e6 08 9f c9 61 b1 5e      w ?O    a ^
01c0  b2 45 fa c0 e6 aa b9 62 63 cc 8c 5e e8 fd a7 43  E     bc  ^   C
01d0  29 4b 79 86 f3 d5 f3 ec ee 42 73 e9 1b 07 aa 26 )Ky      Bs    &
01e0  07 65 8e d0 14 47 c8 5f 7f 23 92 ea 81 27 d6 ce  e   G _ #   '
01f0  fe 61 d2 14 c3 69 52 7b 4d 50 7b fe 77 86 92 54  a   iR{MP{ w  T
0200  7f 3b d3 fa c8 f5 c6 c2 53 94 b0 e6 bd 6e 45 3f  ;      S    nE?
0210  e6 69 41 df 74 03 2c c8 fa 68 b2 45 ac 83 6c 6e  iA t ,  h E  ln
0220  cd 89 85 bb 9b b9 31 c8 74 82 6f 73 82 80 8d 8b       1 t os
0230  f4 d1 d7 02 03 01 00 01 a3 60 30 5e 30 1d 06 03          `0^0
0240  55 1d 0e 04 16 04 14 2a be 69 4e 08 d7 3f 9c be U      * iN  ?
0250  88 9a 11 e7 3a f5 54 1b 3c c1 c1 30 0c 06 03 55     : T <  0   U
0260  1d 13 01 01 ff 04 02 30 00 30 1f 06 03 55 1d 23        0 0   U #
0270  04 18 30 16 80 14 ff 4b 1a 43 9a f5 19 96 ab 18   0    K C
0280  00 2b 61 c9 ee 40 9d 8e c7 04 30 0e 06 03 55 1d  +a  @    0   U
0290  0f 01 01 ff 04 04 03 02 03 b8 30 0d 06 09 2a 86           0   *
02a0  48 86 f7 0d 01 01 05 05 00 03 82 01 01 00 19 0c H
02b0  bc 8d 27 ff bd c1 a7 9d b3 49 93 fe 38 41 a7 39   '      I  8A 9
02c0  75 30 41 38 03 86 5e ec d2 6e 93 1d 26 81 cb 8c u0A8  ^  n  &
02d0  05 04 91 70 bd 87 b5 67 85 15 5f 29 c6 3d e4 56    p   g  _) = V
02e0  1d db de ff c6 92 27 f5 42 ce 5a 64 0f ee 73 9b       ' B Zd  s
02f0  a0 99 4c d9 03 89 b6 1b 12 00 11 b6 68 dd f3 9a   L         h
0300  2a ca 34 f3 81 36 35 af 95 dd 73 bf df 62 af 2f * 4  65   s  b /
0310  f0 8d 8b eb bb 35 79 9c 33 57 49 ca 5e a7 7d 48      5y 3WI ^ }H
0320  90 d8 d9 d3 f4 45 c2 29 82 df 0d 9e ad af 87 47      E )       G
0330  61 f9 e2 c3 e5 f7 ec 2e a2 8b 44 51 a5 21 04 81 a      .  DQ !
0340  7f 60 7a 6b 9c 62 69 52 58 d1 f6 34 f8 dc c1 84  `zk biRX  4
0350  ba 0f 83 98 c2 1c 85 eb 2d 6f ca c1 1e ad 61 62         -o    ab
0360  33 05 d3 09 49 fb bc 06 3c 88 ba 53 53 c5 21 f1 3   I   <  SS !
0370  f1 09 86 ef 11 b0 fd df 53 90 04 5b 73 ac c1 b2         S  [s
0380  b4 f3 5a 34 1d 37 d4 a1 79 b4 6c 91 69 21 b5 46   Z4 7  y l i! F
0390  b8 1f a5 1d 20 92 25 14 e8 d0 37 83 07 23 58 a8       %   7  #X
03a0  85 a9 cc bc 11 74 ee bb 5b 65 8f 89 26 1f 31 00      t  [e  & 1
03b0  00 00 00 80 a9 06 1f 29 0d 72 79 6d 3d 0b 23 ff        ) rym= #
03c0  d3 93 82 f6 d3 51 54 4d 00 1d 58 40 15 d7 4b f7      QTM  X@  K
03d0  66 43 2c 37 42 74 21 e7 d8 43 31 f9 6b 06 8a 89 fC,7Bt!  C1 k
03e0  de e1 f9 49 01 56 af 7d 5d 91 06 c8 e0 a9 ec b4    I V }]
03f0  b9 c1 84 ca 69 3d 41 bb d4 dd 6d ed a7 2f 71 df     i=A   m  /q
0400  97 82 b8 d2 2a a4 cf df 49 59 72 35 2c fc 30 c7     *   IYr5, 0
0410  40 c0 cc c0 38 dc db c5 fb eb 90 2d 37 d5 18 0b @   8      -7
0420  a5 8f 15 cc a5 6f fb e2 81 32 37 04 17 f3 4d 3a      o   27   M:
0430  92 21 cb 8d  !
[21:28:04.645279] exec_request:614 [0x7f8400d9b0]: ----> : write ANNOUNCE rtsp://[IOT Network IP]/3344080965 RTSP/1.0
Content-Type: application/sdp
Content-Length: 178
CSeq: 2
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553

v=0
o=iTunes 3344080965 0 IN IP4 [Main Network IP]
s=iTunes
c=IN IP4 [IOT Network IP]
t=0 0
m=audio 0 RTP/AVP 96
a=rtpmap:96 AppleLossless
a=fmtp:96 352 0 16 40 10 14 2 255 0 0 44100

[21:28:04.648285] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:04.648547] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:04.648677] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 2
[21:28:04.648829] exec_request:614 [0x7f8400d9b0]: ----> : write SETUP rtsp://[IOT Network IP]/3344080965 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;interleaved=0-1;mode=record;control_port=49886;timing_port=43285
CSeq: 3
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553


[21:28:04.655436] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:04.656349] exec_request:650 [0x7f8400d9b0]: <------ : Transport: RTP/AVP/UDP;unicast;mode=record;server_port=34139;control_port=33160;timing_port=33028
[21:28:04.656505] exec_request:650 [0x7f8400d9b0]: <------ : Session: 1
[21:28:04.656923] exec_request:650 [0x7f8400d9b0]: <------ : Audio-Jack-Status: connected; type=analog
[21:28:04.657194] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:04.657323] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 3
[21:28:04.657393] rtspcl_setup:239 [0x7f8400d9b0]: <------ : session:1
[21:28:04.657445] raopcl_connect:1058 [0x7f84009610]:opened audio socket   l:48516 r:34139
[21:28:04.657491] raopcl_connect:1059 [0x7f84009610]:opened timing socket  l:43285 r:33028
[21:28:04.657534] raopcl_connect:1060 [0x7f84009610]:opened control socket l:49886 r:33160
[21:28:04.657618] exec_request:614 [0x7f8400d9b0]: ----> : write RECORD rtsp://[IOT Network IP]/3344080965 RTSP/1.0
Range: npt=0-
RTP-Info: seq=9159;rtptime=4058685655
CSeq: 4
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553
Session: 1


[21:28:04.661339] _rtp_timing_thread:1296 [0x7f84009610]: NTP remote port: 33028
[21:28:04.661560] _rtp_timing_thread:1328 [0x7f84009610]: NTP sync: 1691198884.2841125161 (ref 2208988800.1107725339)
[21:28:04.664119] _rtp_timing_thread:1328 [0x7f84009610]: NTP sync: 1691198884.2852257716 (ref 1691198884.2849415967)
[21:28:04.667223] _rtp_timing_thread:1328 [0x7f84009610]: NTP sync: 1691198884.2865589294 (ref 1691198884.2862643737)
[21:28:04.766220] ActiveRemoteThread:634 raw active remote: get /ctrl-int/1/setproperty?dmcp.device-volume=-20.7525749 http/1.1
host: [raspberry pi].local
active-remote: 3948577553
user-agent: airplay/190.9


I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Reincarnation At The End Of The World
I TrackQueue.cpp:159: Track duration: 1364000
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/409a5d22214777ad7587b0da207285c00a387eae?1691285285_306omyX4yqozYDOfAh5rxiCqF8Yc4Dz9AnsWnDlJu70=
[21:28:05.452728] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:05.453309] exec_request:650 [0x7f8400d9b0]: <------ : Audio-Latency: 0
[21:28:05.453871] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:05.454150] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 4
[21:28:05.454601] raopcl_connect:1080 [0x7f84009610]: setting volume as part of connect -30.00
[21:28:05.454815] exec_request:614 [0x7f8400d9b0]: ----> : write SET_PARAMETER rtsp://[IOT Network IP]/3344080965 RTSP/1.0
Content-Type: text/parameters
Content-Length: 20
CSeq: 5
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553
Session: 1

volume: -30.000000

[21:28:05.477135] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:05.477796] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:05.478122] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 5
[21:28:05.478333] ActiveRemoteThread:668 [0xa56e10]: remote command setproperty?dmcp.device-volume=-20.7525749
[21:28:05.478511] ActiveRemoteThread:726 [0xa56e10]: volume feedback 0 (-20.75)
D MercurySession.cpp:251: Executing Mercury Request, type SEND
D MercurySession.cpp:251: Executing Mercury Request, type SEND
[21:28:05.479385] exec_request:614 [0x7f8400d9b0]: ----> : write SET_PARAMETER rtsp://[IOT Network IP]/3344080965 RTSP/1.0
Content-Type: text/parameters
Content-Length: 20
CSeq: 6
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553
Session: 1

volume: -20.752575

[21:28:05.521547] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:05.522231] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:05.522557] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 6
[21:28:05.523027] shadowRequest:223 [0xa56e10]: spotify play request
[21:28:05.601976] ActiveRemoteThread:634 raw active remote: get /ctrl-int/1/setproperty?dmcp.device-busy=0 http/1.1
host: [raspberry pi].local
active-remote: 3948577553
user-agent: airplay/190.9


[21:28:05.602385] ActiveRemoteThread:668 [0xa56e10]: remote command setproperty?dmcp.device-busy=0
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackPlayer.cpp:200: Playing
I spotify.cpp:133: trackUniqueId update  => c27f1826de3352b32952421744cd944675183a79
[21:28:05.934767] raopcl_accept_frames:416 [0x7f84009610]: begining to stream hts:0 n:1691198885.4014767924
[21:28:05.935150] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198885.4014669824 (ts:74581870869722)
[21:28:05.935222] raopcl_accept_frames:424 [0x7f84009610]: restarting w/o pause n:1691198885.4014767924, hts:74581870869722
[21:28:06.455771] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198886.1845166080 (ts:74581870891546)
[21:28:06.886847] _rtp_timing_thread:1328 [0x7f84009610]: NTP sync: 1691198886.3808570839 (ref 1691198886.3798241758)
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:249: Got next track id 1cb15c0187f740ddb46ebd3c2c263261 => <Pergola>
[21:28:07.074198] exec_request:614 [0x7f8400d9b0]: ----> : write SET_PARAMETER rtsp://[IOT Network IP]/3344080965 RTSP/1.0
RTP-Info: rtptime=4058791610
Content-Type: application/x-dmap-tagged
Content-Length: 91
CSeq: 7
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553
Session: 1

mlit
[21:28:07.081482] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:07.081747] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:07.081878] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 7
I spotify.cpp:169: Setting track position 420947 / 928143
[21:28:07.111256] exec_request:614 [0x7f8400d9b0]: ----> : write SET_PARAMETER rtsp://[IOT Network IP]/3344080965 RTSP/1.0
Content-Type: text/parameters
Content-Length: 44
CSeq: 8
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553
Session: 1

progress: 4040230090/4058793852/4081161195

[21:28:07.113592] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:07.113831] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:07.113937] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 8
D MercurySession.cpp:251: Executing Mercury Request, type SEND
[21:28:07.180390] exec_request:614 [0x7f8400d9b0]: ----> : write SET_PARAMETER rtsp://[IOT Network IP]/3344080965 RTSP/1.0
RTP-Info: rtptime=4058796186
Content-Type: image/jpeg
Content-Length: 24124
CSeq: 9
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553
Session: 1

����
[21:28:07.189601] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:07.189845] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:07.189952] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 9
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
[21:28:07.457212] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198887.1903951872 (ts:74581870936250)
[21:28:08.458349] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198888.1791361024 (ts:74581870979194)
[21:28:08.769560] raopcl_send_chunk:588 [0x7f84009610]: check n:3276741441 p:3276742674 ts:74581870994330 sn:9512
               retr: 0, avail: 0, send: 0, select: 0)
[21:28:09.143013] _rtp_timing_thread:1328 [0x7f84009610]: NTP sync: 1691198889.614103013 (ref 1691198889.610267064)
[21:28:09.459484] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198889.1850212352 (ts:74581871023898)
[21:28:10.460601] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198890.1806172160 (ts:74581871067546)
[21:28:11.461743] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198891.1796472832 (ts:74581871111546)
[21:28:11.600790] _rtp_timing_thread:1328 [0x7f84009610]: NTP sync: 1691198891.2580235962 (ref 1691198891.2576740375)
[21:28:12.462945] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198892.1820983296 (ts:74581871155898)
[21:28:13.464149] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198893.1982660608 (ts:74581871201658)
[21:28:14.010107] _rtp_timing_thread:1328 [0x7f84009610]: NTP sync: 1691198894.43276090 (ref 1691198894.38555406)
[21:28:14.465285] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198894.1938620416 (ts:74581871245306)
[21:28:15.466418] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198895.1963196416 (ts:74581871289658)
[21:28:16.064293] _rtp_timing_thread:1328 [0x7f84009610]: NTP sync: 1691198896.275998893 (ref 1691198896.271382123)
[21:28:16.467562] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198896.1953431552 (ts:74581871333658)
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
[21:28:17.468702] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198897.1806565376 (ts:74581871376250)
D spotify.cpp:416: keepAlive Shop Cone+
[21:28:18.168598] exec_request:614 [0x7f8400d9b0]: ----> : write OPTIONS * RTSP/1.0
CSeq: 10
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553
Session: 1


[21:28:18.172062] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:18.174467] exec_request:650 [0x7f8400d9b0]: <------ : Public: ANNOUNCE, SETUP, RECORD, PAUSE, FLUSH, TEARDOWN, OPTIONS, GET_PARAMETER, SET_PARAMETER, POST, GET
[21:28:18.175057] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:18.175339] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 10
[21:28:18.469920] _raopcl_send_sync:1254 [0x7f84009610]: sync ntp:1691198898.1831141376 (ts:74581871420602)
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
D SpircHandler.cpp:129: Another player took control, pausing playback
I TrackPlayer.cpp:94: Resetting state
I TrackPlayer.cpp:249: Playing done
I spotify.cpp:104: Disconnecting Shop Cone+
[21:28:18.872004] _rtp_timing_thread:1328 [0x7f84009610]: NTP sync: 1691198898.3744769100 (ref 1691198898.3739876832)
[21:28:19.873379] exec_request:614 [0x7f8400d9b0]: ----> : write FLUSH rtsp://[IOT Network IP]/3344080965 RTSP/1.0
RTP-Info: seq=10737;rtptime=4059297435
CSeq: 11
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553
Session: 1


[21:28:19.876443] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:19.876759] exec_request:650 [0x7f8400d9b0]: <------ : RTP-Info: rtptime=4059297082
[21:28:19.877018] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:19.877184] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 11
[21:28:19.877287] exec_request:614 [0x7f8400d9b0]: ----> : write TEARDOWN rtsp://[IOT Network IP]/3344080965 RTSP/1.0
CSeq: 12
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 5ca4b754d44c9e31
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 3948577553
Session: 1


[21:28:19.943297] exec_request:640 [0x7f8400d9b0]: <------ : 200: request ok
[21:28:19.943569] exec_request:650 [0x7f8400d9b0]: <------ : Server: AirTunes/190.9
[21:28:19.943708] exec_request:650 [0x7f8400d9b0]: <------ : CSeq: 12
I TrackPlayer.cpp:94: Resetting state
I MercurySession.cpp:128: Disconnecting mercury session
I PlainConnection.cpp:197: Closing socket...
E PlainConnection.cpp:146: Connection lost, will need to reconnect...
E MercurySession.cpp:53: Error while receiving packet: Reconnection required
I spotify.cpp:441: disconnecting player Shop Cone+
exit
[21:28:22.872647] main:1252 stopping cspot devices ...
[21:28:22.872716] main:1254 stopping Raop devices ...
[21:28:22.872742] Stop:926 terminate search thread ...
[21:28:22.906509] Stop:935 flush renderers ...
Segmentation fault

As always, I'm happy to provide more information!

spotraop quit with no obvious error

For testing I'm running spotraop 0.1.2 in interactive mode and it just quit during streaming to my HomePod without any clear reason I can see. Here's the end of the log:

TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I MercurySession.cpp:42: Received packet, command: 181
I MercurySession.cpp:42: Received packet, command: 181
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/9b953fc565935f5306780631c065f546588d717c?1690662300_mpvBnukEEDHF9EaYGYG7t-0LE1ChaL81d557BtkQbSQ=
D spotify.cpp:416: keepAlive Kitchen HomePod
[16:25:08.776745] raopcl_send_chunk:588 [0x7f84014b20]: check n:2653761448 p:2653762675 ts:74554397576403 sn:65293
               retr: 0, avail: 0, send: 0, select: 0)
D spotify.cpp:416: keepAlive Kitchen HomePod
[16:25:18.790625] raopcl_send_chunk:588 [0x7f84014b20]: check n:2653771462 p:2653772677 ts:74554398017459 sn:1010
               retr: 0, avail: 0, send: 0, select: 0)
[16:25:25.609548] UpdateDevices:318 [0xa56e10]: removing renderer (dev[device ID]) on timeout
I spotify.cpp:445: terminating player Office Cone
I spotify.cpp:119: player <Office Cone> deletion pending
I spotify.cpp:125: done
Segmentation fault

In case it's relevant, here's my config file (there are some other devices but I have them disabled):

<?xml version="1.0"?>
<spotraop>
	<common>
		<enabled>1</enabled>
		<volume_feedback>1</volume_feedback>
		<volume_mode>2</volume_mode>
		<send_metadata>1</send_metadata>
		<send_coverart>1</send_coverart>
		<remove_timeout>120</remove_timeout>
		<alac_encode>1</alac_encode>
		<encryption>0</encryption>
		<read_ahead>1000</read_ahead>
		<vorbis_rate>320</vorbis_rate>
	</common>

	<interface>?</interface>
	<ports>0:0</ports>
	
	<!-- Log levels: error|warn|info|debug|sdebug -->
	<slimproto_log>info</slimproto_log>
	<stream_log>info</stream_log>
	<output_log>info</output_log>
	<decode_log>info</decode_log>
	<main_log>info</main_log>
	<slimmain_log>info</slimmain_log>
	<raop_log>info</raop_log>
	<util_log>info</util_log>
	<log_limit>-1</log_limit>

	<device>
		<udn>[id]@Kitchen HomePod._raop._tcp.local</udn>
		<name>Kitchen HomePod</name>
		<friendly_name>Kitchen HomePod</friendly_name>
		<enabled>1</enabled>
	</device>

	<device>
		<udn>[id]@Aether Cone._raop._tcp.local</udn>
		<name>Office Cone</name>
		<friendly_name>Office Cone</friendly_name>
		<enabled>1</enabled>
	</device>

</spotraop>

As before, this is on Raspberry Pi 4B with 4GB RAM and Raspberry Pi OS Bullseye with Linux kernel 6.1.21-v8+.

Please let me know what additional information I can provide or testing I can do to troubleshoot. Thanks!

use Releases

very cool project, but don't you think it would be smarter to use the github releases for the releases? I mean you can still put the compiled version in the repo files if you want, or don't you do it because of a specific reason?

kernel too old on Synology

I'm getting this log output when running this project through Docker on my Synology DS916+ (DSM 7.1.1-42962 Update 6)

Ensuring user with uid:[1045] gid:[65539] exists ...
Group with gid [65539] name [spotc] already exists.
user with uid [1045] name [spotc] already exists.
Using SpotConnect raop version [0.4.1]
Command Line: [/app/bin/spotraop-linux-static -r 320 -x /config/config.xml -I -j -k -Z]
Segmentation fault (core dumped)

When I attach to the console and try to run the command myself, I get this output:

root@SpotConnect:/# /app/bin/spotraop-linux-static -r 320 -x /config/config.xml -I -j -k -Z 
FATAL: kernel too old
Segmentation fault (core dumped)

My kernel version is 3.10.108

Any hope to fix this with some config or change to my Docker env?

SpotUPnP on Synology DS220j

First of all, thank you so much for this brilliant piece of software! It is exactly what I was looking for since a while, because I have a bunch of DLNA-capable devices (Sony CMT-G2BNiP, Popcorn Hour C-200...) laying around, which I like to use with Spotify. When it works, it works perfectly, especially with the Sony system. However, there are several issues, which suspectedly come from the fact that I installed it on my Synology DS220j NAS. I run the spotupnp-linux-arm-static version, which basically works. I also managed to run it as a service, as described in the readme. I have created a config file with sections for each device. However, it seems that data is always sent as raw PCM, no matter which option I choose in the config file. Am I right in assuming that for using MP3 etc. an encoder needs to be installed on the NAS?
In addition, after working for a while it just crashes in the middle of a song. Playback just stops on the stereo without stopping in Spotify itself. The device still appears in the app but it doesn't connect anymore to the stereo. Restarting the service helps.
Furthermore, when a device is selected in the Spotify app, it instantaneously starts playing the last song. This behaviour is different from devices that natively support Spotify connect. Is there a way to change this, so that the device is just selected without directly starting to playback?
Thanks in advance for any hints.

Spot upnp Segmentation fault

Hi, thanks for sharing this awesome application. I have an Upnp Streamer, Yamaha NP-S2000. When i hit the stop button or turn the streamer off the application shuts down with Connection lost, will need to reconnect...
Segmentation fault
I run spotupnp-linux-armv6-static (interactive) on RaspberryPi 4 with 64-bit Cortex A-72 processor
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian

Cut from interactive mode window;
[17:41:53.239708] ActionHandler:584 [0xf3f1f008]: uPNP playing
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:351: current trackInfo id 183327d85ad24632940c84d5f0d723dd =>
I spotify.cpp:419: track bbbbde72dd49_2 started by URL (1)
I spotify.cpp:383: adjusting real position 0 from 0 (offset is 0)
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
E HTTPstreamer.cpp:400: HTTP error for bbbbde72dd49_2 => send(15, 32768) = 9768
I HTTPstreamer.cpp:459: HTTP close 15
[17:42:48.283075] ActionHandler:564 [0xf3f1f008]: uPNP stopped
I spotify.cpp:445: Disconnecting NP-S2000
[17:42:48.283178] shadowRequest:306 [0xf3f1f008]: Stop
[17:42:48.283201] AVTStop:204 [0xf3f1f008]: uPNP stop (cookie 0xb0)
I HTTPstreamer.cpp:148: HTTP streamer bbbbde72dd49_2 deleted
I TrackPlayer.cpp:94: Resetting state
I MercurySession.cpp:128: Disconnecting mercury session
I PlainConnection.cpp:197: Closing socket...
E PlainConnection.cpp:146: Connection lost, will need to reconnect...
Segmentation fault
jibax@raspberrypi:~/Desktop/spotconnect $

Great if you are able to help with this issue.
/Jesper

SpotRaop quits with exec_request:625 [0x7fac00d880]: response : request failed

I ran into this one while testing with the HomePod. I attempted to play a track by connecting from the Spotify devices menu, and a few seconds later after what seemed like mostly normal log messages, SpotRaop said exec_request:625 [0x7fac00d880]: response : request failed and quit to the command line.

I don't know how to reproduce this because when I started SpotRaop back up and tried to connect again, it worked normally.

It does seem like this is something SpotRaop could try to handle more gracefully though. 🙂

📃 Log
$ ./spotconnect/spotraop-linux-aarch64-static -x ./spotraop-config.xml -d all=debug
[13:42:05.370361] main:1137 Starting spotraop version: v0.1.5 (Aug  6 2023 @ 16:57:26)

[13:42:05.378339] Start:906 Binding to [Main Network IP]
[13:42:05.378872] StartActiveRemote:788 DACP port: 33615
[13:42:05.493610] AddRaopDevice:528 [0xa56e10]: adding renderer (Kitchen-HomePod@[Main Network IP]) with mac AAAA-XXXXXXXX
[13:42:05.493937] raopcl_create:713 [0x7fac0094e0]: using ALAC coding
I BellHTTPServer.cpp:191: Server listening on port 0
[13:42:05.500539] AddRaopDevice:481 [0xa572c8]: AppleTV with valid authentication key [key]
[13:42:05.501050] AddRaopDevice:528 [0xa572c8]: adding renderer (Den-Apple-TV@[Main Network IP]) with mac AAAA-XXXXXXXX
[13:42:05.501533] raopcl_create:713 [0x7fac0141c0]: using ALAC coding
I BellHTTPServer.cpp:191: Server listening on port 0
[13:42:05.502473] AddRaopDevice:514 [0xa57780]: creating MAC
[13:42:05.502842] AddRaopDevice:528 [0xa57780]: adding renderer (DEVF6GT4QEDWK3TEFQNZ@[IOT Network IP]) with mac AAAA-XXXXXXXX
[13:42:05.503769] raopcl_create:713 [0x7fac01dec0]: using ALAC coding
I BellHTTPServer.cpp:191: Server listening on port 0
I spotify.cpp:366: Server using actual port 36063
I MDNSService.cpp:181: using built-in mDNS for Kitchen HomePod
I spotify.cpp:366: Server using actual port 46323
I MDNSService.cpp:181: using built-in mDNS for Den Apple TV
I spotify.cpp:366: Server using actual port 41375
I MDNSService.cpp:181: using built-in mDNS for Shop Cone+
[13:42:05.657234] AddRaopDevice:481 [0xa57c38]: AppleTV with valid authentication key [key]
[13:42:05.657377] AddRaopDevice:528 [0xa57c38]: adding renderer (Sunroom-Apple-TV@[Main Network IP]) with mac AAAA-XXXXXXXX
[13:42:05.657637] raopcl_create:713 [0x7fac027ed0]: using ALAC coding
I BellHTTPServer.cpp:191: Server listening on port 0
I spotify.cpp:366: Server using actual port 41209
I MDNSService.cpp:181: using built-in mDNS for Sunroom Apple TV
I spotify.cpp:388: Spotify client connected for Kitchen HomePod
D Session.cpp:63: Connecting with AP <ap-gue1.spotify.com:4070>
D PlainConnection.cpp:101: Connected to spotify server
I Session.cpp:39: Received APHello response
D Session.cpp:44: Received shannon keys
D Session.cpp:82: Authorization successful
I MercurySession.cpp:42: Received packet, command: 4
D TimeProvider.cpp:15: Time synced with spotify servers
I MercurySession.cpp:42: Received packet, command: 2
I MercurySession.cpp:42: Received packet, command: 118
D MercurySession.cpp:251: Executing Mercury Request, type SUB
I MercurySession.cpp:42: Received packet, command: 27
D spotify.cpp:423: keepAlive Kitchen HomePod
D MercurySession.cpp:153: Received country code US
I MercurySession.cpp:42: Received packet, command: 80
I MercurySession.cpp:42: Received packet, command: 31
I MercurySession.cpp:42: Received packet, command: 105
I MercurySession.cpp:42: Received packet, command: 181
I AccessKeyFetcher.cpp:99: Access token expired, fetching new one... 238
I MercurySession.cpp:42: Received packet, command: 74
I MercurySession.cpp:42: Received packet, command: 179
D MercurySession.cpp:174: Received mercury packet
D MercurySession.cpp:251: Executing Mercury Request, type SEND
D SpircHandler.cpp:59: Sent kMessageTypeHello!
I MercurySession.cpp:42: Received packet, command: 181
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
I MercurySession.cpp:42: Received packet, command: 178
D SpircHandler.cpp:124: Notify frame
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
D MercurySession.cpp:174: Received mercury packet
I AccessKeyFetcher.cpp:114: Access token sucessfully fetched
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:170: Load frame 10!
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I TrackPlayer.cpp:94: Resetting state
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Moto Verse
I TrackQueue.cpp:159: Track duration: 176069
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/503cfd0bcd546647ef078e0c290f9339874c6d54?1691516544_HZDq-Qx6XgkfIQszx13pezeGDFOR6f-lwAld2swHvOg=
I TrackPlayer.cpp:167: Got track ID=503cfd0bcd546647ef078e0c290f9339874c6d54
I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa.scdn.co/audio/503cfd0bcd546647ef078e0c290f9339874c6d54?1691516544_HZDq-Qx6XgkfIQszx13pezeGDFOR6f-lwAld2swHvOg=
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Orb Two
I TrackQueue.cpp:159: Track duration: 184298
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I CDNAudioFile.cpp:70: Header and footer bytes received
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:235: new track will start at 0
[13:42:24.866597] shadowRequest:219 [0xa56e10]: spotify LOAD request
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[13:42:24.970621] raopcl_connect:996 [0x7fac0094e0]: local interface [Main Network IP]
[13:42:24.971255] exec_request:614 [0x7fac00d880]: ----> : write ANNOUNCE rtsp://[Main Network IP]/2615159066 RTSP/1.0
Content-Type: application/sdp
Content-Length: 178
CSeq: 1
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 7d4257d25816cb73
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 1405334755

v=0
o=iTunes 2615159066 0 IN IP4 [Main Network IP]
s=iTunes
c=IN IP4 [Main Network IP]
t=0 0
m=audio 0 RTP/AVP 96
a=rtpmap:96 AppleLossless
a=fmtp:96 352 0 16 40 10 14 2 255 0 0 44100

I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/53b2cb27ad071489f2498ce45c7d69fb800583c5?1691516545_aUomyCOqjYTYH3EHlFYrzNTzLmviuhkm9eLCaV9HByk=
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Morph
I TrackQueue.cpp:159: Track duration: 348644
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/d8fc53a027322cffaaa37cf3a459daaef43d774f?1691516545_rtL_LFPctPVM7PZokBL9-XjQ96xwsUmwDrICxLeW4uQ=
[13:42:34.982234] exec_request:625 [0x7fac00d880]: response :  request failed
Segmentation fault

spotraop-static is dynamically linked

~/SpotConect/spotraop/bin # file *-static
spotraop-freebsd-x86_64-static: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 12.3, FreeBSD-style, stripped
spotraop-linux-aarch64-static:  ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 4.4.255, stripped
spotraop-linux-arm-static:      ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 4.4.255, stripped
spotraop-linux-armv5-static:    ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 4.4.255, stripped
spotraop-linux-armv6-static:    ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 4.4.255, stripped
spotraop-linux-mips-static:     ELF 32-bit MSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked, interpreter /lib/ld.so.1, for GNU/Linux 4.4.255, stripped
spotraop-linux-powerpc-static:  ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked, interpreter /lib/ld.so.1, for GNU/Linux 4.4.255, stripped
spotraop-linux-sparc64-static:  ELF 64-bit MSB executable, SPARC V9, Sun UltraSPARC1 Extensions Required, relaxed memory ordering, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux.so.2, for GNU/Linux 4.4.255, stripped
spotraop-linux-x86-static:      ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 4.4.255, stripped
spotraop-linux-x86_64-static:   ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 4.4.255, stripped

Maybe build the against musl libc in linux? BTW I'm trying to build it but being unfamiliar with your build system is making it quite a challenge. As far as I understand you have hardcoded the tuples for each os? Maybe you can add some simple build instructions to get people going :)

[Question] Show metadata and album art on BubbleUpnp

Hello, today I restarted my spotify account, and tried your SpotConnect again, but I wanted to see if an instance of BubbleUpnp can act as a display for what's playing on SpotConnect.
Unfortunately, this does not happen for me. In some cases I see album art from a previous track, I cannot seem to be able to follow what's playing through BubbleUpnp.
Do you have any suggestion?
Thank you very much!

GLIBCXX Error on Raspberry Pi OS

I’m excited to try SpotConnect, but I’m having difficulty getting it up and running. When I try to run the aarch64 binary, I get this error:

./spotraop-linux-aarch64: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./spotraop-linux-aarch64)

Here’s my OS information:
$ uname -a
Linux [host] 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian

Any ideas on resolving this error?

[spotraop] Cannot run non-static build on docker using debian:stable as base image

Hello, I am experiencing a problem with spotraop when using the non-static binaries in a docker image.
At least for the x86_64 (linux) platform, I get:

spotconnect-airplay    | Using SpotConnect raop version [0.3.2]
spotconnect-airplay    | VORBIS_BITRATE not set, using 320
spotconnect-airplay    | Command Line: [/app/bin/spotraop-linux -r 320 -x /config/config.xml -I -j -k -Z]
spotconnect-airplay    | [13:05:39.065] main:1199 Starting spotraop version: v0.3.2 (Oct 18 2023 @ 17:31:23)
spotconnect-airplay    | 
spotconnect-airplay    | [13:05:39.067] Start:926 Cannot load SSL libraries
spotconnect-airplay    | [13:05:39.067] main:1263 Cannot start, exiting

when running the binary on a vanilla debian:stable image.
Installing openssl did not help.
The corresponding non-static upnp version of spotconnect runs ok under the same conditions.

I cannot figure out what I am doing wrong, can you please help me troubleshoot the issue?

Thank you.

Apple TV only shows metadata for SpotRaop audio once; requires restart to display again

While testing the Apple TV 4K for the pause issue (#15), I discovered that the AirPlay part of the Apple TV connection works one time and will not play again until the Apple TV is restarted. I can reproduce this 100% of the time by doing the following:

  1. Start a SpotConnect session to the Apple TV
  2. Disconnect from the Apple TV via the Spotify devices menu (doesn't seem to matter how short or long the audio was playing)
  3. Reconnect to the Apple TV some period of time later (I've waited up to about 30 seconds)

The log will seem to indicate that audio is playing normally (no errors I can see), but audio never starts playing on the Apple TV and the widget in Control Center shows "Not Playing".

When things are in this state, restarting SpotConnect doesn't help; the only resolution I've found is to restart the Apple TV. AirPlaying audio from other devices (Mac, iPhone) still works fine without the restart.

Just in case I'm missing something, here are the debug logs for a successful and unsuccessful session.

Successful (audio plays on Apple TV)
I spotify.cpp:381: Spotify client connected for Den Apple TV
D Session.cpp:63: Connecting with AP <ap-gue1.spotify.com:4070>
D PlainConnection.cpp:101: Connected to spotify server
I Session.cpp:39: Received APHello response
D Session.cpp:44: Received shannon keys
D Session.cpp:82: Authorization successful
I MercurySession.cpp:42: Received packet, command: 4
D TimeProvider.cpp:15: Time synced with spotify servers
I MercurySession.cpp:42: Received packet, command: 2
I MercurySession.cpp:42: Received packet, command: 118
I MercurySession.cpp:42: Received packet, command: 27
I MercurySession.cpp:42: Received packet, command: 80
I MercurySession.cpp:42: Received packet, command: 31
D MercurySession.cpp:251: Executing Mercury Request, type SUB
I MercurySession.cpp:42: Received packet, command: 105
D spotify.cpp:416: keepAlive Den Apple TV
D MercurySession.cpp:153: Received country code US
I MercurySession.cpp:42: Received packet, command: 181
I AccessKeyFetcher.cpp:99: Access token expired, fetching new one... 238
I MercurySession.cpp:42: Received packet, command: 74
I MercurySession.cpp:42: Received packet, command: 179
D MercurySession.cpp:174: Received mercury packet
D MercurySession.cpp:251: Executing Mercury Request, type SEND
D SpircHandler.cpp:59: Sent kMessageTypeHello!
I MercurySession.cpp:42: Received packet, command: 181
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:124: Notify frame
I MercurySession.cpp:42: Received packet, command: 178
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
D MercurySession.cpp:174: Received mercury packet
I AccessKeyFetcher.cpp:114: Access token sucessfully fetched
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:170: Load frame 8!
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I TrackPlayer.cpp:94: Resetting state
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Coalescence Cascade
I TrackQueue.cpp:159: Track duration: 1080000
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 181
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/9601f3a3e1b525316a5705a11732dfc9935043dd?1691191980_4v0_VRwK17LLybBgyhm1Ine-1wL-0fW2OnHUh3M0JlA=
I TrackPlayer.cpp:167: Got track ID=9601f3a3e1b525316a5705a11732dfc9935043dd
I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa.scdn.co/audio/9601f3a3e1b525316a5705a11732dfc9935043dd?1691191980_4v0_VRwK17LLybBgyhm1Ine-1wL-0fW2OnHUh3M0JlA=
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Broken Chroma
I TrackQueue.cpp:159: Track duration: 1080006
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/a2ac0c42588c5ce4cfb8e82554281183ffa637a8?1691191980_jL3OwvlkDFMk2wUsZ-YNqZd54K1A8turyPMZ-0rnw5g=
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Know Your Shadow
I TrackQueue.cpp:159: Track duration: 1080012
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I CDNAudioFile.cpp:70: Header and footer bytes received
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:235: new track will start at 682789
[19:33:01.208272] shadowRequest:219 [0xa572c8]: spotify LOAD request
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/604f05ea7406c84e346203bad424dc9e15b05dca?1691191981_G68IFXafH76sVkrRLik9F2BQHaQfAH5OWu2psPdFaCA=
[19:33:01.312689] raopcl_connect:996 [0x7f8c014580]: local interface [RPI IP]
[19:33:01.314188] exec_request:614 [0x7f8c018920]: ----> : write POST /pair-verify RTSP/1.0
Content-Type: application/octet-stream
Content-Length: 68
CSeq: 31
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936


I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
[19:33:01.340725] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:01.341116] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:01 GMT
[19:33:01.341340] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 96
[19:33:01.341734] exec_request:650 [0x7f8c018920]: <------ : Content-Type: application/octet-stream
[19:33:01.342006] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:01.342143] exec_request:650 [0x7f8c018920]: <------ : CSeq: 31
[19:33:01.342215] exec_request:691 [0x7f8c018920]: Body data len 96
0000  c7 7c cf 33 12 9b 9c 05 91 c5 6d b8 8e af 3c b9  | 3      m   <
0010  c9 8a 1e 9f bf d7 5a a9 86 28 55 e7 54 6c ce 7f       Z  (U Tl
0020  31 5e 3f 19 ab 5d 77 35 45 2f df 01 45 c4 f1 80 1^?  ]w5E/  E
0030  05 7f fc b5 d5 40 7b 92 53 62 e3 e8 48 a6 a0 dd      @{ Sb  H
0040  62 cf 18 aa dc 6d c8 3e f8 7b e4 4d 63 85 b1 51 b    m > { Mc  Q
0050  fa 2b e1 e8 6a 91 e6 73 9a d1 b1 5b c5 e3 a5 c9  +  j  s   [
[19:33:01.350231] exec_request:614 [0x7f8c018920]: ----> : write POST /pair-verify RTSP/1.0
Content-Type: application/octet-stream
Content-Length: 68
CSeq: 32
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936


[19:33:01.356721] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:01.357110] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:01 GMT
[19:33:01.357327] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:01.357722] exec_request:650 [0x7f8c018920]: <------ : Content-Type: application/octet-stream
[19:33:01.357995] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:01.358130] exec_request:650 [0x7f8c018920]: <------ : CSeq: 32
[19:33:01.358445] exec_request:614 [0x7f8c018920]: ----> : write ANNOUNCE rtsp://[ATV IP]/3618308148 RTSP/1.0
Content-Type: application/sdp
Content-Length: 178
CSeq: 33
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936

v=0
o=iTunes 3618308148 0 IN IP4 [RPI IP]
s=iTunes
c=IN IP4 [ATV IP]
t=0 0
m=audio 0 RTP/AVP 96
a=rtpmap:96 AppleLossless
a=fmtp:96 352 0 16 40 10 14 2 255 0 0 44100

[19:33:01.416729] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:01.417127] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:01 GMT
[19:33:01.417343] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:01.417618] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:01.417753] exec_request:650 [0x7f8c018920]: <------ : CSeq: 33
[19:33:01.417918] exec_request:614 [0x7f8c018920]: ----> : write SETUP rtsp://[ATV IP]/3618308148 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;interleaved=0-1;mode=record;control_port=45947;timing_port=49416
CSeq: 34
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936


[19:33:01.424604] _rtp_timing_thread:1296 [0x7f8c014580]: NTP remote port: 50720
[19:33:01.424732] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105581.1823999596 (ref 2208988800.1374218630)
[19:33:01.428602] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105581.1840741378 (ref 1691105581.1833069543)
[19:33:01.432594] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105581.1857904068 (ref 1691105581.1852109312)
[19:33:01.462742] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:01.463124] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:01 GMT
[19:33:01.463340] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:01.464206] exec_request:650 [0x7f8c018920]: <------ : Transport: RTP/AVP/UDP;unicast;mode=record;server_port=57445;control_port=53453;timing_port=0
[19:33:01.464361] exec_request:650 [0x7f8c018920]: <------ : Session: 1
[19:33:01.464668] exec_request:650 [0x7f8c018920]: <------ : Audio-Jack-Status: connected
[19:33:01.464942] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:01.465097] exec_request:650 [0x7f8c018920]: <------ : CSeq: 34
[19:33:01.465170] rtspcl_setup:239 [0x7f8c018920]: <------ : session:1
[19:33:01.465219] raopcl_analyse_setup:943 [0x7f8c014580]: missing timing port, will get it later
[19:33:01.465269] raopcl_connect:1058 [0x7f8c014580]:opened audio socket   l:47047 r:57445
[19:33:01.465315] raopcl_connect:1059 [0x7f8c014580]:opened timing socket  l:49416 r:0
[19:33:01.465360] raopcl_connect:1060 [0x7f8c014580]:opened control socket l:45947 r:53453
[19:33:01.465444] exec_request:614 [0x7f8c018920]: ----> : write RECORD rtsp://[ATV IP]/3618308148 RTSP/1.0
Range: npt=0-
RTP-Info: seq=56508;rtptime=4238982175
CSeq: 35
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1


[19:33:01.472733] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:01.473145] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:01 GMT
[19:33:01.473363] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:01.473595] exec_request:650 [0x7f8c018920]: <------ : Audio-Latency: 3579
[19:33:01.473869] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:01.474003] exec_request:650 [0x7f8c018920]: <------ : CSeq: 35
[19:33:01.474233] raopcl_connect:1080 [0x7f8c014580]: setting volume as part of connect -30.00
[19:33:01.474344] exec_request:614 [0x7f8c018920]: ----> : write SET_PARAMETER rtsp://[ATV IP]/3618308148 RTSP/1.0
Content-Type: text/parameters
Content-Length: 20
CSeq: 36
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1

volume: -30.000000

[19:33:01.481726] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:01.482101] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:01 GMT
[19:33:01.482315] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:01.482587] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:01.482724] exec_request:650 [0x7f8c018920]: <------ : CSeq: 36
D MercurySession.cpp:251: Executing Mercury Request, type SEND
[19:33:01.483083] shadowRequest:223 [0xa572c8]: spotify play request
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackPlayer.cpp:200: Playing
I spotify.cpp:133: trackUniqueId update  => 9601f3a3e1b525316a5705a11732dfc9935043dd
[19:33:01.655747] raopcl_send_chunk:519 [0x7f8c014580]: begining to stream (LATE) hts:74577739831693 n:1691105581.2816403329
[19:33:01.655880] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105211.2589917184 (ts:74577739831693)
[19:33:01.917018] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183434588 p:3183072676 ts:74577740147437 sn:57404
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:02.284707] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183434956 p:3183082678 ts:74577740588493 sn:58657
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:02.475363] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105234.994639872 (ts:74577740829613)
[19:33:02.632892] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183435304 p:3183092679 ts:74577741029549 sn:59910
               retr: 0, avail: 0, send: 0, select: 0)
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:249: Got next track id 7599745a6d784390ad20b70154995851 => <Coalescence Cascade>
[19:33:02.822806] exec_request:614 [0x7f8c018920]: ----> : write SET_PARAMETER rtsp://[ATV IP]/3618308148 RTSP/1.0
RTP-Info: rtptime=4224109165
Content-Type: application/x-dmap-tagged
Content-Length: 80
CSeq: 37
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1

mlit
[19:33:02.826816] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:02.827184] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:02 GMT
[19:33:02.827387] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:02.827639] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:02.827750] exec_request:650 [0x7f8c018920]: <------ : CSeq: 37
I spotify.cpp:169: Setting track position 1736 / 1080000
[19:33:02.828102] exec_request:614 [0x7f8c018920]: ----> : write SET_PARAMETER rtsp://[ATV IP]/3618308148 RTSP/1.0
Content-Type: text/parameters
Content-Length: 44
CSeq: 38
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1

progress: 4238965710/4239042267/4286593710

[19:33:02.831809] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:02.832263] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:02 GMT
[19:33:02.832488] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:02.832765] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:02.832902] exec_request:650 [0x7f8c018920]: <------ : CSeq: 38
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
[19:33:02.951747] exec_request:614 [0x7f8c018920]: ----> : write SET_PARAMETER rtsp://[ATV IP]/3618308148 RTSP/1.0
RTP-Info: rtptime=4224180269
Content-Type: image/jpeg
Content-Length: 23934
CSeq: 39
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1

����
[19:33:02.960805] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:02.961260] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:02 GMT
[19:33:02.961483] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:02.961756] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:02.961895] exec_request:650 [0x7f8c018920]: <------ : CSeq: 39
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
[19:33:03.067006] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183435738 p:3183102672 ts:74577741470253 sn:61162
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:03.419794] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183436091 p:3183112673 ts:74577741911309 sn:62415
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:03.476569] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105260.2386952192 (ts:74577741990509)
[19:33:03.769749] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105583.3305947996 (ref 1691105583.3298583105)
[19:33:03.794238] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183436466 p:3183122675 ts:74577742352365 sn:63668
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:04.143406] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183436815 p:3183132676 ts:74577742793421 sn:64921
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:04.477738] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105287.2843869184 (ts:74577743185901)
[19:33:04.507407] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183437179 p:3183142677 ts:74577743234477 sn:638
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:04.917856] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183437589 p:3183152678 ts:74577743675533 sn:1891
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:05.280259] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183437952 p:3183162672 ts:74577744116237 sn:3143
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:05.478925] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105314.1689583616 (ts:74577744364749)
[19:33:05.653795] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183438325 p:3183172673 ts:74577744557293 sn:4396
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:05.897850] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105585.3856133307 (ref 1691105585.3848643900)
[19:33:05.997756] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183438669 p:3183182674 ts:74577744998349 sn:5649
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:06.362093] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183439033 p:3183192676 ts:74577745439405 sn:6902
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:06.480101] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105342.1794048000 (ts:74577745600621)
[19:33:06.703217] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183439375 p:3183202677 ts:74577745880461 sn:8155
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:07.090948] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183439762 p:3183212678 ts:74577746321517 sn:9408
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:07.433623] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183440105 p:3183222679 ts:74577746762573 sn:10661
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:07.481343] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105370.664272896 (ts:74577746823821)
[19:33:07.836501] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183440508 p:3183232673 ts:74577747203277 sn:11913
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:08.182403] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183440854 p:3183242674 ts:74577747644333 sn:13166
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:08.482611] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105397.264175616 (ts:74577748010413)
[19:33:08.556933] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183441228 p:3183252675 ts:74577748085389 sn:14419
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:08.600971] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105588.2581047711 (ref 1691105588.2571348426)
[19:33:08.901188] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183441573 p:3183262676 ts:74577748526445 sn:15672
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:09.270573] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183441942 p:3183272678 ts:74577748967501 sn:16925
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:09.483743] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105425.1362755584 (ts:74577749256493)
[19:33:09.616623] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183442288 p:3183282679 ts:74577749408557 sn:18178
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:09.976402] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183442648 p:3183292672 ts:74577749849261 sn:19430
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:10.365461] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183443037 p:3183302674 ts:74577750290317 sn:20683
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:10.484871] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105452.242745344 (ts:74577750435693)
[19:33:10.736720] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183443408 p:3183312675 ts:74577750731373 sn:21936
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:11.051106] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105591.219391224 (ref 1691105591.211910757)
[19:33:11.078686] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183443750 p:3183322676 ts:74577751172429 sn:23189
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:11.429997] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183444101 p:3183332677 ts:74577751613485 sn:24442
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:11.486045] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105480.72941568 (ts:74577751668749)
[19:33:11.809455] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183444481 p:3183342679 ts:74577752054541 sn:25695
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:12.169430] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183444841 p:3183352672 ts:74577752495245 sn:26947
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:12.487219] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105507.598409216 (ts:74577752864845)
[19:33:12.540492] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183445212 p:3183362673 ts:74577752936301 sn:28200
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:12.939526] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183445611 p:3183372674 ts:74577753377357 sn:29453
               retr: 0, avail: 0, send: 0, select: 0)
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
[19:33:13.341129] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183446013 p:3183382676 ts:74577753818413 sn:30706
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:13.488403] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105532.3303211008 (ts:74577753995117)
[19:33:13.697087] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183446368 p:3183392677 ts:74577754259469 sn:31959
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:13.709241] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105593.3046050935 (ref 1691105593.3040097245)
[19:33:14.083534] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183446755 p:3183402678 ts:74577754700525 sn:33212
               retr: 0, avail: 0, send: 0, select: 0)
[19:33:14.343340] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:34020 nb:1 (mis:0)
[19:33:14.459542] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183447131 p:3183412672 ts:74577755141229 sn:34464
               retr: 1, avail: 0, send: 0, select: 0)
D spotify.cpp:416: keepAlive Den Apple TV
[19:33:14.824046] exec_request:614 [0x7f8c018920]: ----> : write OPTIONS * RTSP/1.0
CSeq: 40
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1


[19:33:14.829384] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:14.829745] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:14 GMT
[19:33:14.829939] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:14.830928] exec_request:650 [0x7f8c018920]: <------ : Public: ANNOUNCE, SETUP, RECORD, PAUSE, FLUSH, TEARDOWN, OPTIONS, GET_PARAMETER, SET_PARAMETER, POST, GET, PUT
[19:33:14.831179] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:14.831294] exec_request:650 [0x7f8c018920]: <------ : CSeq: 40
[19:33:14.856295] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183447528 p:3183422673 ts:74577755582285 sn:35717
               retr: 1, avail: 0, send: 0, select: 0)
[19:33:14.918362] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:35890 nb:1 (mis:0)
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
D SpircHandler.cpp:129: Another player took control, pausing playback
I TrackPlayer.cpp:94: Resetting state
I TrackPlayer.cpp:249: Playing done
I spotify.cpp:104: Disconnecting Den Apple TV
I MercurySession.cpp:42: Received packet, command: 181
[19:33:15.891455] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105595.3828409293 (ref 1691105595.3822614004)
[19:33:16.892870] exec_request:614 [0x7f8c018920]: ----> : write FLUSH rtsp://[ATV IP]/3618308148 RTSP/1.0
RTP-Info: seq=36059;rtptime=4238541870
CSeq: 41
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1


[19:33:16.898478] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:16.898859] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:16 GMT
[19:33:16.899079] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:16.899389] exec_request:650 [0x7f8c018920]: <------ : RTP-Info: rtptime=4238541517
[19:33:16.899665] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:16.899802] exec_request:650 [0x7f8c018920]: <------ : CSeq: 41
[19:33:16.899902] exec_request:614 [0x7f8c018920]: ----> : write TEARDOWN rtsp://[ATV IP]/3618308148 RTSP/1.0
CSeq: 42
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: d60b3df46a5809ab
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1


[19:33:17.511517] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:17.511937] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:17 GMT
[19:33:17.512157] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:17.512434] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:17.512570] exec_request:650 [0x7f8c018920]: <------ : CSeq: 42
I TrackPlayer.cpp:94: Resetting state
I MercurySession.cpp:128: Disconnecting mercury session
I PlainConnection.cpp:197: Closing socket...
E PlainConnection.cpp:146: Connection lost, will need to reconnect...
E MercurySession.cpp:53: Error while receiving packet: Reconnection required
I spotify.cpp:441: disconnecting player Den Apple TV
Unsuccessful (SpotConnect seems to think audio is playing, but it Apple TV disagrees)
I spotify.cpp:381: Spotify client connected for Den Apple TV
D Session.cpp:63: Connecting with AP <ap-gue1.spotify.com:4070>
D PlainConnection.cpp:101: Connected to spotify server
I Session.cpp:39: Received APHello response
D Session.cpp:44: Received shannon keys
D Session.cpp:82: Authorization successful
I MercurySession.cpp:42: Received packet, command: 4
D TimeProvider.cpp:15: Time synced with spotify servers
I MercurySession.cpp:42: Received packet, command: 2
I MercurySession.cpp:42: D Received packet, command: 118MercurySession.cpp:251: Executing Mercury Request, type SUB

D spotify.cpp:416: keepAlive Den Apple TV
I MercurySession.cpp:42: Received packet, command: 27
D MercurySession.cpp:153: Received country code US
I MercurySession.cpp:42: Received packet, command: 80
I MercurySession.cpp:42: Received packet, command: 31
I MercurySession.cpp:42: Received packet, command: 105
I MercurySession.cpp:42: Received packet, command: 181
I AccessKeyFetcher.cpp:99: Access token expired, fetching new one... 238
I MercurySession.cpp:42: Received packet, command: 74
I MercurySession.cpp:42: Received packet, command: 179
D MercurySession.cpp:174: Received mercury packet
D MercurySession.cpp:251: Executing Mercury Request, type SEND
D SpircHandler.cpp:59: Sent kMessageTypeHello!
I MercurySession.cpp:42: Received packet, command: 181
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:124: Notify frame
D I SpircHandler.cpp:67: Received subscription response
MercurySession.cpp:42: Received packet, command: 178
D SpircHandler.cpp:124: Notify frame
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
D MercurySession.cpp:174: Received mercury packet
I AccessKeyFetcher.cpp:114: Access token sucessfully fetched
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:170: Load frame 8!
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I TrackPlayer.cpp:94: Resetting state
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Coalescence Cascade
I TrackQueue.cpp:159: Track duration: 1080000
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 181
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/9601f3a3e1b525316a5705a11732dfc9935043dd?1691192025_HkcCPSB5aSoQpK-ISPrf4S5Z1t2TTOHnpa3N2dNTB2Y=
I TrackPlayer.cpp:167: Got track ID=9601f3a3e1b525316a5705a11732dfc9935043dd
I CDNAudioFile.cpp:43: Opening HTTP stream to https://audio-fa.scdn.co/audio/9601f3a3e1b525316a5705a11732dfc9935043dd?1691192025_HkcCPSB5aSoQpK-ISPrf4S5Z1t2TTOHnpa3N2dNTB2Y=
D MercurySession.cpp:251: Executing Mercury Request, type GET
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Broken Chroma
I TrackQueue.cpp:159: Track duration: 1080006
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I MercurySession.cpp:42: Received packet, command: 13
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
I CDNAudioFile.cpp:70: Header and footer bytes received
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:235: new track will start at 1736
[19:33:45.392838] shadowRequest:219 [0xa572c8]: spotify LOAD request
[19:33:45.496821] raopcl_connect:996 [0x7f8c014580]: local interface [RPI IP]
[19:33:45.498294] exec_request:614 [0x7f8c018920]: ----> : write POST /pair-verify RTSP/1.0
Content-Type: application/octet-stream
Content-Length: 68
CSeq: 43
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936


I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/a2ac0c42588c5ce4cfb8e82554281183ffa637a8?1691192025_a_Las1CCrZEhVkiHOmjebBxmEdhcL--UWJ2O6uCh97s=
[19:33:45.519862] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:45.520241] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:45 GMT
[19:33:45.520464] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 96
[19:33:45.520858] exec_request:650 [0x7f8c018920]: <------ : Content-Type: application/octet-stream
[19:33:45.521150] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:45.521288] exec_request:650 [0x7f8c018920]: <------ : CSeq: 43
[19:33:45.521362] exec_request:691 [0x7f8c018920]: Body data len 96
0000  7f fb 13 eb 4d a0 cc c2 94 e7 da 1f 04 c1 a5 bc     M
0010  a9 84 d3 3e 6e eb 4a 5e 01 a1 c4 e4 e4 0b ba 74    >n J^       t
0020  a7 95 49 70 b9 fd be d9 ba 71 88 d4 7e 6a 89 15   Ip     q  ~j
0030  8a 43 39 79 48 17 e5 40 64 d1 bd 59 37 c3 84 4b  C9yH  @d  Y7  K
0040  be f5 ac 35 84 f6 49 63 28 c1 8f 5f 4a f9 49 4b    5  Ic(  _J IK
0050  02 ce fb 47 f2 c3 4c d4 2c 97 d0 b3 9f 98 2e 5e    G  L ,     .^
[19:33:45.529307] exec_request:614 [0x7f8c018920]: ----> : write POST /pair-verify RTSP/1.0
Content-Type: application/octet-stream
Content-Length: 68
CSeq: 44
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936


[19:33:45.535856] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:45.536230] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:45 GMT
[19:33:45.536446] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:45.536841] exec_request:650 [0x7f8c018920]: <------ : Content-Type: application/octet-stream
[19:33:45.537130] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:45.537268] exec_request:650 [0x7f8c018920]: <------ : CSeq: 44
[19:33:45.537586] exec_request:614 [0x7f8c018920]: ----> : write ANNOUNCE rtsp://[ATV IP]/1425739616 RTSP/1.0
Content-Type: application/sdp
Content-Length: 178
CSeq: 45
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936

v=0
o=iTunes 1425739616 0 IN IP4 [RPI IP]
s=iTunes
c=IN IP4 [ATV IP]
t=0 0
m=audio 0 RTP/AVP 96
a=rtpmap:96 AppleLossless
a=fmtp:96 352 0 16 40 10 14 2 255 0 0 44100

[19:33:45.594874] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:45.595277] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:45 GMT
[19:33:45.595496] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:45.595773] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:45.595910] exec_request:650 [0x7f8c018920]: <------ : CSeq: 45
[19:33:45.596083] exec_request:614 [0x7f8c018920]: ----> : write SETUP rtsp://[ATV IP]/1425739616 RTSP/1.0
Transport: RTP/AVP/UDP;unicast;interleaved=0-1;mode=record;control_port=60604;timing_port=47633
CSeq: 46
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936


[19:33:45.600723] _rtp_timing_thread:1296 [0x7f8c014580]: NTP remote port: 62215
[19:33:45.600822] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105625.2580373401 (ref 2208988800.2137256614)
[19:33:45.604729] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105625.2597213968 (ref 1691105625.2589455918)
[19:33:45.608728] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105625.2614398132 (ref 1691105625.2606669073)
D MercurySession.cpp:251: Executing Mercury Request, type GET
[19:33:45.625877] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:45.626267] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:45 GMT
[19:33:45.626482] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:45.627344] exec_request:650 [0x7f8c018920]: <------ : Transport: RTP/AVP/UDP;unicast;mode=record;server_port=56554;control_port=52617;timing_port=0
[19:33:45.627498] exec_request:650 [0x7f8c018920]: <------ : Session: 1
[19:33:45.627807] exec_request:650 [0x7f8c018920]: <------ : Audio-Jack-Status: connected
[19:33:45.628081] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:45.628216] exec_request:650 [0x7f8c018920]: <------ : CSeq: 46
[19:33:45.628287] rtspcl_setup:239 [0x7f8c018920]: <------ : session:1
[19:33:45.628337] raopcl_analyse_setup:943 [0x7f8c014580]: missing timing port, will get it later
[19:33:45.628383] raopcl_connect:1058 [0x7f8c014580]:opened audio socket   l:35944 r:56554
[19:33:45.628429] raopcl_connect:1059 [0x7f8c014580]:opened timing socket  l:47633 r:0
[19:33:45.628474] raopcl_connect:1060 [0x7f8c014580]:opened control socket l:60604 r:52617
[19:33:45.628558] exec_request:614 [0x7f8c018920]: ----> : write RECORD rtsp://[ATV IP]/1425739616 RTSP/1.0
Range: npt=0-
RTP-Info: seq=36059;rtptime=4240929769
CSeq: 47
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1


[19:33:45.635862] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:45.636235] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:45 GMT
[19:33:45.636450] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:45.636681] exec_request:650 [0x7f8c018920]: <------ : Audio-Latency: 3579
[19:33:45.636952] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:45.637107] exec_request:650 [0x7f8c018920]: <------ : CSeq: 47
[19:33:45.637362] raopcl_connect:1080 [0x7f8c014580]: setting volume as part of connect -30.00
[19:33:45.637469] exec_request:614 [0x7f8c018920]: ----> : write SET_PARAMETER rtsp://[ATV IP]/1425739616 RTSP/1.0
Content-Type: text/parameters
Content-Length: 20
CSeq: 48
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1

volume: -30.000000

[19:33:45.641882] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:45.642254] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:45 GMT
[19:33:45.642467] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:45.642741] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:45.642877] exec_request:650 [0x7f8c018920]: <------ : CSeq: 48
D MercurySession.cpp:251: Executing Mercury Request, type SEND
[19:33:45.643228] shadowRequest:223 [0xa572c8]: spotify play request
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:158: Track name: Know Your Shadow
I TrackQueue.cpp:159: Track duration: 1080012
D TrackQueue.cpp:161: trackInfo.restriction.size() = 1
D TrackQueue.cpp:212: File format: 2
D TrackQueue.cpp:212: File format: 1
D TrackQueue.cpp:212: File format: 0
I TrackPlayer.cpp:200: Playing
I spotify.cpp:133: trackUniqueId update  => 9601f3a3e1b525316a5705a11732dfc9935043dd
[19:33:45.747716] raopcl_send_chunk:519 [0x7f8c014580]: begining to stream (LATE) hts:74577755702317 n:1691105625.3211407176
[19:33:45.747848] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105571.2066350080 (ts:74577755702317)
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 178
I MercurySession.cpp:42: Received packet, command: 13
D MercurySession.cpp:174: Received mercury packet
I TrackQueue.cpp:252: Got audio key
I TrackQueue.cpp:275: Received access key, fetching CDN URL...
[19:33:45.928789] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:36639 nb:1 (mis:0)
[19:33:45.996981] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183478668 p:3183432674 ts:74577756023341 sn:36970
               retr: 1, avail: 0, send: 0, select: 0)
I TrackQueue.cpp:301: Received CDN URL, https://audio-fa.scdn.co/audio/604f05ea7406c84e346203bad424dc9e15b05dca?1691192026_osBrXPzX88tdJwnmg7zcyhIWA-kGIs8hGYrR1INT-Vo=
[19:33:46.368418] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183479040 p:3183442675 ts:74577756464397 sn:38223
               retr: 1, avail: 0, send: 0, select: 0)
[19:33:46.528101] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:38585 nb:1 (mis:0)
[19:33:46.776278] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183479448 p:3183452677 ts:74577756905453 sn:39476
               retr: 2, avail: 0, send: 0, select: 0)
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:249: Got next track id 7599745a6d784390ad20b70154995851 => <Coalescence Cascade>
[19:33:46.853003] exec_request:614 [0x7f8c018920]: ----> : write SET_PARAMETER rtsp://[ATV IP]/1425739616 RTSP/1.0
RTP-Info: rtptime=4239848845
Content-Type: application/x-dmap-tagged
Content-Length: 80
CSeq: 49
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1

mlit
[19:33:46.857920] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:46.858276] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:46 GMT
[19:33:46.858468] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:46.858721] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:46.858834] exec_request:650 [0x7f8c018920]: <------ : CSeq: 49
I spotify.cpp:169: Setting track position 0 / 1080000
[19:33:46.873607] exec_request:614 [0x7f8c018920]: ----> : write SET_PARAMETER rtsp://[ATV IP]/1425739616 RTSP/1.0
Content-Type: text/parameters
Content-Length: 44
CSeq: 50
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1

progress: 4240984674/4240984674/4288612674

[19:33:46.877945] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:46.878321] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:46 GMT
[19:33:46.878537] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:46.878816] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:46.878955] exec_request:650 [0x7f8c018920]: <------ : CSeq: 50
D MercurySession.cpp:251: Executing Mercury Request, type SEND
[19:33:46.963012] exec_request:614 [0x7f8c018920]: ----> : write SET_PARAMETER rtsp://[ATV IP]/1425739616 RTSP/1.0
RTP-Info: rtptime=4239918541
Content-Type: image/jpeg
Content-Length: 23934
CSeq: 51
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1

����
[19:33:46.971933] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:46.972338] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:46 GMT
[19:33:46.972561] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:46.972841] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:46.972979] exec_request:650 [0x7f8c018920]: <------ : CSeq: 51
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
[19:33:47.015845] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:40118 nb:1 (mis:0)
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
[19:33:47.182426] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183479854 p:3183462678 ts:74577757346509 sn:40729
               retr: 3, avail: 0, send: 0, select: 0)
[19:33:47.530562] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183480202 p:3183472679 ts:74577757787565 sn:41982
               retr: 3, avail: 0, send: 0, select: 0)
[19:33:48.016978] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105628.37093376 (ts:74577758195181)
[19:33:48.161885] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105628.695213471 (ref 1691105628.687989599)
[19:33:48.165897] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:43153 nb:1 (mis:0)
[19:33:48.795658] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183481467 p:3183482672 ts:74577758228269 sn:43234
               retr: 4, avail: 0, send: 0, select: 0)
[19:33:49.166998] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105629.644415488 (ts:74577758245517)
[19:33:50.168125] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105630.600375296 (ts:74577758289165)
[19:33:50.586123] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105630.2517198727 (ref 1691105630.2508664143)
[19:33:51.169255] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105631.693501952 (ts:74577758334221)
[19:33:52.170401] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105632.580911104 (ts:74577758377165)
[19:33:52.682080] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105632.2929433983 (ref 1691105632.2923625907)
[19:33:53.171532] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105633.536870912 (ts:74577758420813)
[19:33:54.172659] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105634.698548224 (ts:74577758466573)
[19:33:54.837220] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:43989 nb:1 (mis:0)
[19:33:55.486257] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105635.2088363423 (ref 1691105635.2079508425)
[19:33:55.838352] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105635.3534225408 (ts:74577758539789)
[19:33:56.751419] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:44229 nb:1 (mis:0)
[19:33:57.116337] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:44275 nb:1 (mis:0)
[19:33:58.117142] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105638.453902336 (ts:74577758640461)
[19:33:58.773816] raopcl_send_chunk:588 [0x7f8c014580]: check n:3183491445 p:3183492674 ts:74577758669325 sn:44487
               retr: 7, avail: 0, send: 0, select: 0)
[19:33:59.118275] _raopcl_send_sync:1254 [0x7f8c014580]: sync ntp:1691105639.409862144 (ts:74577758684109)
[19:33:59.258437] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:44543 nb:1 (mis:0)
D spotify.cpp:416: keepAlive Den Apple TV
[19:33:59.446187] exec_request:614 [0x7f8c018920]: ----> : write OPTIONS * RTSP/1.0
CSeq: 52
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1


[19:33:59.451539] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:33:59.451888] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:33:59 GMT
[19:33:59.452080] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:33:59.453066] exec_request:650 [0x7f8c018920]: <------ : Public: ANNOUNCE, SETUP, RECORD, PAUSE, FLUSH, TEARDOWN, OPTIONS, GET_PARAMETER, SET_PARAMETER, POST, GET, PUT
[19:33:59.453343] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:33:59.453456] exec_request:650 [0x7f8c018920]: <------ : CSeq: 52
[19:33:59.871457] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:44620 nb:1 (mis:0)
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
[19:34:00.076566] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:44646 nb:1 (mis:0)
[19:34:00.229490] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:44665 nb:1 (mis:0)
[19:34:00.592487] _rtp_timing_thread:1328 [0x7f8c014580]: NTP sync: 1691105640.2544609209 (ref 1691105640.2538179799)
[19:34:00.914519] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:44751 nb:1 (mis:0)
[19:34:01.477535] _rtp_control_thread:1430 [0x7f8c014580]: retransmit packet sn:44821 nb:1 (mis:0)
I MercurySession.cpp:42: Received packet, command: 181
D SpircHandler.cpp:67: Received subscription response
D SpircHandler.cpp:124: Notify frame
D SpircHandler.cpp:129: Another player took control, pausing playback
I TrackPlayer.cpp:94: Resetting state
I TrackPlayer.cpp:249: Playing done
I spotify.cpp:104: Disconnecting Den Apple TV
I MercurySession.cpp:42: Received packet, command: 181
[19:34:02.595148] exec_request:614 [0x7f8c018920]: ----> : write FLUSH rtsp://[ATV IP]/1425739616 RTSP/1.0
RTP-Info: seq=44840;rtptime=4241632782
CSeq: 53
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1


[19:34:02.600938] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:34:02.601845] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:34:02 GMT
[19:34:02.602325] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:34:02.603035] exec_request:650 [0x7f8c018920]: <------ : RTP-Info: rtptime=4241628205
[19:34:02.603656] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:34:02.603939] exec_request:650 [0x7f8c018920]: <------ : CSeq: 53
[19:34:02.604123] exec_request:614 [0x7f8c018920]: ----> : write TEARDOWN rtsp://[ATV IP]/1425739616 RTSP/1.0
CSeq: 54
User-Agent: iTunes/7.6.2 (Windows; N;)
Client-Instance: 26a9b2add01294fd
DACP-ID: 1A2B3D4EA1B2C3D4
Active-Remote: 719455936
Session: 1


[19:34:03.198743] exec_request:640 [0x7f8c018920]: <------ : 200: request ok
[19:34:03.199132] exec_request:650 [0x7f8c018920]: <------ : Date: Thu, 03 Aug 2023 23:34:03 GMT
[19:34:03.199326] exec_request:650 [0x7f8c018920]: <------ : Content-Length: 0
[19:34:03.199577] exec_request:650 [0x7f8c018920]: <------ : Server: AirTunes/695.5.1
[19:34:03.199689] exec_request:650 [0x7f8c018920]: <------ : CSeq: 54
I TrackPlayer.cpp:94: Resetting state
I MercurySession.cpp:128: Disconnecting mercury session
I PlainConnection.cpp:197: Closing socket...
E PlainConnection.cpp:146: Connection lost, will need to reconnect...
E MercurySession.cpp:53: Error while receiving packet: Reconnection required
I spotify.cpp:441: disconnecting player Den Apple TV

binaries in the repo

Can you please remove the binaries (included thrice for good measure, once inside a zip file, then again in the bin directory and then as object in the .git/objects directory) from the repo and move them to releases?
It's surprising behaviour to try to clone the repo and get a 380MB download that expands to over 600MB when I want to just build 1 arch/os.

For comparison, the repo size without the bins is 428K and with the binaries it is 635.5MB.

~/SpotConnect # du -sh .
635.5M  . # Due to the .git repo containing all the binaries once again
~/SpotConnect # rm -rf SpotConnect-0.1.0.zip spotupnp/bin spotraop/bin/
~/SpotConnect # du -sh .
381.4M  .
~/SpotConnect # rm -rf .git
~/SpotConnect # du -sh .
428.0K  .

Docker instance crashing: Segmentation fault (core dumped)

My Docker instance seems to crash at some point with following logs:

2023-12-10T08:56:32.846165864Z Ensuring user with uid:[1045] gid:[65539] exists ...
2023-12-10T08:56:33.164370509Z Group with gid [65539] name [spotc] already exists.
2023-12-10T08:56:33.169498261Z user with uid [1045] name [spotc] already exists.
2023-12-10T08:56:33.201978291Z Using SpotConnect raop version [0.7.0]
2023-12-10T08:56:33.341154036Z Command Line: [/app/bin/spotraop-linux -r 320 -x /config/config.xml -I -j -k -Z]
2023-12-10T08:56:34.112787448Z [08:56:34.112] main:1222 Starting spotraop version: v0.7.0 (Dec  6 2023 @ 22:58:07)

...

2023-12-10T08:58:35.187374777Z [08:58:35.182] I MercurySession.cpp:42: Received packet, command: 4
2023-12-10T09:11:56.586091721Z [09:11:56.585] mDNSsearchCallback:390 [0x64f7e0]: keep missing renderer (*REDACTED DEVICE*)
2023-12-10T09:13:40.773269436Z [09:13:40.773] mDNSsearchCallback:390 [0x64f7e0]: keep missing renderer (*REDACTED DEVICE*)
2023-12-10T09:14:48.331029351Z [09:14:48.330] mDNSsearchCallback:390 [0x64f7e0]: keep missing renderer (*REDACTED DEVICE*)
2023-12-10T09:15:00.531063041Z [09:15:00.530] mDNSsearchCallback:390 [0x64ea40]: keep missing renderer (*REDACTED DEVICE*)
2023-12-10T09:16:48.349447336Z [09:16:48.349] UpdateDevices:358 [0x64f7e0]: removing renderer (*REDACTED DEVICE*) on timeout
2023-12-10T09:16:50.147466194Z Segmentation fault (core dumped)
2023-12-10T09:16:50.208927154Z [08:58:35.182] D TimeProv

Also noticed the weird internal timestamp at the end (goes back to the past) (leftmost is correct Docker timestamp).

volume_feedback / volume_mode what options are there and what do they mean?

Hey,

Love this app, it's really awesome.
I have 1 question, when playing to my homepod mini, the audio level is always 0 (off) as soon as i connect and play.
I can see that from the generated config file there are 2 common options.

<volume_feedback>1></volume_feedback>
<volume_mode>2</volume_mode>

What does these 2 mean and what options are there to e.g. keep last audio level from the homepod?

Sony SA-NS400 Support

I've got some old Sony DLNA speakers around them and what a perfect project to stumble across for this. I'm using spotupnp-llinux-x86_64. It runs successfully and on starting discovers the speaker and volume control works.

If I start a Spotify stream I get about one second of audio and the speaker stops, disconnecting. The log output from SpotConnect looks like this:

I HTTPstreamer.cpp:441: got HTTP connection 18
I HTTPstreamer.cpp:208: HTTP received =>
GET /stream?id=bbbbf521c738_0 HTTP/1.1
Host: 192.168.1.83:59607
Icy-MetaData: 1
Connection: close
transferMode.dlna.org: Streaming
User-Agent: WinampMPEG/2.8
Accept: */*
X-AV-Client-Info: av="5.0"; cn="Sony Corporation"; mn="SA-NS400"; mv="1.00"
X-
I HTTPstreamer.cpp:310: HTTP response =>
HTTP/1.1 200 OK
transfermode.dlna.org: streaming
Server: spot-connect
Content-Type: audio/mpeg
Connection: close


I HTTPstreamer.cpp:208: HTTP received =>
AV-Physical-Unit-Info: pa="SA-NS400"


E HTTPstreamer.cpp:215: Incorrect HTTP request, can't find streamId AV-Physical-Unit-Info: pa="SA-NS400"
I HTTPstreamer.cpp:457: HTTP close 18
[18:11:21.160543] ActionHandler:617 [0x7ff04a078010]: uPNP playing
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I spotify.cpp:356: current trackInfo id 253c2fb06cdf4e53ace45be0782e1163 => <Everyone's Safe In The Treehouse>
I spotify.cpp:424: track bbbbf521c738_0 started by URL (1)
I spotify.cpp:388: adjusting real position 0 from 0 (offset is -89583)
D MercurySession.cpp:251: Executing Mercury Request, type SEND
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
I MercurySession.cpp:42: Received packet, command: 178
D MercurySession.cpp:174: Received mercury packet
[18:11:23.397349] ActionHandler:597 [0x7ff04a078010]: uPNP stopped
I spotify.cpp:450: Disconnecting [Main Room] SA-NS400+
[18:11:23.397423] shadowRequest:339 [0x7ff04a078010]: Stop
[18:11:23.397442] AVTStop:203 [0x7ff04a078010]: uPNP stop (cookie 0xb)
I HTTPstreamer.cpp:146: HTTP streamer bbbbf521c738_0 deleted
I TrackPlayer.cpp:94: Resetting state
I MercurySession.cpp:128: Disconnecting mercury session
I PlainConnection.cpp:197: Closing socket...
E MercurySession.cpp:53: Error while receiving packet: Error in read
I TrackPlayer.cpp:249: Playing done
I spotify.cpp:577: disconnecting player <[Main Room] SA-NS400+>
[18:11:24.397182] ActionHandler:597 [0x7ff04a078010]: uPNP stopped

I believe this to be a content length issue - trying an http content length setting of -3 (or a large positive number) results in no play and the device gets stuck and needs a reboot. Settings of -1 and 0 both result in the same as shown above - a very brief play and it stops.

I get the same behavior with mp3, pcm, and wav encodings. FLAC doesn't work (likely because the device doesn't support it). Is there any steps I can take to attempt to dig into getting one of these to work?

spotconnect cannot create socket

I am running mpd on my nas with upmpd, and i would like to use spotconnect (on the same pc).
I can see this in the logs:
2024-04-27 20:13:56.255980+02:00Command Line: [/app/bin/spotupnp-linux -r 320 -x /config/config.xml -I -j -k -Z -b 192.168.1.107]
2024-04-27 20:13:56.269672+02:00[18:13:56.269] main:1517 Starting spotupnp version: v0.9.2 (Mar 5 2024 @ 17:24:36)
2024-04-27 20:13:56.285406+02:00[18:13:56.284] Start:1222 Binding to iface [email protected]:0
2024-04-27 20:13:56.285456+02:00[18:13:56.284] Start:1236 Binding to 192.168.1.107:49153
2024-04-27 20:13:56.298676+02:00[18:13:56.292] AddMRDevice:1148 [0x7f8b573e8010]: adding renderer ([TV] Stevie) with mac BBBBE0DC4A76
2024-04-27 20:13:56.298705+02:00[18:13:56.294] MasterHandler:740 [0x7f8b573e8010]: subscribe success
2024-04-27 20:13:56.298714+02:00recv bind(): Address already in use
2024-04-27 20:13:56.298734+02:00unable to create recv socket
2024-04-27 20:13:56.795758+02:00[18:13:56.795] ProcessEvent:471 [0x7f8b573e8010]: UPnP Volume local change 8:-1 (master)
2024-04-27 20:14:10.147951+02:00[18:14:10.147] AddMRDevice:1148 [0x7f8b573ea8f0]: adding renderer (SMSL SU-8) with mac BBBB62B90DDD
2024-04-27 20:14:10.149124+02:00[18:14:10.148] MasterHandler:740 [0x7f8b573ea8f0]: subscribe success
2024-04-27 20:14:10.149149+02:00[18:14:10.149] ProcessEvent:471 [0x7f8b573ea8f0]: UPnP Volume local change 50:-1 (master)
2024-04-27 20:14:10.153981+02:00recv bind(): Address already in use
2024-04-27 20:14:10.154011+02:00unable to create recv socket

Log level options don't appear to have any effect

When log levels are set via command line or config file, they don't seem to be respected.

I would expect this command to disable the majority of the logging:

/var/lib/spoconnect/spotraop-linux-aarch64-static -d all=error

Even with that, the log is still full of "I" and "D" messages from the various components.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.