SubSonicMedia 1.0.5
dotnet add package SubSonicMedia --version 1.0.5
NuGet\Install-Package SubSonicMedia -Version 1.0.5
<PackageReference Include="SubSonicMedia" Version="1.0.5" />
<PackageVersion Include="SubSonicMedia" Version="1.0.5" />
<PackageReference Include="SubSonicMedia" />
paket add SubSonicMedia --version 1.0.5
#r "nuget: SubSonicMedia, 1.0.5"
#:package SubSonicMedia@1.0.5
#addin nuget:?package=SubSonicMedia&version=1.0.5
#tool nuget:?package=SubSonicMedia&version=1.0.5
SubSonicMedia
<p align="center"> <img src="assets/icon.svg" alt="SubSonicMedia Logo" width="64"/> </p>
SubSonicMedia is a comprehensive .NET client library for the Subsonic API, supporting API version 1.16.1.
✨ Features
- (mostly) full implementation of Subsonic API v1.16.1
- Strongly-typed response models
- Interface-based architecture for easy testing and extensibility
- Async support throughout
- Comprehensive documentation
🎯 Not Yet Implemented / Roadmap
These Subsonic API methods aren’t exposed yet:
- scrobble
- getSimilarSongs
- getSimilarSongs2
- getTopSongs
- getNowPlaying
- getShares
- updateShare
- deleteShare
Full implementation status is detailed in the Implementation Status document.
Getting Started
Installation
dotnet add package SubSonicMedia
Example
using System;
using SubSonicMedia;
var connection = new SubsonicConnectionInfo(
serverUrl: "https://your-subsonic-server",
username: "username",
password: "password"
);
using var client = new SubsonicClient(connection);
// Ping the server
var pong = await client.PingAsync();
Console.WriteLine($"Server API version: {pong.Version}");
TestKit Integration Test
The TestKit is a console application that validates the SubSonicMedia library against a real Subsonic-compatible server:
- Structured API tests with clear pass/fail results
- JSON output for test results
- JUnit XML output for integration with CI/CD systems
- Record server responses for future mocking
- Command-line interface for automation
- npm-style output with UTF-8 icons
- Detailed logging and error reporting
Navigate to the TestKit directory and copy the example environment file:
cd SubSonicMedia.TestKit cp .env.example .env
Open
.env
and set your server connection info:SUBSONIC_SERVER_URL=https://your-subsonic-server.com SUBSONIC_USERNAME=your-username SUBSONIC_PASSWORD=your-password API_VERSION=1.16.1 RECORD_TEST_RESULTS=true OUTPUT_DIRECTORY=./TestResults JUNIT_XML_OUTPUT=true
Run the TestKit application:
dotnet run
- Use
dotnet run -- --junit-xml
for JUnit XML output. - Use
dotnet run list
to list available tests. - Use
dotnet run help
for full CLI options.
Documentation
Explore the full documentation on SubSonicMedia Documentation.
License
This project is licensed under the GNU General Public License v3.0 or later.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.Http (>= 8.0.0)
- System.Text.Json (>= 8.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.5 | 500 | 7/29/2025 |
1.0.5-beta.1 | 224 | 5/4/2025 |
1.0.4-beta.1 | 124 | 3/21/2025 |
1.0.3-beta.20 | 71 | 3/21/2025 |