- Add `getChunk` handler to serve specific recording chunks based on `streamId` and `index` query params
- Modify route handler to dispatch requests to either list recordings or fetch chunks
- Improve `isHlsPlaylistLive` function with:
- Basic validation for manifest structure
- Detection of master playlists and VOD markers
- Segment presence check
- Timestamp freshness validation via `#EXT-X-PROGRAM-DATE-TIME`
- Conservative fallback using media sequence when timestamps are absent
- Removed viewerCount from ProfileSidebarProps and component parameters
- Commented out viewerCount usage in ProfileSidebar component
- Updated import statement to exclude unused icons
- Removed viewerCount prop from StreamPage component instances in $username.tsx
Update CommentBox component to handle image uploads with validation, preview, and progress tracking, and to manage comments with Jazz container initialization.
- Rename `CLOUDFLARE_STREAM_NIKIV_VIDEO_ID` to `CLOUDFLARE_LIVE_INPUT_UID` in env.d.ts
- Remove hardcoded `LIVE_INPUT_UID` constant from `$username.tsx`
- Add `hlsUrl` state and update it based on API response in `$username.tsx`
- Modify stream playback logic to use `hlsUrl` for nikiv user
- Fetch HLS URL from server-side API and update state accordingly
- Update `check-hls.ts` to derive HLS URL dynamically from environment variables
- Remove `CLOUDFLARE_LIVE_INPUT_UID` from `wrangler.jsonc` environment variables
- Add `CLOUDFLARE_STREAM_NIKIV_VIDEO_ID` to environment variables
- Refactor `$username.tsx` to initialize stream data with default HLS URL
- Implement dynamic HLS URL update based on API response for Nikiv stream
- Modify `/api/check-hls` route to use environment variable for video ID
- Ensure HLS URL updates trigger stream data refresh in client
- Update `wrangler.jsonc` to include `CLOUDFLARE_STREAM_NIKIV_VIDEO_ID` in env vars
- Add a `callReady` function to ensure `onReady` is called only once
- Attach `canplay` event listener for native HLS support to trigger `onReady`
- Call `onReady` immediately after manifest parsing for HLS streams
- Simplify `useStreamViewers` hook to skip viewer count sync for user "nikiv"
- Silently handle errors during viewer count synchronization to avoid unnecessary logs
- Clarify instructions for creator-specific pricing and setup
- Remove outdated Stripe Price ID prompt from setup script
- Add API route definitions for `/api/creator/tiers`, `/api/creator/subscribe`, and `/api/creator/$username/access`
- Register new routes in route tree for API access
- Update documentation to reflect new endpoints and instructions
- Add `hlsLive` state to track if HLS playlist is live
- Implement `isHlsPlaylistLive` function to determine playlist status
- Reset `hlsLive` before fetching new manifest
- Update fetch logic to set `hlsLive` based on playlist analysis
- Refine live status checks to consider HLS playlist state
- Adjust rendering conditions to use `isActuallyLive` for consistency
- Add missing `webkitallowfullscreen` attribute in CloudflareStreamPlayer
- Enhance VideoPlayer to detect iOS devices and use `webkitEnterFullscreen` when available
- Adjust fullscreen state setting to account for WebKit-specific fullscreen elements