81 lines
2.8 KiB
Markdown
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.
|