Skip to content

Commit 533a7ec

Browse files
authored
Refactor README.md for improved readability
Updated formatting and section headers in README.md for consistency and clarity.
1 parent 81d03d8 commit 533a7ec

1 file changed

Lines changed: 19 additions & 20 deletions

File tree

README.md

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,16 @@ DLNA clients (including most modern TVs, Apple TV (via Infuse or VLC), PS5, Xbox
3333

3434
- Runs from a single command, `spritz` — zero config, zero state
3535
- Announces itself via SSDP/UPnP, so clients find it without typing an IP
36-
- Serves one or more folders (recursively subdirectories are indexed automatically) from a single instance
36+
- Serves one or more folders (recursively, subdirectories are indexed automatically) from a single instance
3737
- Presents three browse views at the root: `Videos`, `Music`, and `By folder` (the on-disk structure)
38-
- Supports video and audio formats (MP4/MKV/AVI/MOV/ and MP3/FLAC/OGG/)
38+
- Supports video and audio formats (MP4/MKV/AVI/MOV/... and MP3/FLAC/OGG/...)
3939
- Implements `ContentDirectory:1` and `ConnectionManager:1` for DLNA Browse and Search
4040
- Advertises sidecar subtitles (`.srt` / `.vtt` / `.ass`) next to matching media files
4141
- Advertises duration, resolution, honest DLNA profile names (from the file, not the extension), and sidecar album art (`cover.jpg` / matching stem)
4242
- Exposes an M3U playlist at `/spritz` for VLC, Infuse, and similar players
4343
- Sends `ssdp:byebye` on Ctrl+C so clients drop it immediately
4444

45-
## Why Spritz?
45+
# Why Spritz?
4646

4747
Most DLNA and media servers (such as Plex, Jellyfin, Emby, MiniDLNA/ReadyMedia, Rygel, Serviio, and others) are meant to be persistent servers: that is, you install a service, point a config file at your media library, often on a NAS or similar, maintain a database, and leave it running.
4848

@@ -61,15 +61,14 @@ Spritz is built for ad hoc sharing, as in folders you don't serve every day. But
6161

6262
**Note:** Spritz reads the file tree at startup and doesn't watch it for changes. If you add files to a share, restart Spritz. Or let watchexec do it for you: `watchexec -r -- spritz`
6363

64-
## Install
65-
66-
### Homebrew (macOS and Linux)
64+
# Install
6765

66+
## Homebrew (recommended for macOS and Linux)
6867
```bash
6968
brew install dfallman/tap/spritz
7069
```
7170

72-
### Pre-built binaries
71+
## Pre-built binaries
7372

7473
Download the latest archive for your platform from the [Releases](https://github.com/dfallman/spritz/releases) page. Builds are provided for:
7574

@@ -79,7 +78,7 @@ Download the latest archive for your platform from the [Releases](https://github
7978

8079
Each archive ships with a `.sha256` checksum.
8180

82-
### From source
81+
## From source
8382

8483
To compile Spritz from source, you'll need Rust. Use [rustup](https://rustup.rs/) for the installation:
8584
```
@@ -93,7 +92,7 @@ cd spritz
9392
cargo install --path cli
9493
```
9594

96-
## Usage
95+
# Usage
9796

9897
```
9998
spritz [FOLDERS]... [OPTIONS]
@@ -108,7 +107,7 @@ Options:
108107
-h, --help Print help
109108
```
110109

111-
### Examples
110+
## Examples
112111

113112
```bash
114113
# Serve the current directory
@@ -127,18 +126,18 @@ spritz --port 9000 /media/videos
127126
spritz --bind 192.168.1.10 --name "Living Room" /media/videos
128127
```
129128

130-
## Connecting a client
129+
# Connecting a client
131130

132-
### Smart TVs, game consoles, or media players (DLNA)
131+
## Smart TVs, game consoles, or media players (DLNA)
133132
Open your TV's Media Server or Network source. Spritz should show up within a few seconds. Inside, you'll see three containers — `Videos`, `Music`, and `By folder`. The first two are flat lists of every file by type; `By folder` mirrors your on-disk directory structure so you can navigate Shows → Season 1 → ep1.mkv the way you'd expect.
134133

135-
### VLC
134+
## VLC
136135
`Media → Open Network Stream → http://<your-spritz-server-ip>:8080/spritz`, or browse via `View → Playlist → Local Network → Universal Plug and Play`. VLC only scans at startup and when it receives a NOTIFY packet, so if it doesn't appear, restart VLC once Spritz is already running.
137136

138-
### Infuse (Apple TV / iOS / iPadOS)
137+
## Infuse (Apple TV / iOS / iPadOS)
139138
`Add Files → Network Share` and pick Spritz Media Server from the list, or enter the M3U URL manually. Works on tvOS as well — the share browses the three-container layout described above.
140139

141-
### Any M3U-capable player
140+
## Any M3U-capable player
142141
Point it at `http://<your-spritz-server-ip>:8080/spritz`.
143142

144143
**Note**: `<your-spritz-server-ip>` is the IP address of the machine you run spritz on, that's the "server" here — the "client" (see above) is the device from which you play your content. To find your server's IP, use `ipconfig` in the Windows Command Prompt. On macOS, check `System Settings → Network` (or use `ipconfig getifaddr en0` in a terminal). On linux, run `ip addr` or `hostname -I`.
@@ -189,7 +188,7 @@ Point it at `http://<your-spritz-server-ip>:8080/spritz`.
189188
| Apple TV — VLC (tvOS, iOS, iPadOS) | Works | tvOS VLC sometimes misses SSDP; add the M3U URL manually |
190189
| Xbox | Works | Advertises Microsoft `MediaReceiverRegistrar` |
191190

192-
## Troubleshooting
191+
# Troubleshooting
193192

194193
DLNA is fiddly by nature, especially in combination with certain devices and operating systems (looking at you, Apple TV).
195194

@@ -201,9 +200,9 @@ IPv6-only LANs: SSDP also joins `[FF02::C]:1900`. When `--bind` is the default u
201200

202201
On Apple TV, Infuse tends to work better than VLC. If you're using VLC and can't find the share, you can bypass discovery entirely by pasting the M3U URL into VLC: `Media → Open Network Stream → http://192.168.X.X:8080/spritz`. If that plays, the server is fine and the issue is discovery.
203202

204-
Restart VLC once Spritz is already running VLC only scans at startup and on NOTIFY packets.
203+
Restart VLC once Spritz is already running as VLC only scans at startup and on NOTIFY packets.
205204

206-
### Windows / WSL2
205+
## Windows / WSL2
207206

208207
Spritz works under WSL2 with mirrored networking. Add this to your `~/.wslconfig`:
209208

@@ -221,9 +220,9 @@ New-NetFirewallRule -DisplayName "Spritz SSDP" `
221220
-Direction Inbound -Protocol UDP -LocalPort 1900 -Action Allow
222221
```
223222

224-
> **Known issue:** SSDP multicast sometimes requires elevated privileges under WSL2. If devices don't auto-discover the server, try `sudo spritz` or grant the binary `CAP_NET_RAW`. HTTP file serving and the M3U endpoint work either way.
223+
**Known issue:** SSDP multicast sometimes requires elevated privileges under WSL2. If devices don't auto-discover the server, you could try granting the binary `CAP_NET_RAW` or (as a last resort) `sudo spritz`. HTTP file serving and the M3U endpoint work either way.
225224

226-
## Architecture
225+
# Architecture
227226

228227
Spritz implements DLNA/UPnP AV directly instead of wrapping an existing library. At a glance:
229228

0 commit comments

Comments
 (0)