In this day and age, it has never been easier for people to create their own radio station. With a few clicks of the mouse or touches on an app screen, anyone can start playing music in their backyard with a friend. But what if you want more? What if you want your personal voice to be heard worldwide?
The “internet radio github” is an open source radio station app with robust and professional features. The app allows users to stream internet radio stations from the web.
Swift Radio is a powerful and professional open source radio station application. This is a fully functional radio application written completely in Swift. The Xcode 11.4 / Swift 5 branch is now master.
This code has been approved into the app store by over 80 different applications!
Video
Take a look at this GETTING STARTED VIDEO. It’s brief and sweet in order to provide you with a fast summary. Take a brief look at it.
Features
- Stations may be updated remotely or locally. (You may update stations at any moment without having to resubmit them to the app store!)
- On the lock screen, the artist, track, and album art are shown.
- For backwards compatibility, custom views have been optimized for SE, 6 and 6+.
- 10.2 is the latest version of Xcode. and Swift 5 are required for compilation.
- The Swift Codable protocol is used to parse JSON.
- Audio performance in the background
- To search stations, there is a search bar that may be switched on or off.
- Supports pictures from a local or remote station.
- On the “About” page, you may write an email and go to a website.
- Refresh stations may be reached by pulling on the handles.
- FRadioPlayer: Uses the AVPlayer wrapper library AVPlayer:
- Download Album Art from iTunes API automatically
- Stream metadata is parsed (Track & Artist information)
- Spring library is used:
- Animate user interface elements
- Using the ImageLoader class, you may download and cache images.
Important Reminders
- 4.10.19: @fethica moved master/carplay/dev branches to Xcode 11.4/Swift 5.
- 8.20.19: @CamMcLeod added a watermarked picture to the share activity.
- @fethica converted the master branch to Xcode 10.2/Swift 5 on 5.18.19.
- @geraldnolan added AirPlay support on 9.4.19.
- 2.10.19: @fethica adds CarPlay support. — This is an announcement. This is the carplay branch.
- 1.30.19: @misteral adds iPad support.
- @fethica converted the master branch to Xcode 10/Swift 4.2 in version 1.9.19.
- Swift Radio App receives a significant upgrade with Version 2 by @fethica on 1.21.18. — Note on the Publication.
- 10.6.17 @joemcmahon has converted the AVPlayer branch to Xcode 9/Swift 4. Here’s a branch: Branch of AVPlayer
- 10.1.17 Update: @fethica converted the master branch to Xcode 9/Swift 4.
- 12.26.16 Update: @giacmarangoni has upgraded the AVPlayer branch to Swift 3. Here’s a branch: Branch Xcode8/AVPlayer
- @fethica converted the master branch to Xcode 8/Swift 3 on 9.20.16. He deserves a big thank you!
- 7.26.16 Thanks to @kusikusa, the AVPlayer development branch has been introduced. This branch also contains the Spotify API, which may be used to download artwork: Branch AVPlayer/Spotify
- Thanks to @fethica, Bluetooth streaming has been introduced to version 6.5.16.
- 3.27.16 Update: Thanks to @GraemeHarrison, the Google handoff has been included.
- 2.24.16 Update: Thanks to @SuperChloe, a share icon has been added.
- 12.30.15 Update: Thanks to @fethica, UISearchBar has been added. In the “SwiftRadio-Settings” file, turn it on or off.
- 12.14.15 Update: LastFM’s API signups have reopened. At last.fm/api, you can get one.
- 10.21.15 Update: Added the ability to get album art via the iTunes API. (For further information, see the FAQ section below.) The art on iTunes is 100px by 100px. It is, however, smaller than the artwork from LastFM. If you use this API instead, you’ll need to change your app’s UI.
- In devices, the volume slider works fine, but not in the simulator. This is a problem with the Xcode simulator.
- The radio stations in the demo are just there to show how they work.
- You may wish to replace the MPMoviePlayerController with a more powerful streaming library/SDK for a production product (with stream stitching, interruption handling, etc).
- For animation, Meng To’s Spring framework is used, making it simple to experiment with various UI/UX animations.
- To get you up and running fast, SwiftyJSON and Spring are provided in the repo. CocoaPods are planned to be used in the future.
Credits
Fethi El Hassasna, Twitter: @fethica, and Matthew Fecher, Twitter: @goFecher, co-organized the event. Basel Farag of Denver Swift Heads provided the code review.
Contributions from others may be found on Github. Thank you very much to everyone! We couldn’t have done it without your help!
Requirements
- Xcode 10.2
- Knowing how to develop in Swift using the iOS SDK is a plus.
Please be aware that I am unable to provide any free assistance or changes. Thanks!
Developing an App
Send me an email if you make an app using the code or an interesting project inspired by it. I’m always interested in hearing about your initiatives!
This is just a starting point. You may use it as a blank canvas to add additional features to.
Facebook login, Profiles, Saving Favorite Tracks, Playlists, Genres, Spotify integration, Enhanced Streaming, Tempo Analyzing, and other features have been incorporated into this Radio code for clients. There’s virtually no limit to what you can do using this code as a starting point. This repo is kept as light as possible. You’ll be able to quickly modify it this way.
Setup
The “SwiftRadio-Settings.swift” file provides some initial project settings. To get up and going fast, watch our Getting Started Video.
Integration
To help you get started, we’ve included a complete Xcode project.
Stations
A sample “stations.json” file is included. You can save the JSON file to a server and change the stations in the app without having to resubmit it to the store. In the app, the following fields are supported:
-
name: The name of the station as you’d want it to appear (for example, “Sub Pop Radio”).
-
streamURL: The real stream’s url.
-
imageURL: The image URL for the station. The station pictures in the demo are 350×206 pixels. The image may be stored locally or on a remote server. To use a local picture, remove the “http” (either “station-subpop” or “http://myurl.com/images/station-subpop.jpg”) from the URL.
-
desc: A brief two- or three-word description of the station as you wish it to appear (for example, “Outlaw Country”).
-
longDesc: A detailed description of the station for the “info screen.” This is an optional step.
Contributions
Contributions are much appreciated. Please fork the dev branch and create a new branch (e.g. features/3dtouch) from it. Please don’t make any changes to master.
FAQ
Q: Do I have to pay you anything if I use this code to create an app? A: No way. You may do anything you want with this since it is entirely open source. If you utilize the code, it’s customary to acknowledge the project. Go ahead and construct something. Enjoy.
Q: How can I enable IPv6 functionality in my app? A: As of June 1, 2016, you CANNOT utilize numerical IP addresses in an app to be approved by Apple for the app store. For example, instead of “http://44.120.33.55/,” your station stream URLs should be “http://mystream.com/rock.”
Q: Can you provide me an example of how to use this with the Spotify API? A: Yes, there is a branch here (deprecated) that utilizes it.
Q: Other than LastFM, Spotify, and iTunes, is there any API for getting album/track information? Rovi offers an excellent music API. The Echo Nest offers a plethora of APIs to experiment with.
Q: In the Storyboard, I changed the album art size, but now the sizing is off? A: The albumArt restriction has been changed in the code. In the NowPlayingVC, look for the “optimizeForDeviceSize()” function.
Q: Why isn’t my radio station broadcasting? A: Paste the URL of your stream into a browser to check whether it will play. It’s possible that the stream is unavailable or has a poor connection.
Q: Could you assist me with adding a feature? Can you assist me in deciphering the code? Are you able to assist me with an issue I’m having? A: While I have a full-time job and other projects to attend to, I strongly advise you to seek out a developer or mentor in your region to assist you. Most developers should be able to assist you quite quickly since the code is well-documented. While I am sometimes available for paid freelance work (see the readme for more information), I am unable to offer free assistance or changes. Thank you for your patience!
Q: Why aren’t the song titles showing up for my station? A: Double-check that your stream provider is delivering Metadata correctly. If a station provides data in a certain format, you may change how the app parses the information by implementing the FRadioPlayerDelegate function in the RadioPlayer class: radioPlayer(_ player: FRadioPlayer, metadataDidChange rawValue: String?).
Get a Code for a Single Station
Co-organizer Fethi has developed a well-architected single station version of this code if you’d want to help this effort. It’s an incredible deal: For freelancing labor, the engineers behind this project usually charge up to $200 per hour, however this fully functional code is just $50. There are no hidden costs.
You may send money through PayPal to [email protected], or you can use this link: Please pay me through PayPal. After 24 hours, we’ll give you the code along with setup instructions. The money will all be used to assist the project.
Do you need anything more advanced? We’ve recently worked on iOS applications for well-known companies. Send Matthew or Fethi a pleasant email.
Example of the RadioKit SDK
alt text
- This Swift code may be used as a front-end for a more powerful streaming backend.
- Brian Stormont, the inventor of RadioKit, has developed a branch that already includes the professional RadioKit SDK. His branch also has the ability to rewind and fast forward stream playback. This is a fantastic learning tool for people who want to understand how a streaming library works with Swift Radio Pro. Here is a link to the branch.
Consulting & Custom Work
We’ve recently worked on iOS applications for both independent and high-profile clients (brand names and apps we can’t mention here, but you’d know!) We’ve also created sophisticated versions of this radio code for several fantastic independent clients.
Please contact me to see what I can do for you.
GitHub
Visit Github for further information.
The “shoutcast control panel open source” is an app that allows users to broadcast radio stations. It has robust and professional features.
Frequently Asked Questions
What is the best app for radio stations?
A: I recommend the app called TuneIn Radio.
What software do professional radio stations use?
A: Many professional radio stations use a software called Adobe Audition. This is the standard audio editing software for any music production studio, so its very common across all types of radio stations.
Is there an app to make a radio station?
A: Unfortunately, there is not currently an app that allows you to make your own radio station. However, some websites like TuneIn will let you stream online radio stations for free if youre on the internet without needing any apps at all!
Related Tags
- open source radio software
- open source internet radio player
- self-hosted radio station
- azuracast review
- swift radio pro