Giter Site home page Giter Site logo

deep5050 / radio-active Goto Github PK

View Code? Open in Web Editor NEW
495.0 7.0 25.0 691 KB

Play any radios around the globe right from the terminal :zap:

Home Page: https://www.radio-browser.info/#/

License: MIT License

Python 97.47% Makefile 2.53%
radio online-radio cli pyradios pyradio stations radios music audio music-player

radio-active's Introduction

RADIOACTIVE

SEARCH - PLAY - RECORD - REPEAT

radio-active - Play more than 30K radio stations from your terminal | Product Hunt

UPI


GitHub PyPI PyPI - Downloads CodeFactor Grade Discord

YouTube Video Likes and Dislikes

Join Discord Server

Demo

Features

  • Supports more than 40K stations !! ๐Ÿ“ป
  • Record audio from live radio on demand โšก
  • Get song information on run-time ๐ŸŽถ
  • Saves last station information
  • Favorite stations โค๏ธ
  • Selection menu for favorite stations
  • Supports user-added stations ๐Ÿ”ง
  • Looks minimal and user-friendly
  • Runs on Raspberry Pi
  • Finds nearby stations
  • Discovers stations by genre
  • Discovers stations by language
  • VLC, MPV player support
  • Default config file
  • I'm feeling lucky! Play Random stations

See my progress โžก๏ธ here

Why radioactive?

While there are various CLI-based radio players like PyRadio and TERA, Radioactive stands out for its simplicity. It's designed to work seamlessly right from the start. You don't need to be a hardcore Linux or Vim expert to enjoy radio stations with Radioactive. The goal of Radioactive is to offer a straightforward user interface that's easy to grasp and comes preconfigured, without unnecessary complexities.

In the Spotlight

The praise from YouTube channels and blogs underscores Radioactive's emergence as a top choice for radio enthusiasts. Its simple yet powerful features, make it a must-try application for radio lovers of all expertise levels. Discover the world of radio with ease โ€“ experience Radioactive today.

  1. See DistroTube YouTube channel talks about my app: https://www.youtube.com/watch?v=H7sf1RDFXpU&pp=ygUYcmFkaW9hY3RpdmUgcGxheWVyIHJhZGlv
  2. Ubunlog: https://ubunlog.com/en/radio-activate-an-application-to-listen-to-the-radio-from-the-terminal/
  3. LinuxLinks: https://www.linuxlinks.com/radio-active-listen-radio-terminal/3/
  4. Official entry in the RadioBrowser API: https://www.radio-browser.info/users
  5. ThingsAndStuff: https://wiki.thingsandstuff.org/Streaming#:~:text=com/billniakas/bash_radio_gr-,radio%2Dactive,-https%3A//github.com
  6. Awesome-stars: https://arbal.github.io/awesome-stars/#:~:text=deep5050/radio%2Dactive%20%2D%20Play%20any%20radios%20around%20the%20globe%20right%20from%20the%20terminal%20%3Azap%3A
  7. OpenSourceAgenda: https://www.opensourceagenda.com/projects/my-awesome-stars#:~:text=deep5050/radio%2Dactive%20%2D%20Play%20any%20radios%20around%20the%20globe%20right%20from%20the%20terminal%20%3Azap%3A

Install

Simply run: pip3 install --upgrade radio-active

I recommend installing it using pipx install radio-active

TODO:

  • Create deb, rpm and exe packages
  • Add it to various Linux distribution package repositories.
  • Add to scoop, chocolately

External Dependency

It needs FFmpeg to be installed on your system in order to record the audio

on Ubuntu-based system >= 20.04 Run

sudo apt update
sudo apt install ffmpeg

For other systems including Windows see the above link

Installing FFmpeg

FFmpeg is required for this program to work correctly. Install FFmpeg by following these steps:-

Run

Search a station with radio --search [STATION_NAME] or simply radio โšก to select from the favorite menu.

Tips

  1. Use a modern terminal emulator, otherwise the UI might break! (gets too ugly sometimes)
  2. On Windows, instead of the default Command Prompt, use the new Windows Terminal or web-based emulators like Hyper, Cmdr, Terminus, etc. for better UI
  3. Let the app run for at least 5 seconds (not a serious issue though, for better performance)

Demo

Options

Options Note Description Default Values
(No Option) Optional Select a station from menu to play False
--search, -S Optional Station name None
--play, -P Optional A station from fav list or url for direct play None
--country, -C Optional Discover stations by country code False
--state Optional Discover stations by country state False
--language optional Discover stations by False
--tag Optional Discover stations by tags/genre False
--uuid, -U Optional ID of the station None
--record , -R Optional Record a station and save to file False
--filename, -N Optional Filename to used to save the recorded audio None
--filepath Optional Path to save the recordings <DEFAULT_DIR>
--filetype, -T Optional Format of the recording mp3 mp3,auto
--last Optional Play last played station False
--random Optional Play a random station from favorite list False
--sort Optional Sort the result page votes
--filter Optional Filter search results None
--limit Optional Limit the # of results in the Discover table 100
--volume , -V Optional Change the volume passed into ffplay 80 [0-100]
--favorite, -F Optional Add current station to fav list False
--add , -A Optional Add an entry to fav list False
--list, -W Optional Show fav list False
--remove Optional Remove entries from favorite list False
--flush Optional Remove all the entries from fav list False
--kill , -K Optional Kill background radios. False
--loglevel Optional Log level of the program Info info, warning, error, debug
--player Optional Media player to use ffplay vlc, mpv, ffplay

Note

Once you save/play at least one station, invoking radio without any options will show a selection menu

--search, -S: Search for a station online.

--play, -P: You can pass an exact name from your favorite stations or alternatively pass any direct stream URL. This would bypass any user selection menu (useful when running from another script)

--uuid,-U: When station names are too long or confusing (or multiple results for the same name) use the station's uuid to play. --uuid gets the greater priority than --search. Example: 96444e20-0601-11e8-ae97-52543be04c81. type u on the runtime command to get the UUID of a station.

--loglevel,: Don't need to specify unless you are developing it. info, warning, error, debug

-F: Add the current station to your favorite list. Example: -F my_fav_1

-A: Add any stations to your list. You can add stations that are not currently available on our API. When adding a new station enter a name and direct URL to the audio stream.

--limit: Specify how many search results should be displayed.

--filetype: Specify the extension of the final recording file. default is mp3. you can provide -T auto to autodetect the codec and set file extension accordingly (in original form).

DEFAULT_DIR: is /home/user/Music/radioactive

Runtime Commands

Input a command during the radio playback to perform an action. Available commands are:

Enter a command to perform an action: ?

t/T/track: Current song name (track info)
r/R/record: Record a station
f/F/fav: Add station to favorite list
rf/RF/recordfile: Specify a filename for the recording.
h/H/help/?: Show this help message
q/Q/quit: Quit radioactive

Sort Parameters

you can sort the result page with these parameters:

  • name (default)
  • votes (based on user votes)
  • codec
  • bitrate
  • lastcheckok (active stations)
  • lastchecktime (recent active)
  • clickcount (total play count)
  • clicktrend (currently trending stations)
  • random

Filter Parameters

Filter search results with --filter. Some possible expressions are

  • --filter "name=shows"
  • --filter "name=shows,talks,tv"
  • --filter "name!=news,shows"
  • --filter "country=in"
  • --filter "language=bengali,nepali"
  • --filter "bitrate>64"
  • --filter "votes<500"
  • --filter "codec=mp3"
  • --filter "tags!=rock,pop"

Allowed operators are:

  • =
  • ,
  • !=
  • >
  • <
  • &

Allowed keys are: name, country (countrycode as value), language, bitrate, votes, codec, tags

Provide multiple filters at one go, use &

A complex filter example: --filter "country!=CA&tags!=islamic,classical&votes>500"

Note

set --limit to a higher value while filtering results

Default Configs

Default configuration file is added into your home directory as .radio-active-configs.ini

[AppConfig]
loglevel = info
limit = 100
sort = votes
filter = none
volume = 80
filepath = /home/{user}/recordings/radioactive/
filetype = mp3
player = ffplay

Warning

Do NOT modify the keys, only change the values. you can give any absolute or relative path as filepath.

Bonus Tips

  1. when using rf: you can force the recording to be in mp3 format by adding an extension to the file name. Example "talk-show.mp3". If you don't specify any extension it should auto-detect. Example "new_show"

  2. You don't have to pass the exact option name, a portion of it will also work. for example --sea for --search, --coun for --country, --lim for --limit

  3. It's better to leave the --filetype as mp3 when you need to record something quickly. The autocodec takes a few milliseconds extra to determine the codec.

Changes

see CHANGELOG

Community

Share you favorite list with our community ๐ŸŒ โžก๏ธ Here

Your favorite list .radio-active-alias is under your home directory as a hidden file :)

Support

Visit my contribution page for more payment options.

Buy Me A Coffee

Acknowledgements

Icons made by Freepik from www.flaticon.com

Happy Listening

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

Joe Smith
Joe Smith

โš ๏ธ ๐Ÿ’ป ๐Ÿค”
salehjafarli
salehjafarli

๐Ÿ’ป
marvoh
marvoh

๐Ÿ’ป ๐Ÿ›

This project follows the all-contributors specification. Contributions of any kind welcome!

Alt

radio-active's People

Contributors

allcontributors[bot] avatar deep5050 avatar salehjafarli avatar yasumoto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

radio-active's Issues

EOF (CTRL+D) on interactive interface crashes

Describe the bug
When entering EOF, the application crashes, because the input pipe is closed, but utilities.py is reading from it.

To Reproduce
Steps to reproduce the behavior:

  1. Play any station
  2. Press CTRL+D
  3. See error

Expected behavior
Graceful shutdown as for CTRL+C

Desktop (please complete the following information):

  • OS: Ubuntu 20.04

Language code

allow users to search using language name. if not possible show a message regarding this!

SSL error

handler.play_by_station_name(station_name)

SSLError
HTTPSConnectionPool(host='nl1.api.radio-browser.info', port=443): Max retries exceeded with url: /json/stations/search?name=weeeee&nameExact=false (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1002)')))

Error on record

When you try to record a radio that transmit in another codec than mp3, it will fail.
https://imgur.com/LDu7pbt

May be using -c:a libmp3lame in the ffmpeg record command will help.
The previuos flag change the codec to mp3.

radio exits but player plays perfectly in the background!!

image

 ...    | Update not available
  i     | You can search for a station on internet using the --search option
 ...    | Error: 'stationuuid'
 ...    | player: url => https://airhlspush.pc.cdn.bitgravity.com/httppush/hlspbaudio008/hlspbaudio008_Auto.m3u8
 ...    | FFplay: /usr/bin/ffplay
 ...    | player: ffplay => PID 3641 initiated
 ...    | Saving the current station: {'name': 'AIR FM Rainbow Mumbai ', 'uuid_or_url': 'https://airhlspush.pc.cdn.bitgravity.com/httppush/hlspbaudio008/hlspbaudio008_Auto.m3u8'}
 ...    | Dumping station information

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ“ป โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ AIR FM Rainbow Mumbai โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
... | codec falling back to: 'NoneType' object is not subscriptable
[NULL @ 0x55f5b6831e00] Invalid HLS ID3 audio timestamp 69406134857
[!!!] | Could not connect to the station
... | [NULL @ 0x7f97fc62b880] Invalid HLS ID3 audio timestamp 69406134857
... | Error: list index out of range
... | Radio is not currently playing
... | You pressed Ctrl+C!
... | Stopping the radio
i | Exiting now
Documents/github/radio-active$

Could not connect to the station - Protocol not found

Describe the bug
Can't play some stations due to protocol issues. NOTE this is not a problem with radio-active but rather with ffmpeg configuration I faced. I thought it will be useful for others if they face same problems. You can see resolution below and close this issue.

To Reproduce
Steps to reproduce the behavior:

Playing some station with debug logging shows the problem and the URL we can use to test:

Type the result ID to play: 1
     ...    | Selected: {'changeuuid': '39b0ea90-9bf6-491f-8e22-2969e0689bd5', 'stationuuid': '18ab1514-a53b-4f44-936e-f8583a68b5aa', 'serveruuid': '977da0f8-e0af-434e-a3f1-0d1517402cb1', 'name': '__TECHNO__ by rautemusik.fm', 'url': 'https://streams.rautemusik.fm/techno/mp3-192/?ref=radiobrowser', 'url_resolved': 'https://rautemusik-de-hz-fal-stream14.radiohost.de/rautemusik-techno_mp3-192?ref=radiobrowser', 'homepage': 'https://rm.fm/techno', 'favicon': 'https://i.postimg.cc/tTwRg418/techno.jpg', 'tags': 'ambient techno,deep techno,dub techno,hard techno,house techno,minimal techno,techno', 'country': 'Germany', 'countrycode': 'DE', 'iso_3166_2': None, 'state': 'North Rhine-Westphalia', 'language': 'deutsch frรคnkisch,english,german', 'languagecodes': 'de,en', 'votes': 55, 'lastchangetime': '2023-07-30 20:21:33', 'lastchangetime_iso8601': '2023-07-30T20:21:33Z', 'codec': 'MP3', 'bitrate': 192, 'hls': 0, 'lastcheckok': 1, 'lastchecktime': '2023-10-18 09:40:39', 'lastchecktime_iso8601': '2023-10-18T09:40:39Z', 'lastcheckoktime': '2023-10-18 09:40:39', 'lastcheckoktime_iso8601': '2023-10-18T09:40:39Z', 'lastlocalchecktime': '2023-10-18 09:40:39', 'lastlocalchecktime_iso8601': '2023-10-18T09:40:39Z', 'clicktimestamp': '2023-10-18 20:31:47', 'clicktimestamp_iso8601': '2023-10-18T20:31:47Z', 'clickcount': 68, 'clicktrend': 1, 'ssl_error': 0, 'geo_lat': 50.46100111599232, 'geo_long': 8.261718750000002, 'has_extended_info': False}
     ...    | Searching API for: 18ab1514-a53b-4f44-936e-f8583a68b5aa
      i     | Station found: __TECHNO__ by rautemusik.fm
     ...    | {
     ...    |    "changeuuid": "39b0ea90-9bf6-491f-8e22-2969e0689bd5",
     ...    |    "stationuuid": "18ab1514-a53b-4f44-936e-f8583a68b5aa",
     ...    |    "serveruuid": "977da0f8-e0af-434e-a3f1-0d1517402cb1",
     ...    |    "name": "__TECHNO__ by rautemusik.fm",
     ...    |    "url": "https://streams.rautemusik.fm/techno/mp3-192/?ref=radiobrowser",
     ...    |    "url_resolved": "https://rautemusik-de-hz-fal-stream14.radiohost.de/rautemusik-techno_mp3-192?ref=radiobrowser",
     ...    |    "homepage": "https://rm.fm/techno",
     ...    |    "favicon": "https://i.postimg.cc/tTwRg418/techno.jpg",
     ...    |    "tags": "ambient techno,deep techno,dub techno,hard techno,house techno,minimal techno,techno",
     ...    |    "country": "Germany",
     ...    |    "countrycode": "DE",
     ...    |    "iso_3166_2": null,
     ...    |    "state": "North Rhine-Westphalia",
     ...    |    "language": "deutsch fr\u00e4nkisch,english,german",
     ...    |    "languagecodes": "de,en",
     ...    |    "votes": 55,
     ...    |    "lastchangetime": "2023-07-30 20:21:33",
     ...    |    "lastchangetime_iso8601": "2023-07-30T20:21:33Z",
     ...    |    "codec": "MP3",
     ...    |    "bitrate": 192,
     ...    |    "hls": 0,
     ...    |    "lastcheckok": 1,
     ...    |    "lastchecktime": "2023-10-18 09:40:39",
     ...    |    "lastchecktime_iso8601": "2023-10-18T09:40:39Z",
     ...    |    "lastcheckoktime": "2023-10-18 09:40:39",
     ...    |    "lastcheckoktime_iso8601": "2023-10-18T09:40:39Z",
     ...    |    "lastlocalchecktime": "2023-10-18 09:40:39",
     ...    |    "lastlocalchecktime_iso8601": "2023-10-18T09:40:39Z",
     ...    |    "clicktimestamp": "2023-10-18 20:31:47",
     ...    |    "clicktimestamp_iso8601": "2023-10-18T20:31:47Z",
     ...    |    "clickcount": 68,
     ...    |    "clicktrend": 1,
     ...    |    "ssl_error": 0,
     ...    |    "geo_lat": 50.46100111599232,
     ...    |    "geo_long": 8.261718750000002,
     ...    |    "has_extended_info": false
     ...    | }
     ...    | increased click count for: 18ab1514-a53b-4f44-936e-f8583a68b5aa
     ...    | player: url => https://streams.rautemusik.fm/techno/mp3-192/?ref=radiobrowser
     ...    | FFplay: /usr/local/bin/ffplay
     ...    | player: ffplay => PID 1111707 initiated
     ...    | Saving the current station: {'name': '__TECHNO__ by rautemusik.fm', 'uuid_or_url': 'https://streams.rautemusik.fm/techno/mp3-192/?ref=radiobrowser'}
     ...    | Dumping station information
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ“ป โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                            __TECHNO__ by rautemusik.fm                            โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
      i     | Press '?' to see available commands
