{"id":26573370,"url":"https://github.com/sepen/arradio","last_synced_at":"2026-05-06T23:33:48.837Z","repository":{"id":93393961,"uuid":"152412162","full_name":"sepen/arradio","owner":"sepen","description":"Fetch and play internet radio stations directly from the command line","archived":false,"fork":false,"pushed_at":"2025-12-18T00:21:08.000Z","size":105,"stargazers_count":5,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-21T10:51:31.044Z","etag":null,"topics":["arradio","arradio-player","ffplay","fzf","fzf-theme","iptv","iptv-player","mplayer","mpv","music-player","online-radio","shoutcast","somafm","streams","vlc","xmllint"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sepen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-10-10T11:24:49.000Z","updated_at":"2025-12-18T00:21:18.000Z","dependencies_parsed_at":"2025-12-18T08:04:32.635Z","dependency_job_id":null,"html_url":"https://github.com/sepen/arradio","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/sepen/arradio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepen%2Farradio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepen%2Farradio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepen%2Farradio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepen%2Farradio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sepen","download_url":"https://codeload.github.com/sepen/arradio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepen%2Farradio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32716212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T19:35:05.142Z","status":"ssl_error","status_checked_at":"2026-05-06T19:35:03.996Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arradio","arradio-player","ffplay","fzf","fzf-theme","iptv","iptv-player","mplayer","mpv","music-player","online-radio","shoutcast","somafm","streams","vlc","xmllint"],"created_at":"2025-03-23T00:42:25.380Z","updated_at":"2026-05-06T23:33:48.832Z","avatar_url":"https://github.com/sepen.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# [arradio](/)\n\nFetch and play internet radio stations directly from the command line\n\n![Last Commit](https://img.shields.io/github/last-commit/sepen/arradio)\n![Repo Size](https://img.shields.io/github/repo-size/sepen/arradio)\n![Code Size](https://img.shields.io/github/languages/code-size/sepen/arradio)\n![Proudly Written in Bash](https://img.shields.io/badge/written%20in-bash-ff69b4)\n\n\u003cimg width=\"80%\" alt=\"arradio v0.5.1\" src=\"https://github.com/user-attachments/assets/afe67a77-67a6-409d-a049-35bdc7accfc1\"\u003e\n\n## Features\n\n- Play radio stations from the [SHOUTcast](https://directory.shoutcast.com/) and [SomaFM](https://somafm.com) directories.\n- Manage a list of favorite radio stations.\n- Use multiple audio players like [arradio-player](https://github.com/sepen/arradio-player), [mpv](https://mpv.io), [vlc](https://www.videolan.org) and [ffplay](https://ffmpeg.org/) to play internet radio stations.\n- Optional UI ([fzf](https://github.com/junegunn/fzf) pseudo-user interface) with color theme support.\n- **IPTV support** for playing TV streams from M3U playlists.\n\n\n## Table of Contents\n\n* [Requirements](#requirements)\n* [Installation](#installation)\n* [Upgrading arradio](#upgrading-arradio)\n* [Usage](#usage)\n  * [Configuration](#configuration)\n  * [Examples](#examples)\n* [Favorites](#favorites)\n  * [Add a radio station](#add-a-radio-station)\n  * [Remove a radio station](#remove-a-radio-station)\n* [UI Mode](#ui-mode)\n* [UI Themes](#ui-themes)\n  * [Installing themes](#installing-themes)\n  * [Select a theme](#select-a-theme)\n\n\n## Requirements\n\n- Common tools found on most UNIX systems: (_bash_, _cut_, _grep_, _sed_, _head_, _cat_)\n- XML tools are required to parse URL responses from [SHOUTcast](https://directory.shoutcast.com/) and [SomaFM](https://somafm.com) directories\n  - [xmllint](https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home)\n- External audio player. This program does not play URL streams directly, this is delegated to an external audio player that should be installed on the system. The following ones are detected automatically if installed.\n  - [arradio-player](https://github.com/sepen/arradio-player)\n  - [mpv](https://mpv.io)\n  - [vlc](https://www.videolan.org)\n  - [ffplay](https://ffmpeg.org/)\n- (optional) External command for the User Interface: [fzf](https://github.com/junegunn/fzf)\n\n\n\n## Installation\n\nTo install [arradio](/) paste that in a macOS Terminal or Linux shell prompt:\n```sh\ncurl -fsSL https://raw.githubusercontent.com/sepen/arradio/master/arradio | bash -s install\n```\n\n* The one-liner command from above installs [arradio](/) to its default `$HOME/.arradio`\n* It will place some files under that prefix, so you'll need to set your PATH like this `export PATH=$HOME/.arradio/bin:$PATH`\n* The installation explains what it will do, and you will see all that information. Consider adding this line to your _~/.bashrc_ or _~/.bash_profile_ or make sure to export this _PATH_ before running [arradio](/). The installation explains what it will do.\n* The one-liner installation method found on [arradio](/) uses Bash. Notably, zsh, fish, tcsh and csh will not work.\n\n\n## Upgrading arradio\n\n[arradio](/) is being actively developed, and you might want to upgrade it once in a while. Please follow the instruction below:\n```shell\narradio upgrade\n```\n\n\n## Usage\n```sh\narradio help\nUsage:\n  arradio [command] \u003cflags\u003e\n\nCommands:\n  install                  Install arradio itself\n  upgrade                  Upgrade arradio itself\n  list                     List top streams (enabled services only)\n  search [string]          Search across enabled services\n  play [stream-id]         Play to specified stream\n  info [stream-id]         Show info for a stream\n  fadd [stream-id]         Add to favorites\n  fdel [stream-id]         Remove from favorites\n  flist                    List favorites\n  ui                       Start UI (fzf required)\n  tlist                    List installed UI themes\n  env                      Show environment variables\n  version                  Show version\n  help                     Show this help\n\nFlags:\n  -s, --services [csv]     Limit services (shoutcast,somafm,iptv)\n  -l, --limit [num]        Output limit (default: 50)\n  -o, --output [fmt]       Format simple|wide (default: simple)\n  -p, --player [cmd]       Player command (default: mpv)\n  -t, --theme  [name]      UI theme (default: basic)\n  -b, --no-color           Disable colors\n  -n, --no-cache           Disable cache\n  -d, --debug              Debug messages\n```\n\n### Configuration\n\nThe configuration file, by default located at `$HOME/.arradio/config`, uses a simple `variable: value` format.\nLines starting with `#` are treated as comments.\n\nExample:\n```yaml\n# ~/.arradio/config\n\nplayer_cmd:     mpv --no-video    # Command used to play streams  \nui_theme:       retrowave         # Name of the UI theme \noutput_limit:   200               # Maximum number of results to display  \noutput_filter:  wide              # Filter type for output  \nno_cache:       1                 # Disable caching when set to 1 \n```\nNOTE: This file is not created by default, so if you need to make changes to the default values, consider creating this configuration file. You can grab an example from [here](arradio.config)\n\nConfiguration values can come from several sources:\n\n- As an environment variable\n- As a value in the config file\n- As a command line optional flag\n\nThe previous order also indicates the order of precedence to take.\nFor example, to override the default UI theme:\n```sh\nexport ARRADIO_UI_THEME=nord\narradio ui\n```\n\nThe above can be also override by setting a value in the config file:\n```yaml\n# ~/.arradio/config\n\nui_theme: purple\n```\n\nLastly all from above can be override as an optional flag through the command line:\n```sh\narradio ui --theme molokai\n```\n\n### IPTV Support\n\nIPTV support in **arradio** is controlled by the `enable_iptv` option in your config file (`~/.arradio/config`).\nWhen enabled, the UI lists IPTV streams as another “service” (like SHOUTcast or SomaFM).\n\nIt expects **M3U playlists** (or compatible formats), which **arradio** parses to present channels.\nPlayback is handled by your configured player (`player_cmd`, e.g., `mpv`, `vlc`, etc) but make sure your `player_cmd` **does not include options that disable video output** (such as `--no-video`), otherwise IPTV channels won’t show video correctly.  \n\n\nExample configuration enabling IPTV and pointing to an M3U playlist:\n```yaml\n# ~/.arradio/config\n\nplayer_cmd:    mpv\noutput_limit:  500\nenable_iptv:   1\niptv_url:      https://raw.githubusercontent.com/iptv-org/iptv/refs/heads/master/streams/es.m3u\n```\n\n### Examples\n\nLook for radio stations with the words _rock_ and _metal_ and limit the list to only 5 stations with wide output format:\n```sh\narradio search rock -l 5\n\n STATION  GENRE               NAME\n99498012  Rock                ROCK ANTENNE\n99497966  Heavy Metal         ROCK ANTENNE Heavy Metal (Germany)\n99497948  80s                 ANTENNE BAYERN 80er Hits\n 1542116  Pop                 POWERHITZ.COM - THE OFFICEMIX\n99497950  Rock                ANTENNE BAYERN Classic Rock\n```\n\nTo play a radio station then use the `stream-id` from first column:\n```sh\narradio play 99498012\n```\n\n## Favorites\n\nBy default this is empty but you can mantain a list of favorite radio stations.\n\nTo list my favourites:\n```sh\narradio flist\n\n STATION  GENRE               NAME\n 1210771  Funk                GENERATION SOUL DISCO FUNK RADIO [HD]\n 1340450  Misc                AlienWare\n 1528122  Jazz                JAZZGROOVE.org - The Jazz Groove\n 1862204  Drum and Bass       DnBRadio.com\n99497996  Pop                 ANTENNE BAYERN\n99500354  Classic Rock        Classic Rock 109 - True Classic Rock!\n99504568  Downtempo           Nordic Lodge - Copenhagen\n99518870  Salsa               RADIO PANAMERICANA WEB\n99540705  Rock                PureRock.US - America Pure Rock\n99568323  Dance               Dance Wave Retro!\n99571797  Techno              Minimal Mix Radio\n99576960  Reggae              Roots Legacy Radio\n```\n\n### Add a radio station\n\nTo add a radio station you can do it in several ways.\n\nMaybe you already have a `stream-id` from a previous search. In this case just run something like:\n```sh\narradio fadd 99498012\n```\n\nYou can also add radio stations from other locations. All you need is a valid stream URL. For that just create a new file under favorites directory like that:\n```sh\ncat \u003e $HOME/.arradio/favorites/downtuned \u003c\u003c __EOF__\nid: downtuned\nbr: 128\ngenre: Rock\ninfo: Groovy Music Sanctuary (https://www.downtunedmag.com)\nurl: http://195.242.237.14:8020/stream\n__EOF__\n```\n\n### Remove a radio station\n\nSimilar to adding a `stream-id` to favorites, you can remove it with something like:\n```sh\narradio fdel 99498012\n```\n\n\n## UI mode\n\n[arradio](/) can run in pseudo-terminal User Interface mode. You just need to have _fzf_ installed and then you can run the following command to start UI mode:\n```sh\narradio ui\n```\n\n\n## UI themes\n\n[arradio](/) can perfectly work in UI mode without any theme installed. In this case it will use a black and white interface. But maybe you prefer to use a theme with fancy colors.\n\nThe themes are provided separately and their installation and upgrade will be manual.\nTo see the current themes available in this repository go to [ui-themes](ui-themes/).\n\nMost themes also have a 256-color (8-bit) variant for terminals that do not support 24-bit truecolor. These 8-bit variants have names ending with 8. For example, retrowave has the 8-bit variant retrowave8.\n\nYou can use any theme, but for optimal appearance, choose the 24-bit version if your terminal supports truecolor; otherwise, use the 8-bit variant.\n\n| Name | Screenshot | Description |\n|------|------------|-------------|\n| adwaita | \u003cimg src=\"https://github.com/user-attachments/assets/8df78fc5-78d9-4fdf-80f5-13fa94bb5fbe\" width=\"640\" style=\"height:auto;\" /\u003e | Dark foundation with calm blues, natural greens, and gentle yellow accents |\n| basic | \u003cimg src='https://user-images.githubusercontent.com/11802175/283218989-c880d89c-6e04-4e9d-a13e-f8f983241db7.png' width=\"640\" style=\"height:auto;\" /\u003e | Simple, portable color scheme optimized for compatibility with 256-color terminals |\n| chalkboard | \u003cimg src=\"https://github.com/user-attachments/assets/e31b7ce8-8cc6-4cbb-90ae-685802e0af7c\" width=\"640\" style=\"height:auto;\" /\u003e | Dark board-like background with off-white text and subtle neon accents |\n| dracula | \u003cimg src='https://github.com/user-attachments/assets/79496a91-9b09-4874-99ea-15490ad04892' width=\"640\" style=\"height:auto;\" /\u003e | Dark, high-contrast palette of purples, pinks, and teals for vivid clarity |\n| gruvbox | \u003cimg src='https://user-images.githubusercontent.com/11802175/283219015-c3435a75-1ca5-49c6-bbb3-fcca8738eff7.png' width=\"640\" style=\"height:auto;\" /\u003e | Warm retro palette of earthy browns, oranges, and yellows based on morhetz/gruvbox |\n| molokai | \u003cimg src='https://user-images.githubusercontent.com/11802175/283219007-36ff52e3-1f5d-4e46-90fc-f803eb49d188.png' width=\"640\" style=\"height:auto;\" /\u003e | Focused dark palette with vibrant accents for coding or browsing based on tomasr/molokai |\n| neoninferno | \u003cimg src=\"https://github.com/user-attachments/assets/212198a2-7af4-44e0-b9d5-73a9fee9137c\" width=\"640\" style=\"height:auto;\" /\u003e | Blazing neon accents over a subtle charcoal-purple background |\n| nord | \u003cimg src='https://user-images.githubusercontent.com/11802175/283219010-0cb78f39-cad7-4949-890c-8e15c68eb197.png' width=\"640\" style=\"height:auto;\" /\u003e | Cool, north-inspired tones of blue, gray, and icy white based on arcticicestudio/nord-vim |\n| partypop | \u003cimg width=\"640\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/9f745c67-250a-4260-b5bf-fd466df83631\" width=\"640\" style=\"height:auto;\" /\u003e | Ultra-bright, festive colors with clear contrasts for a playful vibe |\n| purple | \u003cimg src='https://user-images.githubusercontent.com/11802175/283218996-50d6c815-d751-465f-9765-18c6f1c34d7b.png' width=\"640\" style=\"height:auto;\" /\u003e | Deep purple scheme with soft highlights for a moody yet elegant feel |\n| rasta | \u003cimg width=\"640\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/5a52b964-fca4-4636-8ffe-65db05df04d1\" width=\"640\" style=\"height:auto;\" /\u003e | Bold red, gold, and green on a dark base for reggae-inspired energy |\n| retroblast |\u003cimg width=\"640\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/9c983a62-8266-439e-a713-a670876085f0\" width=\"640\" style=\"height:auto;\" /\u003e | Bright primaries and neon tones evoking ZX Spectrum and arcade classics |\n| retrowave | \u003cimg src='https://github.com/user-attachments/assets/345bdee3-e06d-4a32-aa0f-82675b7434c1' width=\"640\" style=\"height:auto;\" /\u003e | Deep blue background with neon pinks and cyan highlights for synthwave feels |\n| seoul | \u003cimg src='https://user-images.githubusercontent.com/11802175/283219004-e6705984-fd13-44d8-bcfd-c29e5ced3ee5.png' width=\"640\" style=\"height:auto;\" /\u003e | Light, balanced scheme with subtle contrasts for clean readability based on junegunn/seoul256.vim |\n| seouldark | \u003cimg src='https://user-images.githubusercontent.com/11802175/283219001-b51d6b5b-5af5-4f59-b272-58f26c2eebff.png' width=\"640\" style=\"height:auto;\" \u003e | Dark, understated scheme with smooth contrasts for extended use based on junegunn/seoul256.vim |\n\n\n### Installing themes\n\nThis is an example about installing some themes:\n```sh\nurl=\"https://raw.githubusercontent.com/sepen/arradio/master/ui-themes\"\nthemes=\"dracula neoninferno partypop\"\ncd $HOME/.arradio/ui-themes\nfor theme in $themes; do curl -fsSL -O $url/$theme; done\ncd -\n```\n\nTo list all available themes locally, run:\n```sh\narradio tlist\n\nTHEME            PALETTE  DESCRIPTION\nbasic              8-bit  Simple, portable color scheme optimized for compatibility with 256-color terminals\nchalkboard        24-bit  Dark board-like background with off-white text and subtle neon accents\ndracula           24-bit  Dark, high-contrast palette of purples, pinks, and teals for vivid clarity\nneoninferno       24-bit  Blazing neon accents over a subtle charcoal-purple background\npartypop          24-bit  Ultra-bright, festive colors with clear contrasts for a playful vibe\nrasta             24-bit  Bold red, gold, and green on a dark base for reggae-inspired energy\nretroblast        24-bit  Bright primaries and neon tones evoking ZX Spectrum and arcade classics\nretrowave         24-bit  Deep blue background with neon pinks and cyan highlights for synthwave feels\n```\n\n### Selecting a Theme\n\nBy default, [arradio](/) reads the default theme from your configuration file:\n```yaml\n# ~/.arradio/config\n\nui_theme: gruvbox\n```\n\nYou can also temporarily override the theme directly from the command line when launching arradio:\n```sh\narradio ui -t gruvbox\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsepen%2Farradio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsepen%2Farradio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsepen%2Farradio/lists"}