mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-05-30 23:40:40 +02:00
[Enhancement]: Video playback #3232
Open
opened 2026-04-25 00:14:25 +02:00 by adam
·
3 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#3232
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 @seba76 on GitHub (Feb 12, 2026).
Type of Enhancement
Web Interface/Frontend
Describe the Feature/Enhancement
I propose that instead of using html audio tag frontend uses video tag for playback. This way we would have support for video tutorials and video podcasts, only basic support for video playback is required mp4 files with play, pause, skip, fullscreen controls. If this feature is implemented with issue #2196 it would give options for mobile clients to handle such content as well.
Why would this be helpful?
Of all the media servers, including Plex and Jellyfin, Audiobookshelf has the best layout I've seen so far for organizing content that can be broken down to chapters. This enables easy navigation between lectures that can be scattered between several video files.
Future Implementation (Screenshot)
lectures branch in my fork contains implementation of this basic idea I have. When we start to play video file there is small window top right with added fullscreen button in player control section, if we play audio file there is no change in UI. Ideally when we are in fullscreen there would be player controls visible on mouse hover however I'm not that skilled in vue to implement that.
Audiobookshelf Server Version
v2.32.1
Current Implementation (Screenshot)
No response
@nichwall commented on GitHub (Feb 12, 2026):
Video playback is unlikely to be supported by the main server. If you are wanting video support, you will be better served using a dedicated video server (like Plex or Jellyfin).
For rehosting video podcasts in an RSS feed, duplicate of https://github.com/advplyr/audiobookshelf/issues/2196
@seba76 commented on GitHub (Feb 13, 2026):
@nichwall I realize that there is a slim chance this will be supported, even if there was an attempt to do it before (there is a video branch in this repo). That is the reason why I forked audiobookshelf and implemented this feature my self, more as proof of concept then as proper implementation due to my lack of knowledge of Vue and Typescript. What is missing in my fork are playback controls when video is in fullscreen mode. I will add that when I get enough knowledge on how to implement it and then I will have this feature implemented with everything it needs.
Video servers like Plex or Jellyfin are not suited right now for multiple video files with chapters plus with additional non video files. Jellyfin is open source and I tried to see if I could make an plugin for it but it was not trivial so I gave up, Plex is even worse with the lack of proper guides and no source code.
What, in my opinion, is excellent feature of Audiobookshelf is the list of chapters you get in the UI together with the list of additional files which enables you to directly jump into lesson you wish to view and listing or viewing of additional material right there from the UI and in case of pdf's you can read it, for video servers those features are missing so there is a lot to implement.
If I was not clear when I say add video support I was not thinking you need to support all possible video formats and containers as Plex and Jellyfin support. For tutorials that is not needed. Switching from audio tag to video gives more then enough support for tutorials and podcasts, which is basically mp4 with h264, h265 and vp1 codecs that browsers natively support.
@Dasnap commented on GitHub (Feb 20, 2026):
I know for me personally, I've been looking for a good open-source alternative for Pocket Casts, as I assume it's a 'when' and not an 'if' for its quality going down the toilet.
ABS is almost there, with the current blocker being that it doesn't support the few video podcasts that I watch. I'm aware that this is Audiobookshelf, but a lot of the modern podcast landscape also has a video element (whether that should be the case is a different discussion), and it can be a bit frustrating when the hosts talk about something visual. With PC, I can quickly take my phone out of my pocket and have a look, and I would love to have that ability with this project as well.
Edit: And as has been said, Jellyfin is far from a good podcast player either.