Enter a command to perform an action: 
    [!!!]   | Could not connect to the station
     ...    | https://streams.rautemusik.fm/techno/mp3-192/?ref=radiobrowser: Protocol not found
    [!!!]   | Protocol not found
     ...    | Radio is not currently playing
     ...    | You pressed Ctrl+C!
     ...    | Stopping the radio
      i     | Exiting now

Expected behavior
Supposed to play the station but gives an error

Screenshots
NA (use text :))

Desktop (please complete the following information):
Software version is not important.

Reproduce with FFMPEG

ffplay https://streams.rautemusik.fm/techno/mp3-192/?ref=radiobrowser
ffplay version N-112066-gced62a0c01 Copyright (c) 2003-2023 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
  configuration: --enable-shared --enable-nonfree --enable-cuda-nvcc --enable-libnpp --enable-cuvid --enable-nvdec --enable-nvenc --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-libsrt --enable-libx264 --enable-encoder=libx264 --enable-libx265 --enable-encoder=libx265 --enable-gpl --enable-libvpx --enable-libvorbis --enable-libopus --enable-libfdk-aac --enable-ffplay
  libavutil      58. 24.100 / 58. 24.100
  libavcodec     60. 26.100 / 60. 26.100
  libavformat    60. 12.101 / 60. 12.101
  libavdevice    60.  2.101 / 60.  2.101
  libavfilter     9. 11.100 /  9. 11.100
  libswscale      7.  3.100 /  7.  3.100
  libswresample   4. 11.100 /  4. 11.100
  libpostproc    57.  2.100 / 57.  2.100
https protocol not found, recompile FFmpeg with openssl, gnutls or securetransport enabled.
https://streams.rautemusik.fm/techno/mp3-192/?ref=radiobrowser: Protocol not found
    nan    :  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0   

Useful error from FFMPEG above. Perhaps this can be communicated to the end-user by capturing stderr?

Solution

Either make sure you have FFMPEG installed with all libraries, protocols as needed or recompile from source.

I recompiled FFMPEG with SSL support and it works:

ffplay https://streams.rautemusik.fm/techno/mp3-192/?ref=radiobrowser
ffplay version N-111376-g13ef5025e3 Copyright (c) 2003-2023 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
  configuration: --enable-shared --enable-nonfree --enable-cuda-nvcc --enable-libnpp --enable-cuvid --enable-nvdec --enable-nvenc --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-libsrt --enable-libx264 --enable-encoder=libx264 --enable-libx265 --enable-encoder=libx265 --enable-gpl --enable-libvpx --enable-libvorbis --enable-libopus --enable-libfdk-aac --enable-openssl --enable-ffplay
  libavutil      58. 14.100 / 58. 14.100
  libavcodec     60. 22.100 / 60. 22.100
  libavformat    60. 10.100 / 60. 10.100
  libavdevice    60.  2.101 / 60.  2.101
  libavfilter     9.  8.102 /  9.  8.102
  libswscale      7.  3.100 /  7.  3.100
  libswresample   4. 11.100 /  4. 11.100
  libpostproc    57.  2.100 / 57.  2.100
Input #0, mp3, from 'https://streams.rautemusik.fm/techno/mp3-192/?ref=radiobrowser':
  Metadata:
    icy-br          : 192
    icy-genre       : Melodic Techno, Dark Techno, Acid Techno, Hard Techno
    icy-name        : techno
    icy-url         : rm.fm
    icy-audio-info  : channels=2;samplerate=44100;bitrate=192
    icy-pub         : 1
    icy-description : Unspecified description
    StreamTitle     : Cherry Bomb - Eclipse
  Duration: N/A, start: 0.000000, bitrate: 192 kb/s
  Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 192 kb/s
  17.82 M-A:  0.000 fd=   0 aq=   24KB vq=    0KB sq=    0B f=0/0 

Example of a compilation script:

ffmpeg_compile.sh

Remove/add some options as needed.

#!/bin/bash

cuda_ver="12.2"

export PATH=/usr/local/cuda-$cuda_ver/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda-$cuda_ver/targets/x86_64-linux/lib/:$LD_LIBRARY_PATH

make clean

./configure --enable-shared --enable-nonfree --enable-cuda-nvcc  --enable-libnpp --enable-cuvid --enable-nvdec --enable-nvenc --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-libsrt --enable-libx264 --enable-encoder=libx264 --enable-libx265 --enable-encoder=libx265 --enable-gpl --enable-libvpx --enable-libvorbis --enable-libopus --enable-libfdk-aac --enable-openssl --enable-ffplay

make -j `nproc`

Then:

sudo make install

Hope this helps

zero usability

Great concept.

But it lacks of usability. I play a radio, but I need to quit the app in order to play another radio.
And yeah, random (by tag/country) would be great.

disable video while playing a radio

some audio like 9xm streams videos too! stop shoeing videos
also safeguard audio recordings !!

image

debug information

