@nuxt/hints Module Breaks HLS Playback in Vidstack Player
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 344
- Forks
- 13
- PR merge metrics
- No merged PRs in 30d
Description
Summary
Enabling the @nuxt/hints module causes HLS (HTTP Live Streaming) playback to fail silently in Vidstack video players. The player initializes correctly and can play other video formats (MP4, YouTube, Vimeo), but HLS streams (.m3u8 files) do not load or play.
Environment
- Nuxt Version: 4.2.1
- @nuxt/hints Version: 1.0.0-alpha.1
- Vidstack Version: 1.12.13
- hls.js Version: 1.6.14 (used by Vidstack)
- Vue Version: 3.5.24
- Node Version: v22.21.0
- Package Manager: pnpm
- OS: Linux (WSL Ubuntu)
- Browser: (Chrome)
Steps to Reproduce
-
Enable
@nuxt/hintsmodule innuxt.config.ts:modules: [ '@nuxt/hints', // ... other modules ] -
Configure a Vidstack player with an HLS source (
.m3u8file) -
Attempt to play the HLS video
-
Observe that the player initializes but HLS playback fails silently
Expected Behavior
HLS videos should play correctly with @nuxt/hints enabled, just like other video formats (MP4, YouTube, Vimeo).
Actual Behavior
- Player initializes successfully
- Other video formats (MP4, YouTube, Vimeo) work correctly
- HLS videos (
.m3u8) fail to load/play silently - No console errors are displayed
- Player shows loading state but never starts playback
Workaround
Disable the @nuxt/hints module:
modules: [
// '@nuxt/hints', // Disabled - conflicts with HLS playback
// ... other modules
]
Technical Details
Module Order Impact
The position of @nuxt/hints in the modules array does not resolve the issue. Tested positions:
- At the beginning of modules array
- At the end of modules array
- Between other modules
All positions result in the same HLS playback failure.
Configuration
// nuxt.config.ts
export default defineNuxtConfig({
modules: [
'@nuxt/hints', // When enabled, breaks HLS
// ... other modules
],
vue: {
compilerOptions: {
isCustomElement: tag => tag.startsWith('media-'),
},
},
vite: {
plugins: [
vidstack({ include: /components\/blocks\/(Player|Carousel)\.vue/ }),
],
},
})
Player Configuration
<media-player
:src="/videos/example.m3u8"
type="application/x-mpegURL"
>
<media-provider>
<video />
</media-provider>
<media-video-layout />
</media-player>
Additional Context
- The issue is reproducible consistently
- No console errors or warnings appear
- The problem occurs in both development and production builds
- Module order does not affect the outcome
- Disabling
@nuxt/hintsimmediately resolves the issue
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the reported setup in nuxt.config.ts and the Vidstack player configuration using the .m3u8 source. Reproduce the difference with @nuxt/hints enabled and disabled in development and production, then trace the interaction affecting HLS playback. Done means HLS plays while the module remains enabled, without regressing MP4, YouTube, or Vimeo playback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- nuxt, typescript
- Domain
- frontend, web-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100