Transistor - Simple Radio App for Android

Overview

README

Transistor - Simple Radio App

Version 4.0.x ("Andy Warhol")

Transistor is an app with a minimalistic approach for listening to radio programs over the internet, which may not be to everyone's liking. It has no radio station discovery feature. Transistor only offers a very simple search option and it imports audio streaming links when you tap them in a web browser.

Transistor is free software. It is published under the MIT open source license. Want to help? Please check out the notes in CONTRIBUTE.md first.

Install Transistor

You can install Transistor via F-Froid and Google Play - or you can go and grab the latest APK on GitHub.

Get it on F-Droid

Get it on Google Play

Frequent Questions

How can I add a radio station

There are three ways to add a radio station to Transistor: Use Search, add playlist file address (M3U, PLS), enter a raw stream address. The last way will not support the update feature.

How does the update feature work?

The update feature will try to fetch the current stream address of a station as well as the updated name and station image. The feature will not work for stations added via a raw stream address, or for stations imported from Transistor v3.

Where do the radio station search results come from?

Transistor searches the radio-browser.info online database. You can help out the radio-browser.info community by adding the missing station to their database.

Which audio formats are supported?

Transistor can play back streams encoded in MP3, AAC and Ogg/Opus. It also has experimental support for HLS streams.

Screenshots (v4.0)

