A modern, lightweight, and responsive Swiper carousel for Emby and Jellyfin.
This project replaces the default home screen library view with an interactive, dynamic banner slider β perfect for showcasing your latest and most popular media.
Emby Home Swiper UI is a responsive banner module for Emby Web (tested on version 4.9.1.80).
It uses native Emby APIs to display autoβsliding content on the home page (#!/home) with minimal setup and no external dependencies.
Original inspiration:
index.html/volume1/@appstore/EmbyServer/system/dashboard-ui/
/system/dashboard-ui/
Find it with:
docker exec -it <container_id> find -name "index.html"
home.js (main swiper logic)style.css (optional styling)home.jsindex.html:
Insert before </head>:
<!-- Emby Home Swiper UI -->
<script src="home.js"></script>
Refresh Emby Web Interface:
Restart Emby or refresh the browser. The banner should now appear on the home page (#!/home).
F12) and check for errors.HomeSwiper.init()
Download the script
Save home.js from the v1 folder.
Place in Emby environment
Copy home.js into your Emby serverβs custom scripts or plugin folder.
Inject into dashboard
Add this line to your Emby dashboard HTML or use a browser extension like Tampermonkey:
<script src="/path/to/home.js"></script>
This project provides a simple, lightweight, and responsive banner component with native Emby API support.
Designed for performance and usability, it includes autoβsliding functionality, navigation controls, and error handling.
| Feature | Description |
|---|---|
| Simple & Lightweight | No external libraries required, minimal footprint |
| Native API Support | Uses ApiClient from Emby 4.9.1.80 β 4.9.3.0 (tested and verified) |
| Auto-sliding Banner | Rotates every 8 seconds automatically |
| Navigation Controls | Includes previous/next buttons for manual navigation |
| Indicator Dots | Clickable dots for direct navigation |
| Responsive Design | Works seamlessly on both desktop and mobile |
| Hover Pause | Rotation pauses when hovered for better user control |
| Error Handling | Graceful fallback if images or API requests fail |
| Lazy Loading | Loads images only when needed, improving performance |
F12) and check for errors.console.log(ApiClient)
#!/homeHomeSwiper.init()


The uninitialized functions (saveUser, renderMediaFolders) suggest a separate settings component where users can manage library visibility for the carousel.
This code relies on global objects like ApiClient and require(["toast"]), common in the Emby/Jellyfin environment, to handle saving user preferences.
π¬ Contact via Telegram: @sohag1192
If you enjoy this project, please β it on GitHub β your support motivates future updates!