Documents/github/radio-active$ radio --cou india --log debug
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ RADIOACTIVE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ โ”‚
โ”‚ ๐Ÿ“ป Play any radios around the globe right from this Terminal โšก! โ”‚
โ”‚ ๐Ÿ˜„ Author: Dipankar Pal โ”‚
โ”‚ โ“ Type '--help' for more details on available commands โ”‚
โ”‚ ๐Ÿ› Visit: https://github.com/deep5050/radio-active to submit issues โ”‚
โ”‚ โญ Show some love by starring the project on GitHub โค โ”‚
โ”‚ ๐Ÿ’ต You can donate me at https://deep5050.github.io/payme/ โ”‚
โ”‚ โŒ Press Ctrl+C to quit โ”‚
โ”‚ โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
... | Update not available
... | Country name india provided
i | Result for country: India
โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ ID โ”ƒ Station โ”ƒ State โ”ƒ Tags โ”ƒ Language โ”ƒ
โ”กโ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ 1 โ”‚ . Islam call โ”‚ โ”‚ classical โ”‚ โ”‚
โ”‚ 2 โ”‚ 24 Hours Kirtan Radio โ”‚ โ”‚ international โ”‚ โ”‚
โ”‚ 3 โ”‚ 2B! Radio Sangam Devi Maa โ”‚ โ”‚ mantra,spiritual โ”‚ hindi โ”‚
โ”‚ 4 โ”‚ 2B! Radio Sangam Ganesha โ”‚ โ”‚ mantra,spiritual โ”‚ hindi โ”‚
โ”‚ 5 โ”‚ 2B! Radio Sangam Guruvar โ”‚ โ”‚ mantra,spiritual โ”‚ hindi โ”‚
โ”‚ 6 โ”‚ 2B! Radio Sangam Krishna โ”‚ โ”‚ mantra,spiritual โ”‚ hindi โ”‚
โ”‚ 7 โ”‚ 2B! Radio Sangam Meditation โ”‚ โ”‚ meditation,spiritual โ”‚ โ”‚
โ”‚ 8 โ”‚ 2B! Radio Sangam Shiva โ”‚ โ”‚ mantra,spiritual โ”‚ hindi โ”‚
โ”‚ 9 โ”‚ 2B! Radio Sangam Shri Ram โ”‚ โ”‚ mantra,spiritual โ”‚ hindi โ”‚
โ”‚ 10 โ”‚ 90's Super Hits live โ”‚ โ”‚ bollywood,hindi โ”‚ hindi โ”‚
โ”‚ 11 โ”‚ 90's Super Hits live โ”‚ โ”‚ bollywood โ”‚ hindi โ”‚
โ”‚ 12 โ”‚ 90s SuperHits โ”‚ โ”‚ 90s,bollywood,classi... โ”‚ hindi โ”‚
โ”‚ 13 โ”‚ 9X M TV โ”‚ Maharashtra โ”‚ โ”‚ hindi โ”‚
โ”‚ 14 โ”‚ 9X Tashan TV โ”‚ Maharashtra โ”‚ โ”‚ punjabi โ”‚
โ”‚ 15 โ”‚ 9xm โ”‚ โ”‚ โ”‚ hindi โ”‚
โ”‚ 16 โ”‚ 9XM โ”‚ โ”‚ โ”‚ hindi โ”‚
โ”‚ 17 โ”‚ 9xm โ”‚ โ”‚ music โ”‚ hindi โ”‚
โ”‚ 18 โ”‚ AB DIGITAL โ”‚ โ”‚ country โ”‚ โ”‚
โ”‚ 19 โ”‚ Agaramuthalaa FM โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ 20 โ”‚ AIR Agra โ”‚ Uttar Pradesh โ”‚ โ”‚ โ”‚
โ”‚ 21 โ”‚ AIR Ahmednagar โ”‚ Maharashtra โ”‚ culture,local progra... โ”‚ hindi,marathi โ”‚
โ”‚ 22 โ”‚ AIR Akashvani Maitree Kolkata โ”‚ โ”‚ โ”‚ bengali โ”‚
โ”‚ 23 โ”‚ AIR Almora โ”‚ Uttara Khand โ”‚ drama,infotainment,m... โ”‚ hindi โ”‚
โ”‚ 24 โ”‚ AIR Alwar โ”‚ Rajasthan โ”‚ drama,infotainment,m... โ”‚ english,hindi โ”‚
โ”‚ 25 โ”‚ AIR Amaravati โ”‚ Maharashtra โ”‚ drama,infotainment,m... โ”‚ english,hindi,marath... โ”‚
โ”‚ 26 โ”‚ AIR Aurangabad โ”‚ Maharastra โ”‚ drama,inotainment,mu... โ”‚ english,hindi,marath... โ”‚
โ”‚ 27 โ”‚ AIR Banswara โ”‚ โ”‚ drama,infotainment,n... โ”‚ english,hindi,rajash... โ”‚
โ”‚ 28 โ”‚ AIR Bengaluru โ”‚ Karnataka โ”‚ drama,infotainment,m... โ”‚ english,hindi,kannad... โ”‚
โ”‚ 29 โ”‚ AIR Bhadravati โ”‚ Karnataka โ”‚ infotainment,music,n... โ”‚ english,hindi,kannad... โ”‚
โ”‚ 30 โ”‚ AIR bhopal โ”‚ madhya pradesh โ”‚ โ”‚ hindi โ”‚
โ”‚ 31 โ”‚ AIR Bhopal โ”‚ madhya pradesh โ”‚ โ”‚ โ”‚
โ”‚ 32 โ”‚ AIR Bikaner โ”‚ Rajasthan โ”‚ infotainment,music,n... โ”‚ english,hindi โ”‚
โ”‚ 33 โ”‚ AIR Chitradurga โ”‚ Karnataka โ”‚ infotainment,music,n... โ”‚ โ”‚
โ”‚ 34 โ”‚ Air Coimbatore โ”‚ โ”‚ classical โ”‚ โ”‚
โ”‚ 35 โ”‚ AIR Darjeeling โ”‚ West Bangal โ”‚ infotainment,music,n... โ”‚ bengali,english,hind... โ”‚
โ”‚ 36 โ”‚ AIR Dehradun โ”‚ Uttarakhand โ”‚ drama,infotainment,n... โ”‚ english,hindi,urdu โ”‚
โ”‚ 37 โ”‚ AIR DELHI FM GOLD โ”‚ Delhi โ”‚ drama,infotainment,m... โ”‚ english,hindi โ”‚
โ”‚ 38 โ”‚ AIR Delhi FM Gold โ”‚ Delhi โ”‚ drama,music,news,son... โ”‚ english,hindi โ”‚
โ”‚ 39 โ”‚ AIR DELHI INDRAPRASTHA โ”‚ Delhi โ”‚ infotainment,local n... โ”‚ english,hindi โ”‚
โ”‚ 40 โ”‚ AIR Dharawad โ”‚ Karnataka โ”‚ โ”‚ โ”‚
โ”‚ 41 โ”‚ AIR Dharwad โ”‚ Karnataka โ”‚ โ”‚ โ”‚
โ”‚ 42 โ”‚ AIR Faizabad โ”‚ Uttar Pradesh โ”‚ drama,infotainment,m... โ”‚ english,hindi,urdu โ”‚
โ”‚ 43 โ”‚ AIR Fm Gold Delhi โ”‚ New Delhi โ”‚ โ”‚ โ”‚
โ”‚ 44 โ”‚ AIR FM Rainbow Kochi โ”‚ Kerala โ”‚ โ”‚ hindi,malayalam โ”‚
โ”‚ 45 โ”‚ AIR FM Rainbow Mumbai โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ 46 โ”‚ AIR Goa FM โ”‚ Goa โ”‚ drama,infotainment,m... โ”‚ english,hindi,kannad... โ”‚
โ”‚ 47 โ”‚ AIR Gorakhapur โ”‚ Uttara Pradesh โ”‚ drama,infotainment,m... โ”‚ english,hindi โ”‚
โ”‚ 48 โ”‚ AIR Gujarati โ”‚ Gujarat โ”‚ โ”‚ โ”‚
โ”‚ 49 โ”‚ AIR Hospet โ”‚ Karnataka โ”‚ news talk music โ”‚ โ”‚
โ”‚ 50 โ”‚ AIR Hyderabad A โ”‚ hyderabad โ”‚ news talk โ”‚ telugu โ”‚
โ”‚ 51 โ”‚ AIR Indore โ”‚ madhya pradesh โ”‚ infotainment,music,n... โ”‚ english,hindi,urdu โ”‚
โ”‚ 52 โ”‚ AIR Jaipur โ”‚ Rajasthan โ”‚ โ”‚ โ”‚
โ”‚ 53 โ”‚ AIR Jalandhar โ”‚ Panjab โ”‚ inotainment,music,ne... โ”‚ english,hindi,panjab... โ”‚
โ”‚ 54 โ”‚ AIR Jhalavar โ”‚ Rajasthan โ”‚ dram,infotainment,lo... โ”‚ english,hindi โ”‚
โ”‚ 55 โ”‚ AIR Jodhpur โ”‚ Rajasthan โ”‚ โ”‚ โ”‚
โ”‚ 56 โ”‚ AIR Junaghad โ”‚ Gujarat โ”‚ drama,infotainment,m... โ”‚ english,gujarati,hin... โ”‚
โ”‚ 57 โ”‚ Air kadapa โ”‚ โ”‚ country โ”‚ โ”‚
โ”‚ 58 โ”‚ AIR Kalaburagi โ”‚ Karnataka โ”‚ local news โ”‚ โ”‚
โ”‚ 59 โ”‚ AIR Kalaburagi FM โ”‚ Karnataka โ”‚ infotainment,music,n... โ”‚ kannada hindi โ”‚
โ”‚ 60 โ”‚ AIR Kannur FM โ”‚ โ”‚ country โ”‚ โ”‚
โ”‚ 61 โ”‚ AIR Kanpur โ”‚ Uttar Pradesh โ”‚ โ”‚ โ”‚
โ”‚ 62 โ”‚ AIR Karawar โ”‚ Karnataka โ”‚ infotainment,music,n... โ”‚ english,hindi,kannad... โ”‚
โ”‚ 63 โ”‚ AIR Kochi โ”‚ โ”‚ classical โ”‚ โ”‚
โ”‚ 64 โ”‚ Air Kochi FM โ”‚ karala โ”‚ โ”‚ malayalam โ”‚
โ”‚ 65 โ”‚ AIR Kochi FM Rainbow โ”‚ Kerala โ”‚ air,all india radio,... โ”‚ malayalam โ”‚
โ”‚ 66 โ”‚ AIR KODAI FM โ”‚ Tamil Nadu โ”‚ kodaikanal,tamil โ”‚ tamil โ”‚
โ”‚ 67 โ”‚ AIR Kolhapur โ”‚ Maharashtra โ”‚ infotainment,local n... โ”‚ english,hindi,marath... โ”‚
โ”‚ 68 โ”‚ AIR Kolkata Geetanjali โ”‚ West Bengal โ”‚ โ”‚ โ”‚
โ”‚ 69 โ”‚ AIR Kozhikode Real FM โ”‚ kerala โ”‚ air,all india radio,... โ”‚ hindi,malayalam โ”‚
โ”‚ 70 โ”‚ Air Kurnool โ”‚ โ”‚ country โ”‚ โ”‚
โ”‚ 71 โ”‚ AIR Lucknow โ”‚ โ”‚ classical โ”‚ โ”‚
โ”‚ 72 โ”‚ AIR Madikeri โ”‚ Karnataka โ”‚ news talk music โ”‚ โ”‚
โ”‚ 73 โ”‚ AIR Madurai AM1269 โ”‚ Tamil Nadu โ”‚ โ”‚ โ”‚
โ”‚ 74 โ”‚ AIR Madurai FM โ”‚ Tamil Nadu โ”‚ madurai,south india,... โ”‚ tamil โ”‚
โ”‚ 75 โ”‚ AIR Malayalam โ”‚ Kerala โ”‚ air,all india radio,... โ”‚ malayalam โ”‚
โ”‚ 76 โ”‚ AIR Mathura โ”‚ Madya Pradesh โ”‚ drama,infotainment,n... โ”‚ english,hindi โ”‚
โ”‚ 77 โ”‚ AIR Mevad Kandva โ”‚ Rajashtan โ”‚ drama,infotainment,m... โ”‚ english,hindi โ”‚
โ”‚ 78 โ”‚ AIR Murshidabad โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ 79 โ”‚ AIR Mysuru โ”‚ Karnataka โ”‚ news talk music ente... โ”‚ kannada โ”‚
โ”‚ 80 โ”‚ AIR Nagercoil โ”‚ Tamil Nadu โ”‚ nagercoil,tamil โ”‚ tamil โ”‚
โ”‚ 81 โ”‚ AIR Nagercoil FM โ”‚ Tamil Nadu โ”‚ nagercoil,south indi... โ”‚ tamil โ”‚
โ”‚ 82 โ”‚ AIR Nagpur โ”‚ Maharashtra โ”‚ drama,infotainment,m... โ”‚ english,hindi,marath... โ”‚
โ”‚ 83 โ”‚ AIR Nanded โ”‚ Maharashtra โ”‚ โ”‚ hindi,marathi โ”‚
โ”‚ 84 โ”‚ Air Nellore โ”‚ โ”‚ country โ”‚ โ”‚
โ”‚ 85 โ”‚ AIR News 24/7 โ”‚ New Delhi โ”‚ news talk โ”‚ hindi โ”‚
โ”‚ 86 โ”‚ AIR Osmanabad โ”‚ Maharastra โ”‚ drama,infotainment,m... โ”‚ hindi,marathi โ”‚
โ”‚ 87 โ”‚ AIR Parbhani โ”‚ Maharashtra โ”‚ drama,infotainment,n... โ”‚ english,hindi,marath... โ”‚
โ”‚ 88 โ”‚ AIR Prayagraj โ”‚ Uttar Pradesh โ”‚ drama,infotainment,m... โ”‚ hindi โ”‚
โ”‚ 89 โ”‚ AIR PUDUCHERRY FM โ”‚ Tamil Nadu โ”‚ puducherry,south ind... โ”‚ tamil โ”‚
โ”‚ 90 โ”‚ AIR Pune AM โ”‚ Maharashtra โ”‚ marathi,pune,pune am... โ”‚ hindi,marathi โ”‚
โ”‚ 91 โ”‚ AIR Pune FM โ”‚ โ”‚ classical โ”‚ โ”‚
โ”‚ 92 โ”‚ AIR Pune FM โ”‚ Maharashtra โ”‚ hindi,india,marathi,... โ”‚ marathi โ”‚
โ”‚ 93 โ”‚ AIR Pune FM (High Bit Rate) โ”‚ โ”‚ classical โ”‚ โ”‚
โ”‚ 94 โ”‚ AIR Raagam โ”‚ โ”‚ carnatic,hindustani,... โ”‚ โ”‚
โ”‚ 95 โ”‚ AIR Raichur โ”‚ Karnataka โ”‚ drama,infotainment,m... โ”‚ english,hindi,kannad... โ”‚
โ”‚ 96 โ”‚ AIR RAINBOW FM KOCHI 107.5 โ”‚ kerala โ”‚ government,hindi,ind... โ”‚ malayalam โ”‚
โ”‚ 97 โ”‚ AIR Raipur โ”‚ Chhattisgarh โ”‚ drama,infotainment,m... โ”‚ english,hindi โ”‚
โ”‚ 98 โ”‚ AIR Rampur โ”‚ Uttara Pradesh โ”‚ drama,infotainment,m... โ”‚ english,hindi,urdu โ”‚
โ”‚ 99 โ”‚ AIR Ratnagar โ”‚ Maharastra โ”‚ infotainment,music,n... โ”‚ english,hindi,marath... โ”‚
โ”‚ 100 โ”‚ AIR Sasaram โ”‚ Bihar โ”‚ drama,infotainment,n... โ”‚ bihari,english,hindi โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
i | If the table does not fit into your screen,
i | try to maximize the window , decrease the font by a bit and retry
... | Asking for user input
Type the result ID to play: 15
... | Selected: {'changeuuid': '91f6238c-e5c7-4a4e-86f7-4439eebdd29c', 'stationuuid': 'd76b2d85-a1c0-4ec7-a148-61062ab03c07', 'serveruuid': 'daaee28f-690f-44c9-b3c4-5a968e26c282', 'name': '9xm', 'url': 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8', 'url_resolved': 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8', 'homepage': 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8', 'favicon': '', 'tags': '', 'country': 'India', 'countrycode': 'IN', 'iso_3166_2': None, 'state': '', 'language': 'hindi', 'languagecodes': 'hi', 'votes': 72, 'lastchangetime': '2023-07-30 23:57:36', 'lastchangetime_iso8601': '2023-07-30T23:57:36Z', 'codec': 'AAC,H.264', 'bitrate': 532, 'hls': 1, 'lastcheckok': 1, 'lastchecktime': '2023-10-01 06:09:48', 'lastchecktime_iso8601': '2023-10-01T06:09:48Z', 'lastcheckoktime': '2023-10-01 06:09:48', 'lastcheckoktime_iso8601': '2023-10-01T06:09:48Z', 'lastlocalchecktime': '2023-09-30 23:17:27', 'lastlocalchecktime_iso8601': '2023-09-30T23:17:27Z', 'clicktimestamp': '2023-10-01 03:59:14', 'clicktimestamp_iso8601': '2023-10-01T03:59:14Z', 'clickcount': 85, 'clicktrend': -3, 'ssl_error': 0, 'geo_lat': None, 'geo_long': None, 'has_extended_info': False}
... | Searching API for: d76b2d85-a1c0-4ec7-a148-61062ab03c07
i | Station found: 9xm
... | {
... | "changeuuid": "91f6238c-e5c7-4a4e-86f7-4439eebdd29c",
... | "stationuuid": "d76b2d85-a1c0-4ec7-a148-61062ab03c07",
... | "serveruuid": "daaee28f-690f-44c9-b3c4-5a968e26c282",
... | "name": "9xm",
... | "url": "https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8",
... | "url_resolved": "https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8",
... | "homepage": "https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8",
... | "favicon": "",
... | "tags": "",
... | "country": "India",
... | "countrycode": "IN",
... | "iso_3166_2": null,
... | "state": "",
... | "language": "hindi",
... | "languagecodes": "hi",
... | "votes": 72,
... | "lastchangetime": "2023-07-30 23:57:36",
... | "lastchangetime_iso8601": "2023-07-30T23:57:36Z",
... | "codec": "AAC,H.264",
... | "bitrate": 532,
... | "hls": 1,
... | "lastcheckok": 1,
... | "lastchecktime": "2023-10-01 06:09:48",
... | "lastchecktime_iso8601": "2023-10-01T06:09:48Z",
... | "lastcheckoktime": "2023-10-01 06:09:48",
... | "lastcheckoktime_iso8601": "2023-10-01T06:09:48Z",
... | "lastlocalchecktime": "2023-09-30 23:17:27",
... | "lastlocalchecktime_iso8601": "2023-09-30T23:17:27Z",
... | "clicktimestamp": "2023-10-01 11:14:57",
... | "clicktimestamp_iso8601": "2023-10-01T11:14:57Z",
... | "clickcount": 84,
... | "clicktrend": -1,
... | "ssl_error": 0,
... | "geo_lat": null,
... | "geo_long": null,
... | "has_extended_info": false
... | }
... | increased click count for: d76b2d85-a1c0-4ec7-a148-61062ab03c07
... | player: url => https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8
... | FFplay: /usr/bin/ffplay
... | player: ffplay => PID 2290 initiated
... | Saving the current station: {'name': '9xm', 'uuid_or_url': 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8'}
... | Dumping station information
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ“ป โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ 9xm โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
... | Codec: aac,h.264
Enter a command to perform an action: r
aac,h.264
i | Press 'q' to stop recording
... | filepath: fallback to default path
i | Recording will be saved as:
i | /home/deep/Music/radioactive/[email protected],h.264
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-VERSION:1')
[hls @ 0x55ddebcd2400] Skip ('## Created with Broadpeak BkS350 Origin Packager (version=1.11.16-26430)')
[hls @ 0x55ddebcd2400] Skip ('# variants')
Last message repeated 1 times
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=247600.m3u8' for reading
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-VERSION:1')
[hls @ 0x55ddebcd2400] Skip ('## Created with Broadpeak BkS350 Origin Packager (version=1.11.16-26430)')
[hls @ 0x55ddebcd2400] Skip ('#USP-X-TIMESTAMP-MAP:MPEGTS=4273979424,LOCAL=2023-10-01T16:29:45.709500Z')
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-PROGRAM-DATE-TIME:2023-10-01T16:29:45.709511Z')
[https @ 0x55ddebfe5800] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=352400.m3u8' for reading
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-VERSION:1')
[hls @ 0x55ddebcd2400] Skip ('## Created with Broadpeak BkS350 Origin Packager (version=1.11.16-26430)')
[hls @ 0x55ddebcd2400] Skip ('#USP-X-TIMESTAMP-MAP:MPEGTS=4273979424,LOCAL=2023-10-01T16:29:45.709500Z')
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-PROGRAM-DATE-TIME:2023-10-01T16:29:45.709511Z')
[https @ 0x55ddebfe5800] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=562400.m3u8' for reading
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-VERSION:1')
[hls @ 0x55ddebcd2400] Skip ('## Created with Broadpeak BkS350 Origin Packager (version=1.11.16-26430)')
[hls @ 0x55ddebcd2400] Skip ('#USP-X-TIMESTAMP-MAP:MPEGTS=4273979424,LOCAL=2023-10-01T16:29:45.709500Z')
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-PROGRAM-DATE-TIME:2023-10-01T16:29:45.709511Z')
[https @ 0x55ddebfe5800] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=877600.m3u8' for reading
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-VERSION:1')
[hls @ 0x55ddebcd2400] Skip ('## Created with Broadpeak BkS350 Origin Packager (version=1.11.16-26430)')
[hls @ 0x55ddebcd2400] Skip ('#USP-X-TIMESTAMP-MAP:MPEGTS=4273979424,LOCAL=2023-10-01T16:29:45.709500Z')
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-PROGRAM-DATE-TIME:2023-10-01T16:29:45.709511Z')
[https @ 0x55ddebfe5800] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000.m3u8' for reading
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-VERSION:1')
[hls @ 0x55ddebcd2400] Skip ('## Created with Broadpeak BkS350 Origin Packager (version=1.11.16-26430)')
[hls @ 0x55ddebcd2400] Skip ('#USP-X-TIMESTAMP-MAP:MPEGTS=4273979784,LOCAL=2023-10-01T16:29:45.713500Z')
[hls @ 0x55ddebcd2400] Skip ('#EXT-X-PROGRAM-DATE-TIME:2023-10-01T16:29:45.713511Z')
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=247600-424044452.ts' for reading
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=247600-424044453.ts' for reading
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=352400-424044452.ts' for reading
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=352400-424044453.ts' for reading
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=562400-424044452.ts' for reading
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=562400-424044453.ts' for reading
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=877600-424044452.ts' for reading
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=877600-424044453.ts' for reading
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-424044452.ts' for reading
[hls @ 0x55ddebcd2400] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-424044453.ts' for reading
[https @ 0x55dded86aac0] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-424044454.ts' for reading
[https @ 0x55ddebfeb8c0] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=247600-424044454.ts' for reading
[https @ 0x55ddebff9900] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=352400-424044454.ts' for reading
[https @ 0x55ddecc3ca80] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=562400-424044454.ts' for reading
[https @ 0x55dded253a00] Opening 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/9XM-audio_208482_und=208000-video=877600-424044454.ts' for reading
Input #0, hls, from 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8':
Duration: N/A, start: 47508.674933, bitrate: N/A
Program 0
Metadata:
variant_bitrate : 532000
Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Metadata:
variant_bitrate : 532000
Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/bt470bg/bt709), 256x144 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Metadata:
variant_bitrate : 532000
Program 1
Metadata:
variant_bitrate : 654000
Stream #0:2: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Metadata:
variant_bitrate : 654000
Stream #0:3: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/bt470bg/bt709), 426x240 [SAR 1:1 DAR 71:40], 25 fps, 25 tbr, 90k tbn, 50 tbc
Metadata:
variant_bitrate : 654000
Program 2
Metadata:
variant_bitrate : 899000
Stream #0:4: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Metadata:
variant_bitrate : 899000
Stream #0:5: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/bt470bg/bt709), 640x360 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Metadata:
variant_bitrate : 899000
Program 3
Metadata:
variant_bitrate : 1266000
Stream #0:6: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Metadata:
variant_bitrate : 1266000
Stream #0:7: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m/bt470bg/bt709), 854x480 [SAR 1:1 DAR 427:240], 25 fps, 25 tbr, 90k tbn, 50 tbc
Metadata:
variant_bitrate : 1266000
Program 4
Metadata:
variant_bitrate : 243000
Stream #0:8: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
Metadata:
variant_bitrate : 243000
Output #0, h264, to '/home/deep/Music/radioactive/[email protected],h.264':
Output file #0 does not contain any stream
... | Error: Command '['ffmpeg', '-i', 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8', '-c:a', 'copy', '-vn', '-stats', '/home/deep/Music/radioactive/[email protected],h.264', '-loglevel', 'info']' returned non-zero exit status 1.
[!!!] | Error while recording audio: Command '['ffmpeg', '-i', 'https://d2q8p4pe5spbak.cloudfront.net/bpk-tv/9XM/9XM.isml/index.m3u8', '-c:a', 'copy', '-vn', '-stats', '/home/deep/Music/radioactive/[email protected],h.264', '-loglevel', 'info']' returned non-zero exit status 1.
Enter a command to perform an action:

