nuxt / nuxt/hints

@nuxt/hints Module Breaks HLS Playback in Vidstack Player

Open
#129 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

need reproduction
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

  1. Enable @nuxt/hints module in nuxt.config.ts:

    modules: [
      '@nuxt/hints',
      // ... other modules
    ]
    
  2. Configure a Vidstack player with an HLS source (.m3u8 file)

  3. Attempt to play the HLS video

  4. 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/hints immediately resolves the issue

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.