Skip to content

Full Sri Lanka channel list, player fix for HLS URLs without .m3u8, and end-to-end smoke tests - #9

Merged
AshenWijesingha merged 3 commits into
mainfrom
ccr-935bedef-xdoexq
Oct 7, 2026
Merged

AshenWijesingha merged 3 commits into
mainfrom
ccr-935bedef-xdoexq

Conversation

@AshenWijesingha

@AshenWijesingha AshenWijesingha commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Summary

Channels

  • public/playlists/sri-lanka/CHANNELS.md: all 91 Sri Lankan channels in the iptv-org database, with the stream status of each one.
  • sources/candidates.m3u: every Sri Lankan stream URL from iptv-org's streams/lk.m3u history (91 URLs covering 33 channels). Unofficial Tata Play restreams are left out. The Check Sri Lanka streams workflow tests this file as well.
  • lk.m3u: now 8 working channels. Hiru, Jaya, Shakthi, Siyatha, Swarnavahini and Talent were already there; Imai TV and Verbum TV are added because they passed the stream check (8 of the 91 candidates passed).

Player fix

  • VideoPlayer only used hls.js when the URL contained .m3u8. Swarnavahini's stream (https://teledrama.ebc.lk/TTT/proxy.php) has no such extension, so it went straight to <video>, which Chrome can't play. Now every URL that isn't a plain media file (mp4, webm and so on) goes through hls.js.

Deployment checks

  • scripts/smoke_test.cjs (Playwright): checks that the static files load, accepts the consent modal, loads the Sri Lanka preset and, with --play, waits for every channel to actually play (currentTime > 2). It runs in Google Chrome, because Playwright's bundled Chromium can't decode H.264.
  • smoke-test.yml runs lint, build and the smoke test against the build on every PR.
  • deploy.yml has a new verify job that runs the smoke test against https://falconstream-pro.github.io after each deploy.

Note: Pages publishes twice

Every push to main also starts GitHub's built-in pages build and deployment run, which builds the raw repo with Jekyll and races the Next.js Actions deploy; whichever finishes last is what's live. To stop this, set Settings → Pages → Source to GitHub Actions.

Test plan

  • npm run lint, npm run build; local smoke test (without --play) passes: page, consent, Sri Lanka preset with 8 channels, no page errors or broken assets
  • Stream check: all 8 channels in lk.m3u pass
  • Smoke test with --play in Chrome on CI

🤖 Generated with Claude Code

https://claude.ai/code/session_01KFgZAqUcFaYKfwpPMUvu9P

claude and others added 3 commits October 7, 2026 16:41
Collect every Sri Lankan stream URL that has appeared in iptv-org's
streams/lk.m3u history (91 URLs, 33 channels), excluding unofficial
Tata Play restreams, into sources/candidates.m3u, and have the stream
check workflow test it alongside lk.m3u.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFgZAqUcFaYKfwpPMUvu9P
- Fix VideoPlayer: use hls.js for every non-progressive URL. Streams
  such as Swarnavahini (https://teledrama.ebc.lk/TTT/proxy.php) have no
  .m3u8 extension and were handed to <video> directly, which Chrome
  cannot play.
- Add scripts/smoke_test.cjs (Playwright): checks static files, the
  consent flow, loading the Sri Lanka preset and, with --play, that each
  channel actually plays in the browser.
- Run it on pull requests against a fresh build (smoke-test.yml) and
  after every deploy against https://falconstream-pro.github.io.
- Add Imai TV and Verbum TV to lk.m3u (passed the stream check) and
  CHANNELS.md listing all 91 Sri Lankan channels with stream status.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFgZAqUcFaYKfwpPMUvu9P
Playwright's bundled Chromium has no H.264/AAC decoders, so no live
stream could play in it (0/8 in the first run, stuck with no player
error). Use the Chrome channel preinstalled on GitHub runners, fail fast
with a clear message when the test browser cannot decode H.264, and log
the video element state for channels that fail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KFgZAqUcFaYKfwpPMUvu9P
@AshenWijesingha
AshenWijesingha marked this pull request as ready for review October 7, 2026 17:12
Copilot AI balanced review requested due to automatic review settings October 7, 2026 17:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@AshenWijesingha AshenWijesingha changed the title Add a full Sri Lanka channel list and test every known stream Full Sri Lanka channel list, player fix for HLS URLs without .m3u8, and end-to-end smoke tests Oct 7, 2026
@AshenWijesingha
AshenWijesingha merged commit 8bb19ce into main Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants