2024-02-20 11:30:25 +01:00
# Podcini
2024-02-05 21:50:43 +01:00
2024-03-18 12:10:43 +01:00
< img width = "100" src = "https://raw.githubusercontent.com/xilinjia/podcini/main/images/icon 256x256.png" align = "left" style = "margin-right:15px" / >
2024-02-05 21:50:43 +01:00
2024-05-12 05:40:58 +02:00
An open source podcast instrument, attuned to Puccini ![Puccini ](./images/Puccini.jpg ), adorned with pasticcini ![pasticcini ](./images/pasticcini.jpg ) and aromatized with porcini ![porcini ](./images/porcini.jpg ), invites your harmonious heartbeats.
2024-05-11 18:59:46 +02:00
2024-08-15 11:07:40 +02:00
### Rendezvous chez:
2024-08-14 12:25:26 +02:00
2024-08-31 01:21:28 +02:00
[<img src="./images/external/getItGithub.png" alt="GitHub" height="50"> ](https://github.com/XilinJia/Podcini/releases/latest )
[<img src="./images/external/getItIzzyOnDroid.png" alt="IzzyOnDroid" height="50"> ](https://apt.izzysoft.de/fdroid/index/apk/ac.mdiq.podcini.R )
[<img src="./images/external/getItf-droid.png" alt="F-Droid" height="50"> ](https://f-droid.org/packages/ac.mdiq.podcini.R/ )
[<img src="./images/external/amazon.png" alt="Amazon" height="40"> ](https://www.amazon.com/%E8%B4%BE%E8%A5%BF%E6%9E%97-Podcini-R/dp/B0D9WR8P13 )
2024-10-06 20:34:41 +02:00
[<img src="./images/external/getItOpenapk.png" alt="OpenAPK" height="50"> ](https://www.openapk.net/podcini/ac.mdiq.podcini/ )
2024-05-12 05:32:07 +02:00
2024-10-10 16:26:59 +02:00
#### Podcini.R 6.10 allows creating synthetic podcast and shelving any episdes to any synthetic podcasts
2024-09-25 00:40:12 +02:00
#### Podcini.R version 6.5 as a major step forward brings YouTube contents in the app. Channels can be searched, received from share, subscribed. Since 6.6, podcasts, playlists as well as single media from Youtube and YT Music can be shared to Podcini. For more see the Youtube section below or the changelogs
2024-09-15 22:44:58 +02:00
That means finally: [Nessun dorma ](https://www.youtube.com/watch?v=cWc7vYjgnTs )
2024-09-07 20:34:50 +02:00
#### For Podcini to show up on car's HUD with Android Auto, please read AnroidAuto.md for instructions.
2024-09-25 21:23:21 +02:00
#### If you need to cast to an external speaker, you should install the "play" apk, not the "free" apk, that's about the difference between the two.
2024-10-06 20:00:44 +02:00
#### Since version 6.8.5, Podcini.R is built to target SDK 30 (Android 11), though built with SDK 35 and tested on Android 14. This is to counter 2-year old Google issue ForegroundServiceStartNotAllowedException. For more see [this issue](https://github.com/XilinJia/Podcini/issues/88)
2024-09-18 21:13:40 +02:00
#### If you are migrating from Podcini version 5, please read the migrationTo5.md file for migration instructions.
2024-06-19 11:37:16 +02:00
2024-09-15 23:12:46 +02:00
This project was developed from a fork of [AntennaPod ](<https://github.com/AntennaPod/AntennaPod> ) as of Feb 5 2024.
2024-02-14 10:39:03 +01:00
2024-03-18 12:06:00 +01:00
Compared to AntennaPod this project:
2024-04-09 16:07:20 +02:00
2024-06-23 19:58:04 +02:00
1. Migrated all media routines to `androidx.media3` , with `AudioOffloadMode` enabled, nicer to device battery,
2024-10-03 23:20:03 +02:00
2. Is purely `Kotlin` based and mono-modular, and multiple views are in Jetpack Compose,
2024-10-08 20:27:21 +02:00
3. modern object-base Realm DB replaced SQLite, Coil replaced Glide, coroutines replaced RxJava and threads, and SharedFlow replaced EventBus.
4. Boasts new UI's including streamlined drawer, subscriptions view and player controller,
5. Supports multiple, virtual and circular play queues associable to any podcast
6. Auto-download is governed by policy and limit settings of individual feed
2024-10-10 16:26:59 +02:00
7. Features synthetic podcasts and allows episodes to be shelved to any synthetic podcast
8. Supports channels, playlists, single media from YouTube and YT Music, as well as normal podcasts and plain RSS,
9. Allows adding personal notes and 5-level rating on every episode
10. Offers Readability and Text-to-Speech for RSS contents,s
11. Features `instant sync` across devices without a server.
2024-05-11 18:38:02 +02:00
2024-06-23 19:58:04 +02:00
The project aims to profit from modern frameworks, improve efficiency and provide more useful and user-friendly features.
2024-05-11 18:38:02 +02:00
2024-06-23 19:58:04 +02:00
While podcast subscriptions' OPML files (from AntennaPod or any other sources) can be easily imported, Podcini can not import DB from AntennaPod.
2024-02-14 12:20:57 +01:00
2024-04-12 16:56:36 +02:00
## Notable new features & enhancements
2024-04-11 22:31:36 +02:00
2024-07-30 00:11:20 +02:00
### Player and Queues
2024-03-31 09:59:06 +02:00
2024-04-12 16:49:09 +02:00
* More convenient player control displayed on all pages
* Revamped and more efficient expanded player view showing episode description on the front
* Playback speed setting has been straightened up, three speed can be set separately or combined: current audio, podcast, and global
* Added preference "Fast Forward Speed" under "Playback" in settings with default value of 0.0, dialog allows setting a number between 0.0 and 10.0
2024-04-02 00:15:50 +02:00
* The "Skip to next episode" button on the player
2024-04-09 16:07:20 +02:00
* long-press moves to the next episode
* by default, single tap does nothing
* if the user customize "Fast Forward Speed" to a value greater than 0.1, it behaves in the following way:
* single tap during play, the set speed is used to play the current audio
* single tap again, the original play speed resumes
* single tap not during play has no effect
2024-04-02 00:15:50 +02:00
* Added preference "Fallback Speed" under "Playback" in settings with default value of 0.0, dialog allows setting a float number (capped between 0.0 and 1.5)
2024-04-12 16:49:09 +02:00
* if the user customizes "Fallback speed" to a value greater than 0.1, long-press the Play button during play enters the fallback mode and plays at the set fallback speed, single tap exits the fallback mode
2024-07-20 21:41:46 +02:00
* Various efficiency improvements
2024-04-11 22:31:36 +02:00
* streamed media somewhat equivalent to downloaded media
2024-04-12 16:49:09 +02:00
* enabled episode description on player detailed view
* enabled intro- and end- skipping
* mark as played when finished
* streamed media is added to queue and is resumed after restart
2024-04-13 21:45:51 +02:00
* new video episode view, with video player on top and episode descriptions in portrait mode
2024-09-03 22:30:24 +02:00
* easy switches on video player to other video mode or audio only, in seamless way
* video player automatically switch to audio when app invisible
2024-04-13 21:45:51 +02:00
* default video player mode setting in preferences
* when video mode is set to audio only, click on image on audio player on a video episode brings up the normal player detailed view
2024-08-04 14:04:10 +02:00
* "Prefer streaming over download" is now on setting of individual feed
2024-09-03 22:19:19 +02:00
* added setting in individual feed to play audio only for video feeds,
* an added benefit for setting it enables Youtube media to only stream audio content, saving bandwidth.
* this differs from switching to "Audio only" on each episode, in which case, video is also streamed
2024-07-30 00:11:20 +02:00
* Multiple queues can be used: 5 queues are provided by default, user can rename or add up to 10 queues
* on app startup, the most recently updated queue is set to curQueue
* any episodes can be easily added/moved to the active or any designated queues
* any queue can be associated with any feed for customized playing experience
* Every queue is circular: if the final item in queue finished, the first item in queue (if exists) will get played
2024-10-08 20:10:02 +02:00
* Every queue has a bin containing past episodes removed from the queue, useful for further review and handling
2024-08-04 14:04:10 +02:00
* Feed associated queue can be set to None, in which case:
* episodes in the feed are not automatically added to any queue, but are used as a natural queue for getting the next episode to play
* the next episode is determined in such a way:
* if the currently playing episode had been (manually) added to the active queue, then it's the next in queue
* else if "prefer streaming" is set, it's the next unplayed episode in the feed episodes list based on the current sort order
* else it's the next downloaded unplayed episode
* Otherwise, episode played from a list other than the queue is now a one-off play, unless the episode is on the active queue, in which case, the next episode in the queue will be played
2024-07-30 00:11:20 +02:00
2024-04-11 22:31:36 +02:00
2024-10-08 20:10:02 +02:00
### Podcast list and Episode list
2024-04-11 22:31:36 +02:00
2024-05-11 18:38:02 +02:00
* A whole new interface of the Subscriptions page showing only the feeds with tags as filters, no longer having tags as folders in the page,
2024-06-29 00:11:42 +02:00
* Subscriptions page by default has a list layout and can be opted for a grid layout
2024-04-11 22:31:36 +02:00
* New and efficient ways of click and long-click operations on lists:
* click on title area opens the podcast/episode
* long-press on title area automatically enters in selection mode
* options to select all above or below are shown action bar together with Select All
* operations are only on the selected (single or multiple)
* List info is shown in Queue and Downloads views
* Left and right swipe actions on lists now have telltales and can be configured on the spot
2024-07-18 23:47:28 +02:00
* Played or new episodes have clearer markings
2024-04-11 22:31:36 +02:00
* Sort dialog no longer dims the main view
2024-07-18 23:47:28 +02:00
* download date can be used to sort both feeds and episodes
2024-07-20 21:41:46 +02:00
* Subscriptions view has a filter based on feed preferences, in the same style as episodes filter
2024-07-22 14:03:04 +02:00
* Subscriptions sorting is now bi-directional based on various explicit measures, and sorting info is shown on every feed (List Layout only)
* in Subscriptions view, click on cover image of a feed opens the FeedInfo view (not FeedEpisodes view)
* in all episodes list views, click on an episode image brings up the FeedInfo view
2024-05-05 15:46:34 +02:00
* in episode list view, if episode has no media, TTS button is shown for fetching transcript (if not exist) and then generating audio file from the transcript. TTS audio files are playable in the same way as local media (with speed setting, pause and rewind/forward)
2024-07-24 16:52:20 +02:00
* on action bar of FeedEpisodes view there is a direct access to Queue
* Long-press filter button in FeedEpisodes view enables/disables filters without changing filter settings
2024-05-18 00:05:16 +02:00
* History view shows time of last play, and allows filters and sorts
2024-09-03 22:19:19 +02:00
2024-04-11 22:31:36 +02:00
### Podcast/Episode
2024-04-12 16:49:09 +02:00
* New share notes menu option on various episode views
2024-09-03 22:19:19 +02:00
* Every feed (podcast) can be associated with a queue allowing downloaded media to be added to the queue
2024-07-22 14:03:04 +02:00
* FeedInfo view offers a link for direct search of feeds related to author
2024-06-24 22:52:25 +02:00
* FeedInfo view has button showing number of episodes to open the FeedEpisodes view
2024-07-22 14:03:04 +02:00
* FeedInfo view has feed setting in the header
2024-10-08 20:10:02 +02:00
* instead of isFavorite, there is a new rating system for every episode: Trash, Bad, Neutral, Good, Favorite
* in EpisodeInfo view, "mark played/unplayed", "add to/remove from queue"
* in EpisodeInfo view, one can enter personal comments/notes under "My opinion" for every episode
2024-04-18 23:56:00 +02:00
* New episode home view with two display modes: webpage or reader
2024-05-05 15:46:34 +02:00
* In episode, in addition to "description" there is a new "transcript" field to save text (if any) fetched from the episode's website
* RSS feeds with no playable media can be subscribed and read/listened (via TTS)
2024-06-24 22:52:25 +02:00
* deleting feeds is performed promptly
2024-04-11 22:31:36 +02:00
### Online feed
2024-10-03 23:18:33 +02:00
* Long-press on a feed in online feed list prompts to subscribe it straight out.
2024-03-31 17:55:22 +02:00
* More info about feeds are shown in the online search view
2024-04-05 14:06:50 +02:00
* Ability to open podcast from webpage address
2024-03-31 17:55:22 +02:00
* Online feed info display is handled in similar ways as any local feed, and offers options to subscribe or view episodes
2024-03-31 09:59:06 +02:00
* Online feed episodes can be freely played (streamed) without a subscription
2024-10-04 19:10:29 +02:00
* Online feed episodes can be selectively reserved into synthetic podcasts
2024-09-12 12:54:00 +02:00
2024-09-15 22:15:31 +02:00
### Youtube & Youtube Music
2024-09-12 12:54:00 +02:00
* Youtube channels can be searched in podcast search view, can also be shared from other apps (such as Youtube) to Podcini
* Youtube channels can be subscribed as normal podcasts
2024-09-19 23:43:15 +02:00
* Playlists and podcasts on Youtube or Youtube Music can be shared to Podcini, and then can be subscribed in similar fashion as the channels
2024-09-15 22:15:31 +02:00
* Single media from Youtube or Youtube Music can also be shared from other apps, can be accepted as including video or audio only, are added to synthetic podcasts such as "Youtube Syndicate"
* All the media from Youtube or Youtube Music can be played (only streamed) with video in fullscreen and in window modes or in audio only mode in the background
* These media are played with the lowest video quality and highest audio quality
* If a subscription is set for "audio only", then only audio stream is fetched at play time for every media in the subscription
2024-10-06 20:00:44 +02:00
* accepted host names include: youtube.com, www.youtube.com, m.youtube.com, music.youtube.com, and youtu.be
2024-03-31 09:59:06 +02:00
2024-05-11 18:38:02 +02:00
### Instant (or Wifi) sync
2024-05-12 05:37:47 +02:00
* Ability to sync between devices on the same wifi network without a server (experimental feature)
2024-05-11 18:38:02 +02:00
* It syncs the play states (position and played) of episodes that exist in both devices (ensure to refresh first) and that have been played (completed or not)
2024-05-12 05:37:47 +02:00
* So far, every sync is a full sync, no sync for subscriptions and media files
2024-05-11 18:38:02 +02:00
2024-07-18 23:47:28 +02:00
### Automation
* auto download algorithm is changed to individual feed based.
2024-07-18 23:55:29 +02:00
* When auto download is enabled in the Settings, feeds to be auto-downloaded need to be separately enabled in the feed settings.
* Each feed also has its own download policy (only new episodes, newest episodes, and oldest episodes. "newest episodes" meaning most recent episodes, new or old)
* Each feed has its own limit (Episode cache) for number of episodes downloaded, this limit rules in combination of the overall limit for the app.
2024-07-20 21:41:46 +02:00
* Auto downloads run feeds or feed refreshes, scheduled or manual
2024-07-30 00:11:20 +02:00
* auto download always includes any undownloaded episodes (regardless of feeds) added in the Default queue
2024-07-18 23:55:29 +02:00
* After auto download run, episodes with New status is changed to Unplayed.
* auto download feed setting dialog is also changed:
* there are now separate dialogs for inclusive and exclusive filters where filter tokens can be specified independently
* on exclusive dialog, there are optional check boxes "Exclude episodes shorter than" and "Mark excluded episodes played"
2024-07-30 00:11:20 +02:00
* Sleep timer has a new option of "To the end of episode"
2024-07-18 23:47:28 +02:00
2024-05-13 22:08:13 +02:00
### Security and reliability
2024-04-11 22:31:36 +02:00
2024-04-12 16:58:12 +02:00
* Disabled `usesCleartextTraffic` , so that all content transmission is more private and secure
2024-05-18 00:05:16 +02:00
* Settings/Preferences can now be exported and imported
2024-06-10 16:56:20 +02:00
* Play history/progress can be separately exported/imported as Json files
2024-10-08 20:10:02 +02:00
* there is logging for every content shared to Podcini, which can be reviewed and repaired if error
2024-07-24 16:52:20 +02:00
* Downloaded media files can be exported/imported
2024-07-25 13:49:25 +02:00
* Reconsile feature (accessed from Downloads view) is added to ensure downloaded media files are in sync with specs in DB
2024-08-03 01:02:45 +02:00
* Podcasts can be selectively exported from Subscriptions view
2024-07-24 16:52:20 +02:00
* There is a setting to disable/enable auto backup of OPML files to Google
* Upon re-install of Podcini, the OPML file previously backed up to Google is not imported automatically but based on user confirmation.
2024-04-11 22:31:36 +02:00
2024-03-31 09:59:06 +02:00
For more details of the changes, see the [Changelog ](changelog.md )
2024-02-29 14:48:38 +01:00
2024-02-25 11:28:34 +01:00
## Screenshots
2024-02-22 09:43:59 +01:00
2024-07-23 08:45:04 +02:00
### Settings
2024-03-21 22:00:47 +01:00
< img src = "./images/1_drawer.jpg" width = "238" / > < img src = "./images/2_setting.jpg" width = "238" / > < img src = "./images/2_setting1.jpg" width = "238" / >
2024-02-22 09:43:59 +01:00
2024-07-23 08:45:04 +02:00
### Import/Export
< img src = "./images/2_setting2.jpg" width = "238" / > < img src = "./images/2_setting3.jpg" width = "238" / >
2024-02-22 09:43:59 +01:00
2024-07-23 08:45:04 +02:00
### Subscriptions
< img src = "./images/3_subscriptions.jpg" width = "238" / > < img src = "./images/3_subscriptions1.jpg" width = "238" / > < img src = "./images/3_subscriptions2.jpg" width = "238" / >
2024-03-26 14:05:54 +01:00
2024-07-23 08:45:04 +02:00
### Multiple Queues
< img src = "./images/4_queue.jpg" width = "238" / > < img src = "./images/4_queue1.jpg" width = "238" / >
2024-03-26 14:05:54 +01:00
2024-07-23 08:45:04 +02:00
### Podcast
< img src = "./images/5_podcast_0.jpg" width = "238" / > < img src = "./images/5_podcast_1.jpg" width = "238" / >
2024-03-26 14:05:54 +01:00
2024-07-23 08:45:04 +02:00
### Podcast settings
< img src = "./images/5_podcast_setting.jpg" width = "238" / > < img src = "./images/5_podcast_setting1.jpg" width = "238" / >
### Episode and player details
< img src = "./images/6_episode.jpg" width = "238" / > < img src = "./images/6_player_details.jpg" width = "238" / >
### Usage customization
< img src = "./images/7_speed.jpg" width = "238" / > < img src = "./images/8_swipe_setting.jpg" width = "238" / > < img src = "./images/8_swipe_setting1.jpg" width = "238" / >
### Get feeds online
2024-03-26 14:05:54 +01:00
< img src = "./images/9_feed_search.jpg" width = "238" / > < img src = "./images/9_online_feed_info.jpg" width = "238" / > < img src = "./images/91_online_episodes.jpg" width = "238" / >
2024-02-22 09:43:59 +01:00
2024-08-26 19:08:57 +02:00
### Android Auto
2024-08-26 19:10:08 +02:00
< img src = "./images/92_Auto_list.png" width = "238" / > < img src = "./images/92_Auto_player.png" width = "238" / >
2024-08-26 19:08:57 +02:00
2024-03-18 12:10:23 +01:00
## Links
2024-03-02 15:15:38 +01:00
2024-04-09 16:07:20 +02:00
* [Changelog ](changelog.md )
* [Privacy Policy ](PrivacyPolicy.md )
* [Contributing ](CONTRIBUTING.md )
* [Translation (Transifex) ](https://app.transifex.com/xilinjia/podcini/dashboard/ )
2024-02-14 11:16:47 +01:00
## License
2024-05-12 07:01:11 +02:00
Podcini, same as the project it was forked from, is licensed under the GNU General Public License (GPL-3.0).
2024-03-18 12:07:38 +01:00
You can find the license text in the LICENSE file.
2024-02-22 09:31:31 +01:00
## Copyright
2024-04-19 12:52:23 +02:00
New files and contents in the project are copyrighted in 2024 by Xilin Jia and related contributors.
2024-02-22 09:31:31 +01:00
2024-04-19 12:52:23 +02:00
Original contents from the forked project maintain copyrights of the AntennaPod team.
2024-04-09 16:07:20 +02:00
## Licenses and permissions
[Licenses and permissions ](Licenses_and_permissions.md )