Need help with tsacdop?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

stonega
239 Stars 41 Forks GNU General Public License v3.0 616 Commits 24 Opened issues

Description

Enjoy podcasts with Tsacdop! A podcast player built with flutter.

Services available

!
?

Need anything else?

Contributors list

# 201,008
Dart
Kotlin
podcast...
Flutter
598 commits
# 2,473
assembl...
spotify
gc
Rust
2 commits
# 106,367
Dart
PHP
discord...
Userscr...
2 commits

Tsacdop Banner

github action GitHub Release Github Downloads Localizely style: effective dart License badge fdroid install

About

Enjoy podcasts with Tsacdop.

Tsacdop is a podcast player developed with Flutter, a clean, simply beautiful and friendly app, which is also free and open source.

Credit to Flutter team and all involved plugins, especially webfeed , Just_Audio and Provider.

The podcast search engine is powered by ListenNotes & PodcastIndex.

Features

  • Podcast group management
  • Playlists support
  • Sleep timer / speed setting
  • OPML file export and import
  • Auto syncing in background
  • Listening and subscription history record
  • Dark mode / accent color
  • Download for offline play
  • Auto download new episodes / auto delete outdated downloads
  • Settings backup
  • Skip silence
  • Boost volume

More to come...

Preview

| Home Page | Group | Podcast | Episode| Dark Mode | | ----- | ----- | ----- | ------ | ----- | || | | | |

Localization

Please Email me you'd like to contribute to support more languages!

Credit to Localizely for kind support to open source projects.

English

Chinese Simplified

French

Spanish

Portuguese

License

Tsacdop is licensed under the GPL v3.0 license.

Build

  1. If you don't have Flutter SDK installed, please visit offcial Flutter site.
  2. Fetch latest sorce code from master branch.
git clone https://github.com/stonega/tsacdop.git
  1. Add api search api configure file.

Tsacdop uses ListenNotes API 1.0 pro to search for podcasts, which is not free, so I can not expose the API key in the repo. If you want to build the app, you need to create a new file named

.env.dart
in lib folder. Add the following code to
.env.dart
. If you don't have ListenNotes api key, just keep apiKey ''. Than the app will only support the PodcastIndex search. You can get your own ListenNotes API key on ListenNotes, remember that you need to get pro plan API, because basic plan dosen't provide rss link for serach result.
final environment = {"apiKey":""};
  1. Run the app with Android Studio or Visual Studio. Or the command line.
flutter pub get
flutter run

Contribute

If you have an issue or found a bug, please raise a GitHub issue. Pull requests are also welcome.

Archetecture

Plugins

  • Local storage
    • sqflite
    • shared_preferences
  • Audio
    • just_audio
    • audio_service
  • State management
    • provider
  • Download
    • flutter_downloader
  • Background task
    • workmanager

Directory Structure

UI
src
└──home
   ├──home.dart [Homepage]
   ├──searc_podcast.dart [Search Page]
   └──playlist.dart [Playlist Page]
└──podcasts
   ├──podcast_manage.dart [Group Page]
   └──podcast_detail.dart [Podcast Page]
└──episodes
   └──episode_detail.dart [Episode Page]
└──settings
   └──setting.dart [Setting Page]

STATE src └──state ├──audio_state.dart [Audio State] ├──download_state.dart [Episode Download] ├──podcast_group.dart [Podcast Groups] ├──refresh_podcast.dart [Episode Refresh] └──setting_state.dart [Setting]

Service src └──service ├──api_service.dart [Podcast Search] ├──gpodder_api.dart [Gpodder intergate] └──ompl_builde.dart [OMPL export]

Known Issue

  • Playlist is unstable

Contact

You can reach out to me directly at [email protected].

Or you can join our Telegram Group.

Getting Started with Flutter

This project is a starting point for a Flutter application.

Here are a few resources to get you started if this is your first Flutter project:

For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.