Tsacdop è un lettore di podcast sviluppato con Flutter, un'app pulita, semplicemente bella e amichevole, che è anche gratuita e open source. https://funkwhale.it
Go to file
stonegate 54a1b17499 renamed: lib/home/addpodcast.dart -> lib/home/search_podcast.dart 2020-07-16 22:50:18 +08:00
.circleci Enable R8 2020-07-16 19:30:08 +08:00
android Enable R8 2020-07-16 19:30:08 +08:00
assets Add localizely logo. 2020-07-16 17:35:01 +08:00
ios Start to build iOS version 2020-05-10 16:56:04 +08:00
lib renamed: lib/home/addpodcast.dart -> lib/home/search_podcast.dart 2020-07-16 22:50:18 +08:00
preview Change banner image. 2020-07-10 02:04:14 +08:00
test Export ompli file 2020-03-20 03:58:30 +08:00
tool modified: tool/env.dart 2020-05-19 03:04:04 +08:00
.gitignore Add open container for episodegrid 2020-03-23 01:03:53 +08:00
.metadata first commit 2020-02-09 20:29:09 +08:00
CHANGELOG.md Fix typo. 2020-07-16 22:37:19 +08:00
LICENSE Create LICENSE 2020-02-12 21:07:52 +08:00
README.md renamed: lib/home/addpodcast.dart -> lib/home/search_podcast.dart 2020-07-16 22:50:18 +08:00
pubspec.yaml Add localizely logo. 2020-07-16 17:35:01 +08:00

README.md

Tsacdop Banner

Build Status - Cirrus GitHub Release Github Downloads Localizely

About

Enjoy podcast with Tsacdop.

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

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

The podcasts search engine is powered by ListenNotes.

Features

  • Podcasts group management
  • Playlist support
  • Sleep timer / Speed setting
  • OMPL file export and import
  • Auto syncing in background
  • Listen and subscribe history record
  • Dark mode / Accent color
  • Download for offline play
  • Auto download new episodes / Auto delete outdated downloads
  • Settings backup

More to come...

Preview

HomePage Group Podcast Episode DarkMode

Localization

Support languages

  • English
  • Chinese Simplified (beta)

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

Credit to Localizely for kind support to open source project.

License

Tsacdop is licensed under the GPL V3.0 license.

Build

Tsacdop is using ListenNotes api 1.0 pro to search podcast, 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 below code in .env.dart.

final environment = {"apiKey":"APIKEY"};

You can get own api key on ListenNotes, basic plan is free to all, and replace "APIKEY" with it. If no api key added, the search function in the app won't work. But you can still add podcasts by serach rss link or import ompl file.

Archetecture

Plugins

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

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]

STATES
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]

Known Issue

  • Playlist unstable

Getting Started

This project is a starting point for a Flutter application.

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.