Files
wehub-resource-sync ead81af521
CI / go (push) Waiting to run
CI / build (darwin, macos-14) (push) Waiting to run
CI / build (windows, windows-2025) (push) Waiting to run
Deploy to GitHub Pages / deploy (push) Failing after 0s
chore: import upstream snapshot with attribution
2026-07-13 12:31:13 +08:00

81 lines
2.8 KiB
Markdown

# Streaming
cliamp can play audio from URLs, M3U/PLS playlists, and podcast RSS feeds.
## HTTP Streams
Play audio directly from URLs:
```sh
cliamp https://example.com/song.mp3
cliamp http://radio-station.com/stream.m3u
cliamp local.mp3 https://example.com/remote.mp3 # mix local + remote
```
For non-seekable HTTP streams, the UI shows `● Streaming` with a static seek bar, and seek keys are silently ignored.
## PLS Playlists
PLS playlist files are supported alongside M3U:
```sh
cliamp https://radio.cliamp.stream/lofi/stream.pls
```
## HLS Streams
HLS playlists (`.m3u8`, master or media) are supported, as used by large broadcasters such as Brazilian RBS/Wowza stations:
```sh
cliamp "https://example.com/live/playlist.m3u8"
```
cliamp hands the URL to ffmpeg, which resolves the relative chunklist/segment URIs and follows the live segment window. Requires `ffmpeg` (already needed for AAC/Opus).
Live HLS carries timed metadata rather than inline ICY, so the now-playing track title isn't updated for HLS streams.
## Podcasts
Play any podcast by passing its RSS feed URL:
```sh
cliamp https://example.com/podcast/feed.xml
```
Episode titles and the podcast name are extracted from the feed and shown in the playlist.
### Xiaoyuzhou (小宇宙)
Play individual episodes from [Xiaoyuzhou](https://www.xiaoyuzhoufm.com) by passing the episode URL:
```sh
cliamp https://www.xiaoyuzhoufm.com/episode/xxxx
```
## Radio Catalog
Press `R` in the player to browse and search 30,000+ online radio stations from the [Radio Browser](https://www.radio-browser.info/) directory. Use `/` to search by name, `Enter` to play, and `a` to append a station to the playlist.
## Track Info
For live radio, cliamp shows the current track from the stream's inline ICY metadata (`StreamTitle`). This works for most stations, in any codec (MP3, AAC, Opus, ...).
Some broadcasters send no inline metadata and publish now-playing through a separate API instead. cliamp pulls those automatically:
| Station | Source | Shown |
| --- | --- | --- |
| FIP (and FIP Jazz, Rock, Groove, Reggae, Electro, Metal, Monde, Nouveautes) | Radio France livemeta API | Artist - Title |
| NTS 1 / NTS 2 | NTS live API | Current show |
NTS is live DJ radio with no per-track tagging, so it shows the show/host name rather than a song.
## Load URL at Runtime
Press `u` while playing to load a new stream or playlist URL without restarting. Supports the same URL types as CLI arguments: direct audio URLs, M3U/PLS playlists, RSS podcast feeds, and yt-dlp compatible links.
## Run Your Own Radio Station
Run your own internet radio with [cliamp-server](https://github.com/bjarneo/cliamp-server). Point it at a directory of audio files and it starts broadcasting. Supports multiple stations, live metadata, and on-the-fly transcoding.
See also: [playlists.md](playlists.md) for M3U playlist details.