Support for other media players (e.g. VLC)

I'd like this program to one day add support for other media players such as VLC, in that it passes a radio stream to that app. For example, it might call "vlc XXX", where XXX is the URL of the requested stream.

connection errors when supplying -U station-UUID

Describe the bug

i have successfully connected to stations via UUID, but i've encountered reproducible connection errors via UUID for two stations:

.$ radio -U a256200d-2ec4-11e9-8f31-52543be04c81
...

  i     | Station found: KALX 90.7FM Berkeley

โ”‚ KALX 90.7FM Berkeley

Enter a command to perform an action: [!!!] | Could not connect to the station
[!!!] | Invalid data found when processing input
i | Exiting now

To Reproduce
Steps to reproduce the behavior:

in the following shell session, i have snipped the info box and some superfluous grafix

----------- / shell session

.$ radio --version

  i     | RADIO-ACTIVE : version 2.6.0

.$ ### set terminal geometry wide to eliminate chopped UUID ( i don't like to resize windows ;-)

.$ COLUMNS=600 radio -S kalx

[!] | 2 stations found by the name, select one and run with UUID instead

โ”ƒ Station โ”ƒ UUID โ”ƒ Country โ”ƒ Tags โ”ƒ

โ”‚ kalx โ”‚ fd08c2d1-bca3-49b6-938e-24223869e278 โ”‚ US โ”‚ university radio โ”‚
โ”‚ KALX 90.7FM Berkeley โ”‚ a256200d-2ec4-11e9-8f31-52543be04c81 โ”‚ US โ”‚ aac,berkeley,uc berkeley,university radio โ”‚

