SubSonicMedia 1.0.4-beta.1
See the version list below for details.
dotnet add package SubSonicMedia --version 1.0.4-beta.1
NuGet\Install-Package SubSonicMedia -Version 1.0.4-beta.1
<PackageReference Include="SubSonicMedia" Version="1.0.4-beta.1" />
<PackageVersion Include="SubSonicMedia" Version="1.0.4-beta.1" />
<PackageReference Include="SubSonicMedia" />
paket add SubSonicMedia --version 1.0.4-beta.1
#r "nuget: SubSonicMedia, 1.0.4-beta.1"
#:package SubSonicMedia@1.0.4-beta.1
#addin nuget:?package=SubSonicMedia&version=1.0.4-beta.1&prerelease
#tool nuget:?package=SubSonicMedia&version=1.0.4-beta.1&prerelease
SubSonicMedia
A comprehensive .NET client library for the Subsonic API, supporting API version 1.16.1.
๐ Features
- 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
๐ Getting Started
Installation
Package Manager Console
Install-Package SubSonicMedia
```bash
#### .NET CLI
```bash
dotnet add package SubSonicMedia
```bash
#### PackageReference (in .csproj file)
```xml
<PackageReference Include="SubSonicMedia" Version="x.y.z" />
You can find the latest version on NuGet.org.
TestKit Usage
// Create a connection to your Subsonic server
var connectionInfo = new SubsonicConnectionInfo
{
BaseUrl = "https://your-subsonic-server.com",
Username = "username",
Password = "password",
ApiVersion = "1.16.1"
};
// Create the client
var client = new SubsonicClient(connectionInfo);
// Get all artists
var response = await client.Browsing.GetArtists();
// Play a song
var streamUrl = client.Media.GetStreamUrl("songId");
๐งช TestKit
The project includes a comprehensive TestKit for validating the SubSonicMedia API against your Subsonic server.
Features
- 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
Configuration
The TestKit uses a .env
file for configuration. Copy the .env.example
file to .env
in the TestKit directory and update the following settings:
# Server information
SUBSONIC_SERVER_URL=https://your-server-url
SUBSONIC_USERNAME=your-username
SUBSONIC_PASSWORD=your-password
# Test configuration
RECORD_TEST_RESULTS=true
OUTPUT_DIRECTORY=./TestResults
JUNIT_XML_OUTPUT=true
Usage
# Navigate to the TestKit directory
cd SubSonicMedia.TestKit
# Run all tests
dotnet run
# Run a specific test
dotnet run test "Connection Test"
# Run with JUnit XML output
dotnet run -- --junit-xml
# List available tests
dotnet run list
# Get help
dotnet run help
๐ ๏ธ Development
Prerequisites
- .NET 8.0 SDK or later
- Visual Studio 2022, VS Code, or JetBrains Rider
- PowerShell 7.0 or later
AI Development Tools
We use Claude Code (Anthropic's AI assistant, see CLAUDE.md and GitHub Copilot to accelerate development tasks, code reviews and documentation. This helps us maintain consistent code quality and speed up development workflows.
Building
# Clone the repository
git clone https://github.com/metaneutrons/SubSonicMedia.git
cd SubSonicMedia
# Build the solution
dotnet build
Detailed Documentation
For detailed development information, please refer to the following documents:
- Git Hooks Setup - Information about Git hooks and PowerShell requirements
- Versioning Process - Details about our semantic versioning process
- VS Code Setup - VS Code configuration and recommended extensions
Versioning
This project follows semantic versioning with automated version bumping based on conventional commit messages.
We provide tools to automatically analyze commit messages and determine the appropriate version bump (major, minor, patch).
See docs/VERSIONING.md for details on:
- Commit message conventions
- Local version bump PowerShell script
- GitHub workflow for automated versioning
- Complete release process
VS Code Setup
The repository includes a VS Code setup with:
- Build tasks for the library and TestKit
- Debug configurations for running and debugging
- Recommended extensions and settings
See docs/VSCODE.md for details.
๐ 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)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
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 | 573 | 7/29/2025 |
1.0.5-beta.1 | 230 | 5/4/2025 |
1.0.4-beta.1 | 125 | 3/21/2025 |
1.0.3-beta.20 | 72 | 3/21/2025 |