mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement] Auto-download new episodes to not download already removed episodes #526
Open
opened 2026-04-24 23:12:05 +02:00 by adam
·
5 comments
No Branch/Tag Specified
master
book_tags_genres_dedupe
episode_download_fallback
Issue-4540-SortBy-StartedDate-and-FinishedDate
episode_meta_tagging
fix_authorize_race_condition
redirect_transcode_requests
progress_updated_sort
fix_ereader_socket_event
fix_change_empty_root_password
fix_podcast_session_track_index
fix_set_token
session_modal_user
localize_durations
fix_oidc_create_user
jwt_auth_refactor
fix_scanner_deleting_single_file_books
fix_mediaprogress_updatedat_2
experimental_next_client
podcast_episode_duration
episode-timestamps-clickable
book_author_secondary_sort_title
podcast_useragents
pathexists_user_access
fix_pathexists_join
book_author_secondary_sort
clean_duplicate_mediaprogress
sanitize_html_description
trix_prevent_attachments
check_path_api_fix
fix_mediaprogress_updatedat
increase_express_json_limit
fix_dockerfile_nunicode
search_episodes
audiobook_tools_update
episode_secondary_sorts
hls_stream_url_update
new_session_track_endpoint
audiobook_tools_enhancements
watcher_rescans_update
player_track_tooltip
fix_exclude_prefixes_crash
socket_item_events
fix_podcast_episode_scanner_promise
new_stats_controller
count_cache_for_userpermissions
parsing-opf-v3
validate_migration_files
fix-quick-match-all-crash
fix-chapter-end-sleep-timer
stringify_sequelize_query
remove-col-ambiguity
fix_next_prev_edit_description
details_trim_whitespace
fix_content_url_basepath
fix_logger_fatal
progress_bar_visibility
batch-edit-populate-map-details
feed_generator_updates
bookmark-modal-updates
migrate-library-item-in-scanner
migrate-new-library-items
migrate-podcasts-new-library-item-2
migrate-podcasts-new-library-item
fix-remove-episode-from-playlist
playback-session-use-new-library-item
refactor-library-item
fix-heatmap-caption
feed-episodes-upsert
share-media-player-media-session-api
remove-old-playlist
remove_old_collection_object
plugin-implementation-demo
feed_migration
refactor-feeds-from-item
fix_remove_authors_no_books
v2.17.3-fk-constraints-migration
migrations-first-upgrade
sqlite_2
feature/nuxt-target-server
waveform
sqlite
playlists
video
v2.35.1
v2.35.0
v2.34.0
v2.33.2
v2.33.1
v2.33.0
v2.32.1
v2.32.0
v2.31.0
v2.30.0
v2.29.0
v2.28.0
v2.27.0
v2.26.3
v2.26.2
v2.26.1
v2.26.0
v2.25.1
v2.25.0
v2.24.0
v2.23.0
v2.22.0
v2.21.0
v2.20.0
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19.0
v2.18.1
v2.18.0
v2.17.7
v2.17.6
v2.17.5
v2.17.4
v2.17.3
v2.17.2
v2.17.1
v2.17.0
v2.16.2
v2.16.1
v2.16.0
v2.15.1
v2.15.0
v2.14.0
v2.13.4
v2.13.3
v2.13.2
v2.13.1
v2.13.0
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.11.0
v2.10.1
v2.10.0
v2.9.0
v2.8.1
v2.8.0
v2.7.2
v2.7.1
v2.7.0
v2.6.0
v2.5.0
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.23
v2.2.22
v2.2.21
v2.2.20
v2.2.19
v2.2.18
v2.2.17
v2.2.16
v2.2.15
v2.2.14
v2.2.13
v2.2.12
v2.2.11
v2.2.10
v2.2.9
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v1.7.2
v1.7.1
v1.7.0
v1.6.0
v1.5.5
v1.5.0
v1.4.11
v1.4.9
v1.4.7
v1.4.6
v1.4.4
v1.4.2
v1.4.0
v1.4.1
v1.3.4
v1.3.3
v1.3.1
v1.2.8
v1.2.6
v1.2.5
v1.2.4
v1.2.1
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.0.0
0.9.61-beta.0
0.9.61-beta
Labels
Clear labels
authentication
backlog
bug
chapter editor
config-issue
ebooks
encoding/embedding
enhancement
help wanted
listening sessions & progress
planned
possible plugin
progress sync
pull-request
sorting/filtering/searching
unable to reproduce
upload
users & permissions
waiting
Mirrored from GitHub Pull Request
No Label
enhancement
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/audiobookshelf#526
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @advplyr on GitHub (Jul 14, 2022).
Discussed in https://github.com/advplyr/audiobookshelf/discussions/835
Originally posted by LilJay86 July 14, 2022
Hello, i have removed 2 Podcast Episodes and checkt "hard delete file"
The 2 Episodes where removed from the File System and on ABS.
After 1 - 2 hours were these 2 Episodes back onFile System and ABS.
Does anyone know what I'm doing wrong. I suspect that the episodes will be recognized as new and re-downloaded again.
How can I prevent already heard and deleted episodes from being recognized as new? Thanks
@gbakeman commented on GitHub (Jul 14, 2022):
To put this another way, is ABS going to have a system for remembering the listen state of metadata belonging to a podcast? I was hoping for ABS to auto-download all metadata when a podcast is added, then keep track of each episode as new or listened regardless of downloaded status.
@advplyr commented on GitHub (Jul 15, 2022):
Right now podcasts in abs are only for downloading. You can only listen to episodes you have downloaded so I'm not sure if your question applies yet.
@mfcar commented on GitHub (Mar 7, 2023):
Hi @gbakeman , do you mean an Exclusion List to avoid a single Episode being added again in the future?
Sonarr has implemented something similar to an entire series.
If you remove a series, you can add it to an exclusion list to avoid this series being added again.
It's uncomplicated for an entire series because ABS stores the iTunes ID for each podcast, but I can try to investigate some way (I don't know, compare just the title or the filenames) to implement this.
@gbakeman commented on GitHub (Mar 7, 2023):
Hi @mfcar , thanks for asking! I'm not sure how ABS works currently, but what I'm hoping for is a database of sorts that records podcast episodes that have been listened to. Right now, ABS only remembers the listen state of an episode so long as it remains downloaded on the server. Once the file is deleted from the server, the listen state is forgotten.
As far as persistence is concerned, it would be great if this operates on a per-series basis. So if you remove a few listened episodes from a series, then their state is still remembered. But if you delete the series, then I would be fine if this data is also erased.
@pwinnski commented on GitHub (Nov 7, 2024):
To put this clearly: hard-deleted podcast episodes are re-downloaded if they're the most recent in the feed.
I think of this as a bug. If a feed contains, for example, three episodes, and I delete the second one, it stays deleted. But if I delete the most recent one, ABS re-downloads it, seeming to assume it is new. That's inconsistent behavior.
I expected ABS to use a timestamp or some other means to recognize that it should not download the deleted file. For example, when editing a podcast, the Episodes tab will "Look for new episodes after this date," but on a scheduled event, there is no such filter.
The
podcaststable has alastEpisodeCheckcolumn, but it does not appear to be used by the scheduler.Bug #2432 was closed as Completed, but this is still happening in v2.16.2.
I'll give a concrete example. I have set my podcasts with automatic downloads to check once per day. Overnight I see this in my log:
Since the "Last check" was Nov 06, yesterday, I would expect only episodes after Nov 06 to match, but it downloaded an "episode" from October 29.
Looking in
PodcastManager.js, I see these comments:This suggests that the focus is on the experience when first adding a podcast, but wanting to delete the most recent episode is falling through the cracks, and clearly there are people who would like that.
Thanks!