i | If the table does not fit into your screen,
i | try to maximize the window , decrease the font by a bit and retry

.$ radio -U fd08c2d1-bca3-49b6-938e-24223869e278

i | Station found: kalx
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ kalx

Enter a command to perform an action: [!!!] | Could not connect to the station
[!!!] | Invalid data found when processing input
i | Exiting now

.$ radio -U a256200d-2ec4-11e9-8f31-52543be04c81

i | Station found: KALX 90.7FM Berkeley
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ KALX 90.7FM Berkeley

Enter a command to perform an action: [!!!] | Could not connect to the station
[!!!] | Invalid data found when processing input
i | Exiting now

Expected behavior

connect and play the station

Desktop (please complete the following information):

OS: macOS Ventura 13.6 22G120 x86_64
Host: MacBook Air (Retina, 13-inch, 2020)
Kernel: 22.6.0
Packages: 837 (brew), 279 (brew-cask), 7 (port)
Shell: bash 5.2.15
Display (Color LCD): 2880x1800 @ 61Hz (as 1440x900)
DE: Aqua
WM: Quartz Compositor
Terminal: Apple Terminal 447
Terminal Font: LigaSFMonoNerdFont-Regular (15pt)
CPU: Intel(R) Core(TM) i3-1000NG4 (4) @ 1.1 GHz
GPU: Intel Iris Plus Graphics (1.50 GiB) [Integrated]
Memory: 4.36 GiB / 8.00 GiB (54%)
Disk (/): 143.48 GiB / 233.47 GiB (61%) - apfs [Read-only]
Locale: en_US.UTF-8

