neutmute / swimbait

ASP.NET Core app to emulate a Yamaha MusicCast Speaker
42 stars 4 forks source link

Swimbait

Definition:

A class of fishing lures that imitate fish

An ASP.NET Core application that emulates the Yamaha MusicCast protocol.

swimbait MyGet Build Status

Projects

Swimbait.Server

Emulates a Yamaha MusicCast speaker by serving and responding REST HTTP on multiple ports and UDP.

Current status is

Swimbait.Console

See its readme file

MusicCast.Console

Client for controlling a MusicCast speaker

Setup

Swimbait requires some environment variables:

Windows Powershell

Restart Visual Studio after setting these in a powershell prompt

 # IP Address of real MusicCast speaker. Used for man in the middle replays. 
 [Environment]::SetEnvironmentVariable("Swimbait:RelayHost", "192.168.1.213", "User") 

 # Folder for activity log 
 [Environment]::SetEnvironmentVariable("Swimbait:ReplayLogFolder", "D:\Downloads\Swimbait", "User")

Swimbait.Server Execution

  1. Run the Swimbait.Server project
  2. Test the HTTP server by browsing to http://<your-machines-IP>/MediaRenderer/desc.xml
  3. Open the MusicCast app on your phone
  4. Connect to a new device
  5. Press C a few times into the server console while the app is waiting for a connection
  6. The MusicCast app should think it has found a MusicCast speaker
  7. The app will respond with an error. (More work required)

Documentation

The doc folder contains various captures and collected information, including the Yamaha authored Yamaha Extended Control API Specification (Basic) and (Advanced) and which describes much of the MusicCast REST API.

Blog

There is some more reading at this blog entry