Comments
  • Station cannot be edited

    Station cannot be edited

    Describe the bug As discussed in https://github.com/y20k/transistor/issues/389#issuecomment-1147122142, I'm unable to edit a station as Transister rejects the URL. More context quoted:

    Thanks for clarifying, something weird is definitely going on. For example, I added BBC Radio 1Xtra which I adjusted to be higher quality.

    @@ -1 +1 @@
    -http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_low/ak/bbc_1xtra.m3u8
    +https://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/uk/sbr_high/ak/bbc_1xtra.m3u8
    

    The URL definitely works when I play it in other players, and it's the same otherwise, just higher quality, and the save changes buttons stays disabled.

    ...

    I "investigated" this issue. The check function categorizes .m3u8 as a playlist and rejects it. The problem is that .m3u8 CAN be a playlist. I need to look deeper into this.

    bug 
    opened by hoshsadiq 0
  • Additional requests send to server on start and/or stop of streaming

    Additional requests send to server on start and/or stop of streaming

    I use Transistor mainly to listen to streams provided by my own (local) server, running on a raspberry pi. When I was looking at the server's logs, I noticed a strange behavior. On start and/or stop of streaming, Transistor sends additional (unnecessary) requests to the server (and immediately closes the connections). Here are three examples from the server log:

    1. Additional requests on stop:

    <26.06.2022 12:37:25.547><INFO><pool-1-thread-1346> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94

    <26.06.2022 12:41:33.141><INFO><pool-1-thread-1347> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94 <26.06.2022 12:41:33.143><INFO><pool-1-thread-1348> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94 <26.06.2022 12:41:33.152><INFO><pool-1-thread-1349> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94 <26.06.2022 12:41:33.172><INFO><pool-1-thread-1347> Stream stopped - (broken pipe) (Write failed) <26.06.2022 12:41:33.180><INFO><pool-1-thread-1348> Stream stopped - (broken pipe) (Write failed) <26.06.2022 12:41:33.182><INFO><pool-1-thread-1349> Stream stopped - (broken pipe) (Write failed) <26.06.2022 12:41:34.778><INFO><pool-1-thread-1346> Stream stopped - Connection reset

    You can see the initial request at 12:37:25.547 with thread number 1346, that is stopped in the last line (same thread). And three additional request just before the "real" stream is stopped.

    1. Additional requests on start:

    <27.06.2022 13:25:47.188><INFO><pool-1-thread-1366> GET /stream/Audiobooks/Latest HTTP/1.1 - 192.168.178.94 <27.06.2022 13:25:48.116><INFO><pool-1-thread-1368> GET /stream/Audiobooks/Latest HTTP/1.1 - 192.168.178.94 <27.06.2022 13:25:48.120><INFO><pool-1-thread-1367> GET /stream/Audiobooks/Latest HTTP/1.1 - 192.168.178.94 <27.06.2022 13:25:48.131><INFO><pool-1-thread-1369> GET /stream/Audiobooks/Latest HTTP/1.1 - 192.168.178.94 <27.06.2022 13:25:48.140><INFO><pool-1-thread-1370> GET /stream/Audiobooks/Latest HTTP/1.1 - 192.168.178.94 <27.06.2022 13:25:48.147><INFO><pool-1-thread-1371> GET /stream/Audiobooks/Latest HTTP/1.1 - 192.168.178.94 <27.06.2022 13:25:48.168><INFO><pool-1-thread-1373> GET /stream/Audiobooks/Latest HTTP/1.1 - 192.168.178.94 <27.06.2022 13:25:48.171><INFO><pool-1-thread-1372> GET /stream/Audiobooks/Latest HTTP/1.1 - 192.168.178.94 <27.06.2022 13:25:48.180><INFO><pool-1-thread-1374> GET /stream/Audiobooks/Latest HTTP/1.1 - 192.168.178.94 <27.06.2022 13:25:48.507><INFO><pool-1-thread-1368> Stream stopped - (broken pipe) (Write failed) <27.06.2022 13:25:48.509><INFO><pool-1-thread-1367> Stream stopped - (broken pipe) (Write failed) <27.06.2022 13:25:48.520><INFO><pool-1-thread-1371> Stream stopped - (broken pipe) (Write failed) <27.06.2022 13:25:48.522><INFO><pool-1-thread-1369> Stream stopped - (broken pipe) (Write failed) <27.06.2022 13:25:48.531><INFO><pool-1-thread-1373> Stream stopped - (broken pipe) (Write failed) <27.06.2022 13:25:48.532><INFO><pool-1-thread-1372> Stream stopped - (broken pipe) (Write failed) <27.06.2022 13:25:48.536><INFO><pool-1-thread-1374> Stream stopped - (broken pipe) (Write failed) <27.06.2022 13:25:48.538><INFO><pool-1-thread-1370> Stream stopped - (broken pipe) (Write failed)

    <27.06.2022 13:32:00.618><INFO><pool-1-thread-1366> Stream stopped - Connection reset

    About 1 second after the "real" stream has been started (thread 1366), the same request is send another 8 times to the server (within a few milliseconds) and all additional connects are immediately closed.

    1. Additional requests on start and stop:

    <27.06.2022 14:39:34.068><INFO><pool-1-thread-1375> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94 <27.06.2022 14:39:34.998><INFO><pool-1-thread-1377> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94 <27.06.2022 14:39:34.999><INFO><pool-1-thread-1376> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94 <27.06.2022 14:39:35.001><INFO><pool-1-thread-1378> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94 <27.06.2022 14:39:35.053><INFO><pool-1-thread-1376> Stream stopped - (broken pipe) (Write failed) <27.06.2022 14:39:35.055><INFO><pool-1-thread-1378> Stream stopped - (broken pipe) (Write failed) <27.06.2022 14:39:35.086><INFO><pool-1-thread-1377> Stream stopped - (broken pipe) (Write failed)

    <27.06.2022 14:41:37.376><INFO><pool-1-thread-1379> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94 <27.06.2022 14:41:37.379><INFO><pool-1-thread-1381> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94 <27.06.2022 14:41:37.380><INFO><pool-1-thread-1380> GET /stream/Musik/Pop HTTP/1.1 - 192.168.178.94 <27.06.2022 14:41:37.471><INFO><pool-1-thread-1379> Stream stopped - (broken pipe) (Write failed) <27.06.2022 14:41:37.473><INFO><pool-1-thread-1381> Stream stopped - (broken pipe) (Write failed) <27.06.2022 14:41:37.476><INFO><pool-1-thread-1380> Stream stopped - (broken pipe) (Write failed) <27.06.2022 14:41:39.096><INFO><pool-1-thread-1375> Stream stopped - Connection reset

    bug 
    opened by JanHSchulz 2
  • WSCR Sandwich Community Radio

    WSCR Sandwich Community Radio

    Name of Radio Station WSCR Sandwich Community Radio

    Problem Unable to add station. Translation of French error message is "station is invalid." French error is "La station n'est pas valide."

    Search Term Tried "WSCR" and "Sandwich" and "Sandwich Community Radio."

    Direct Link Input If you tried to add the station by tapping on a link or by copying over a stream address: https://player.streamguys.com/wscr/sgplayer/player.php

    Stream Characteristics Only if you already know: What kind of radio stream are you trying to add? MP3, OGG, HLS, PLS, M3U? What bitrate? Don't know.

    Content Type / Status Code Only if you find the time to look it up: Content Type and Status Code of a feed can be found in the network tab of the developer tools in your web browser. Don't know.

    Device:

    • Device: OnePlus 5
    • OS: Lineage OS + microG 18.1
    • Version 4.1.1
    station issue 
    opened by MiracoleWorker 0
  • Screensaver with media info

    Screensaver with media info

    Hi,

    It would be nice if Transistor would come with an Android screensaver that shows media info like the currently playing song.

    Android's built-in Always-On-Display feature unfortunately can not be set to only enable when charging or docked. It is always enabled, even when not charging.

    Screensavers on the other hand can be set to only enable when the device is charging or docked.

    Regards

    enhancement 
    opened by kq01526 0
  • Wiki entry for tasker/intent integration

    Wiki entry for tasker/intent integration

    Hello,

    I know this issue with auto-starting transistor has already been discussed and closed as wontfix. Nonetheless, I would find it very helpful, if the wiki here on GitHub would contain a working intent based solution to start transistor from various automating software programs.

    I tried my very best, but could not get the intent based methods from other issues to work in Tasker. If someone, not necessarily the creator of this app, has had luck making this work, please leave a short message here for other users.

    The following settings do start and bring transistor to the foreground, but does not start to playing: ACTION: org.y20k.transistor.action.SHOW_PLAYER EXTRA: PLAYBACK_STATE:true EXTRA: LAST_STATION:true PACKAGE: org.y20k.transistor CLASS: org.y20k.transistor.MainActivity TARGET: Activity

    enhancement 
    opened by AndiLeni 1
