OpenAir is a free and open-source podcast app built with Flutter, empowering you to explore and enjoy the world of audio storytelling. Dive into a vast library of podcasts, personalize your listening experience, and connect with a vibrant community of fellow enthusiasts.
- Explore: Discover a diverse range of podcasts with intuitive browsing by category, popularity, and personalized recommendations.
- Listen: Stream podcasts seamlessly with smooth playback controls and offline listening capabilities for uninterrupted enjoyment.
- Organize: Create custom playlists, manage subscriptions efficiently, and track your listening progress effortlessly.
- Share: Recommend your favorite podcasts to friends and contribute to the OpenAir community by suggesting features and shaping the future of the app.
OpenAir embraces open-source principles. The codebase is freely accessible, allowing anyone to contribute, report issues, and propose improvements. We believe in fostering a collaborative environment to create the best possible podcast experience for everyone.
Clone the repository: https://github.com/OpenAir-Podcast/openair.git
Read the contribution guidelines: click here for contribution guidelines
Join the discussion: click here for discussion
OpenAir fetches podcast information from the PodcastIndex API. To run OpenAir, you will need to obtain your own API credentials from PodcastIndex.
Prerequisites:
- Flutter development environment set up (refer to official Flutter documentation)
- A PodcastIndex API Key and API Secret. You can get these by creating a free account at https://api.podcastindex.org/developer_home.
- A Fyyd API Client ID and Client Secret. You can get these by creating a free account at https://fyyd.de/.
Running the App:
-
Clone the repository:
git clone https://github.com/OpenAir-Podcast/openair.git
-
Navigate to the project directory:
cd OpenAir -
Create a
.envfile in the root of theOpenAirproject directory. -
Add your API credentials to the
.envfile:For PodcastIndex (required):
PODCASTINDEX_API_KEY=YOUR_API_KEY_HERE PODCASTINDEX_API_SECRET=YOUR_API_SECRET_HERE
Important: Replace
YOUR_API_KEY_HEREandYOUR_API_SECRET_HEREwith your actual API key and secret from the PodcastIndex developer portal.For Fyyd (optional, for additional podcast discovery):
FYYD_CLIENT_ID=YOUR_FYYD_CLIENT_ID FYYD_CLIENT_SECRET=YOUR_FYYD_CLIENT_SECRET
For Firebase (required for user authentication and data synchronization):
FIREBASE_API_KEY=YOUR_API_KEY FIREBASE_APP_ID=YOUR_APP_ID FIREBASE_MESSAGING_SENDER_ID=YOUR_SENDER_ID FIREBASE_PROJECT_ID=YOUR_PROJECT_ID FIREBASE_AUTH_DOMAIN=YOUR_AUTH_DOMAIN FIREBASE_STORAGE_BUCKET=YOUR_STORAGE_BUCKET FIREBASE_ANDROID_CLIENT_ID=YOUR_ANDROID_CLIENT_ID FIREBASE_IOS_CLIENT_ID=YOUR_IOS_CLIENT_ID FIREBASE_IOS_BUNDLE_ID=YOUR_IOS_BUNDLE_ID
Note: You will need to create a Firebase project and enable Authentication and Cloud Firestore to get these credentials. Alternatively, run
flutterfire configureto generatefirebase_options.dartand skip the env vars. -
Install dependencies:
flutter pub get
-
Run the app on your device or emulator:
flutter run
We welcome contributions of all kinds! Please refer to the contribution guidelines document (link above) for details on how to get started.
OpenAir is licensed under the MIT License (see LICENSE file for details).
OpenAir is provided "as is" without warranty of any kind, express or implied. The application relies on data provided by the PodcastIndex API and other third-party services. OpenAir-Podcast is not responsible for the accuracy, completeness, legality, or availability of podcast content accessed through OpenAir, nor for any interruptions or errors in the PodcastIndex API or other third-party services. Users are solely responsible for their use of the application and for adhering to the terms of service of any external platforms they access through OpenAir.
OpenAir is proudly developed and maintained by its contributors—who are enthusiastic podcast listeners themselves. Dedicated to building open-source tools for the community, by the community, we hope you enjoy using OpenAir!
Desktop status. Linux and Windows builds ship from CI on every tag; macOS
builds are also included after the 0.18.21+73 release. Browse, search,
subscribe, stream, and download all work on desktop out of the box. Sign-in and
cloud sync are not yet available on desktop: lib/firebase_options.dart
currently only covers Android, iOS and web. To enable Firebase on macOS add a
macOS app in the Firebase console and re-run flutterfire configure --platforms=macos (Windows/Linux are not supported by Firebase Auth). See
flatpak/README.md, packaging/snap/README.md, and packaging/winget/README.md for packaging details.