[Enhancement]: Video playback #3233

Open
opened 2026-02-20 11:01:38 -05:00 by deekerman · 3 comments
Owner

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.

Image

Audiobookshelf Server Version

v2.32.1

Current Implementation (Screenshot)

No response

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](https://github.com/seba76/audiobookshelf/tree/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. <img width="1911" height="904" alt="Image" src="https://github.com/user-attachments/assets/a41db889-ed10-46ce-84fd-16c6bf14e87a" /> ### Audiobookshelf Server Version v2.32.1 ### Current Implementation (Screenshot) _No response_
Author
Owner

@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

@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
Author
Owner

@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.

@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.
Author
Owner

@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.

@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 **Audio**bookshelf, 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.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/audiobookshelf-advplyr#3233
No description provided.