Releases(v4.1.1)
A full fledge radio player plugin for android and ios

Flutter radio plugin handles a single streaming media preciously. This plugin wa

null 0 Dec 25, 2021
iOS(iPhone & iPad) and Android Radio/Podcast Streaming Apps built in Kotlin Multiplatform Mobile (KMM) with SwiftUI & Jetpack Compose

iOS(iPhone & iPad) and Android Radio/Podcast Streaming Apps built in Kotlin Multiplatform Mobile (KMM) with SwiftUI & Jetpack Compose

MwaiBanda 1 May 31, 2022
Radio Player - A Flutter plugin to play streaming audio content with background support and lock screen controls.

A Flutter plugin to play streaming audio content with background support and lock screen controls. Installation To use this package, add

Ayotunde abdulsalam 1 Mar 14, 2022
A simple app showing how to make a YouTube Shorts/TikTok style video pager

It's pretty straightforward to get started using ExoPlayer by following the library's Hello world! documentation. Once you throw Android's lifecycles

Nick 83 Jan 4, 2023
Simple and lightweight, yet polished and powerful Android video player based on ExoPlayer

Just (Video) Player Android video player based on ExoPlayer It uses ExoPlayer's extension-ffmpeg with all its audio formats enabled (it can handle eve

Marcel Dopita 677 Dec 28, 2022
Auxio - A simple, rational music player for android.

Auxio is a local music player with a fast, reliable UI/UX without the many useless features present in other music players. Built off of Exoplayer, Auxio has a much better listening experience compared to other apps that use the native MediaPlayer API. In short, It plays music.

OxygenCobalt 800 Jan 2, 2023
A simple music player for Android

RSShool2021-Android-task6-Music-App Цель - реализовать простой музыкальный плеер на Android ?? Требования: Данные о треках считываются с JSON-файла. П

null 0 Dec 19, 2021
A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube is WebView without the need to connect api data services. Request caching is available now

Android Oembed Video A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube and others in the WebView without th

Alexey Mostovoy 32 Oct 8, 2022
Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface.

Fermata Media Player About Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface. It is focused on

Andrey 227 Jan 6, 2023
Wynncraft API Wrapper - Simple wrapper to get Wynncraft Stats of a player or a guild and more in Java

WynncraftAPIWrapper Simple wrapper to get Wynncraft Stats of a player or a guild

byBackfish 3 Sep 27, 2022
An app that can initiate call functionality in VoicePing app via broadcast

Guard App An app that can initiate call functionality in VoicePing app via broad

null 1 Jan 13, 2022
FFmpeg compiled for Android. Execute FFmpeg commands with ease in your Android app.

FFMPEG video operations FFmpeg compiled for Android. Execute FFmpeg commands with ease in your Android app. Getting Started This project is provide in

Simform Solutions 277 Jan 2, 2023
Android podcast app made with Jetpack Compose and ExoPlayer.

Podcast App Android podcast app made with Jetpack Compose and ExoPlayer. Podcast information provided by Listen Notes API. Features Jetpack Compose UI

Fabian 302 Jan 2, 2023
Fire TV Sample App Android - Touch and D-Pad

Fire TV Sample App Android - Touch and D-Pad This sample Android project demonstrates how to build the main UI of a Fire TV application in order to su

Amazon 10 Nov 11, 2022
Convert your YouTube channel into a native Android app using YouTube Data API v3.

Convert your YouTube channel into an app. Screenshots • Description • Features • Configuration • Documentation Screenshots Description Channelify is a

Aculix Technologies LLP 121 Dec 26, 2022
Noice is an android app that allows you to create your own set of background sounds by mixing clips from environmental sources.

A native Android app to relax, improve focus and boost productivity with minimal background noise.

Ashutosh Gangwar 666 Jan 3, 2023
An offline music player android app, with modern UI and powerful features

Pulse Music An offline music player android app, with modern UI and powerful features If you liked this repo, fork it and leave a STAR. Your support m

Sharath 7 Apr 11, 2022
SocyMusic is an open-source Android music player written in Java with the aim of creating an easy-to-use app for exchanging and listening to top-quality music. Help us create it!

SocyMusic SocyMusic is an open-source Android music player written entirely in Java. It's objectives are to provide top-quality music to everyone for

Benji 23 Dec 26, 2022
Dicio assistant app for Android

Dicio assistant Dicio is a free and open source voice assistant running on Android. It supports many different skills and input/output methods, and it

Stypox 376 Dec 31, 2022