Additional context
Add any other context about the problem here.

--

Please let me know if there are any questions or issues.

regards,

auntchilada

Refactor code to use the same internal api for cli and interactive interface

Is your feature request related to a problem? Please describe.
Currently there are function, which are available in cli and some are available in interactive interface. Adding new functionality is quite distributed.

Describe the solution you'd like
Having an internal API, which encapsulates the player, the recording, the favs, and the stations db, would allow cleaning up the main.py regarding the parsed arguments and allows for implementing a better interactive interface.
Further more extract the ui printing.

In the best case the utilities.py is almost empty afterwards.

Additional context
Add any other context or screenshots about the feature request here.

Update help message

  1. show the dynamic default directory in help message
  2. file type auto/mp3 message

audio codec issue?

Documents/github/radio-active$ radio -S bbc --limit 12 --loglevel debug
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ RADIOACTIVE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ โ”‚
โ”‚ ๐Ÿ“ป Play any radios around the globe right from this Terminal โšก! โ”‚
โ”‚ ๐Ÿ˜„ Author: Dipankar Pal โ”‚
โ”‚ โ“ Type '--help' for more details on available commands โ”‚
โ”‚ ๐Ÿ› Visit: https://github.com/deep5050/radio-active to submit issues โ”‚
โ”‚ โญ Show some love by starring the project on GitHub โค โ”‚
โ”‚ ๐Ÿ’ต You can donate me at https://deep5050.github.io/payme/ โ”‚
โ”‚ โŒ Press Ctrl+C to quit โ”‚
โ”‚ โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
... | Update not available
... | Searching API for: bbc
[!] | showing 12 stations with the name!
โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ ID โ”ƒ Station โ”ƒ Country โ”ƒ Tags โ”ƒ
โ”กโ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ 1 โ”‚ 107.3 BBC Radio Uganda โ”‚ UG โ”‚ news โ”‚
โ”‚ 2 โ”‚ 107.3 BBC Radio Uganda โ”‚ UG โ”‚ music โ”‚
โ”‚ 3 โ”‚ BBC 5 LIVE SPORTS โ”‚ GB โ”‚ sports โ”‚
โ”‚ 4 โ”‚ BBC 5Live โ”‚ UG โ”‚ sports โ”‚
โ”‚ 5 โ”‚ BBC AFRICA UG โ”‚ UG โ”‚ news โ”‚
โ”‚ 6 โ”‚ BBC AFRICA UG โ”‚ UG โ”‚ news talk โ”‚
โ”‚ 7 โ”‚ BBC Afrique Radio โ”‚ GB โ”‚ africa,afrique,news,talk โ”‚
โ”‚ 8 โ”‚ BBC Arabic Radio โ”‚ GB โ”‚ arabic,news,talk โ”‚
โ”‚ 9 โ”‚ BBC Asian Network โ”‚ GB โ”‚ asian,entertainment,music,news โ”‚
โ”‚ 10 โ”‚ BBC CWR โ”‚ GB โ”‚ โ”‚
โ”‚ 11 โ”‚ BBC Essex โ”‚ GB โ”‚ โ”‚
โ”‚ 12 โ”‚ BBC for Australasia โ”‚ GB โ”‚ news โ”‚
โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
i | If the table does not fit into your screen,
i | try to maximize the window , decrease the font by a bit and retry
... | Asking for user input
Type the result ID to play: 4
... | Selected: {'changeuuid': '5028e921-5ef2-473d-8186-3a4e325d6c99', 'stationuuid': '1afb2e92-1cb5-4813-bde3-319e4c830eb3', 'serveruuid': None, 'name': 'BBC 5Live', 'url': 'http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_vlow/ak/bbc_radio_five_live.m3u8', 'url_resolved': 'http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_vlow/ak/bbc_radio_five_live.m3u8', 'homepage': 'http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_vlow/ak/bbc_radio_five_live.m3u8', 'favicon': '', 'tags': 'sports', 'country': 'Uganda', 'countrycode': 'UG', 'iso_3166_2': None, 'state': '', 'language': 'english', 'languagecodes': 'en', 'votes': 0, 'lastchangetime': '2023-09-29 14:52:42', 'lastchangetime_iso8601': '2023-09-29T14:52:42Z', 'codec': 'AAC+', 'bitrate': 50, 'hls': 1, 'lastcheckok': 1, 'lastchecktime': '2023-09-29 14:52:43', 'lastchecktime_iso8601': '2023-09-29T14:52:43Z', 'lastcheckoktime': '2023-09-29 14:52:43', 'lastcheckoktime_iso8601': '2023-09-29T14:52:43Z', 'lastlocalchecktime': '2023-09-29 14:52:43', 'lastlocalchecktime_iso8601': '2023-09-29T14:52:43Z', 'clicktimestamp': '2023-09-29 15:32:50', 'clicktimestamp_iso8601': '2023-09-29T15:32:50Z', 'clickcount': 4, 'clicktrend': 4, 'ssl_error': 0, 'geo_lat': None, 'geo_long': None, 'has_extended_info': False}
... | Searching API for: 1afb2e92-1cb5-4813-bde3-319e4c830eb3
i | Station found: BBC 5Live
... | {
... | "changeuuid": "5028e921-5ef2-473d-8186-3a4e325d6c99",
... | "stationuuid": "1afb2e92-1cb5-4813-bde3-319e4c830eb3",
... | "serveruuid": null,
... | "name": "BBC 5Live",
... | "url": "http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_vlow/ak/bbc_radio_five_live.m3u8",
... | "url_resolved": "http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_vlow/ak/bbc_radio_five_live.m3u8",
... | "homepage": "http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_vlow/ak/bbc_radio_five_live.m3u8",
... | "favicon": "",
... | "tags": "sports",
... | "country": "Uganda",
... | "countrycode": "UG",
... | "iso_3166_2": null,
... | "state": "",
... | "language": "english",
... | "languagecodes": "en",
... | "votes": 0,
... | "lastchangetime": "2023-09-29 14:52:42",
... | "lastchangetime_iso8601": "2023-09-29T14:52:42Z",
... | "codec": "AAC+",
... | "bitrate": 50,
... | "hls": 1,
... | "lastcheckok": 1,
... | "lastchecktime": "2023-09-29 14:52:43",
... | "lastchecktime_iso8601": "2023-09-29T14:52:43Z",
... | "lastcheckoktime": "2023-09-29 14:52:43",
... | "lastcheckoktime_iso8601": "2023-09-29T14:52:43Z",
... | "lastlocalchecktime": "2023-09-29 14:52:43",
... | "lastlocalchecktime_iso8601": "2023-09-29T14:52:43Z",
... | "clicktimestamp": "2023-09-29 15:32:50",
... | "clicktimestamp_iso8601": "2023-09-29T15:32:50Z",
... | "clickcount": 4,
... | "clicktrend": 4,
... | "ssl_error": 0,
... | "geo_lat": null,
... | "geo_long": null,
... | "has_extended_info": false
... | }
... | increased click count for: 1afb2e92-1cb5-4813-bde3-319e4c830eb3
... | player: url => http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_vlow/ak/bbc_radio_five_live.m3u8
... | FFplay: /usr/bin/ffplay
... | player: ffplay => PID 20789 initiated
... | Saving the current station: {'name': 'BBC 5Live', 'uuid_or_url': 'http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_vlow/ak/bbc_radio_five_live.m3u8'}
... | Dumping station information
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ“ป โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ BBC 5Live โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
Enter a command to perform an action: r
i | Press 'q' to stop recording
... | filepath: fallback to default path
... | Filetype: unknown type ''. falling back to mp3
i | Recording will be saved as:
i | /home/deep/Music/radioactive/[email protected]
[mp3 @ 0x55d6af62fd40] Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 --

 ...    | Error: Command '['ffmpeg', '-i', 'http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_vlow/ak/bbc_radio_five_live.m3u8', '-c:a', 'copy', '-vn', '-loglevel', 'error', '-hide_banner', '-stats', '/home/deep/Music/radioactive/[email protected]']' returned non-zero exit status 1.
[!!!]   | Error while recording audio: Command '['ffmpeg', '-i', 'http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_vlow/ak/bbc_radio_five_live.m3u8', '-c:a', 'copy', '-vn', '-loglevel', 'error', '-hide_banner', '-stats', '/home/deep/Music/radioactive/[email protected]']' returned non-zero exit status 1.

module 'signal' has no attribute 'pause'

Describe the bug
The first command I issued radioactive --station pehla_nasha causes the following output.

G:\Desktop>radioactive --station pehla_nasha
     [!]    | Alias file does not exist
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ RADIOACTIVE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                                                                                   โ”‚
โ”‚         ๐Ÿ“ป Play any radios around the globe right from this Terminal โšก!          โ”‚
โ”‚         ๐Ÿ˜„ Author: Dipankar Pal                                                   โ”‚
โ”‚         โ“ Type '--help' for more details on avaliable commands.                  โ”‚
โ”‚         ๐Ÿ› Visit https://github.com/deep5050/radio-active to submit issues        โ”‚
โ”‚         โญ Show some love by starring the project on GitHub โค                     โ”‚
โ”‚         โŒ Press Ctrl+C to quit                                                   โ”‚
โ”‚                                                                                   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
      i     | Station found: Radio Mirchi - Pehla Nasha
      i     | Radio started successfully
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ“ป โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                           Radio Mirchi - Pehla Nasha/n                            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Traceback (most recent call last):
  File "c:\users\arpit\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\arpit\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\arpit\AppData\Local\Programs\Python\Python39\Scripts\radioactive.exe\__main__.py", line 7, in <module>
  File "c:\users\arpit\appdata\local\programs\python\python39\lib\site-packages\radioactive\__main__.py", line 311, in main
    signal.pause()
AttributeError: module 'signal' has no attribute 'pause'

Desktop (please complete the following information):

  • Windows 10
  • Command Prompt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.