[PR #2189] [CLOSED] Feat/radio station player #2131

Closed
opened 2026-02-26 03:33:22 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/koel/koel/pull/2189
Author: @pwqw
Created: 1/9/2026
Status: Closed

Base: masterHead: feat/radio-station-player


📝 Commits (4)

  • b741203 feat: add localization support with English and Spanish language files
  • 81dcf0a feat: thêm hỗ trợ ngôn ngữ tiếng Việt 🐵
  • 0e3f565 feat: enhance queue state saving to include episodes and filter out deleted songs
  • 3df06f0 feat: implement direct radio streaming with CORS handling and enhance validation for radio station URLs

📊 Changes

229 files changed (+5040 additions, -1165 deletions)

View changed files

📝 app/Http/Controllers/StreamRadioController.php (+74 -2)
app/Http/Middleware/SetLocaleFromBrowser.php (+82 -0)
📝 app/Rules/ValidRadioStationUrl.php (+128 -3)
📝 bootstrap/app.php (+3 -0)
📝 package.json (+1 -0)
📝 pnpm-lock.yaml (+45 -0)
📝 resources/assets/js/App.vue (+12 -2)
📝 resources/assets/js/__tests__/TestHarness.ts (+16 -0)
📝 resources/assets/js/app.ts (+16 -0)
📝 resources/assets/js/components/album/AlbumCard.spec.ts (+2 -2)
📝 resources/assets/js/components/album/AlbumCard.vue (+11 -8)
📝 resources/assets/js/components/album/AlbumContextMenu.spec.ts (+6 -6)
📝 resources/assets/js/components/album/AlbumContextMenu.vue (+9 -6)
📝 resources/assets/js/components/album/AlbumInfo.vue (+5 -2)
📝 resources/assets/js/components/album/AlbumListSorter.spec.ts (+6 -5)
📝 resources/assets/js/components/album/AlbumListSorter.vue (+7 -4)
📝 resources/assets/js/components/album/AlbumTrackList.vue (+4 -1)
📝 resources/assets/js/components/album/AlbumTrackListItem.vue (+3 -1)
📝 resources/assets/js/components/album/EditAlbumForm.spec.ts (+10 -10)
📝 resources/assets/js/components/album/EditAlbumForm.vue (+16 -13)

...and 80 more files

📄 Description

Description

Basically, it implements that radio streaming services use a more raw tag, in order to ensure greater compatibility with streaming services.

After conducting research, I encountered problems, starting with the fact that "radio station url validation" did not allow me to add a perfectly valid and functional URL.

Motivation

The fully functional, tested site aims to be able to directly play any radio station, queue songs, and navigate playback between one medium and another with ease.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/koel/koel/pull/2189 **Author:** [@pwqw](https://github.com/pwqw) **Created:** 1/9/2026 **Status:** ❌ Closed **Base:** `master` ← **Head:** `feat/radio-station-player` --- ### 📝 Commits (4) - [`b741203`](https://github.com/koel/koel/commit/b74120326dc874ca6df96f40f0ace76d2f71d50d) feat: add localization support with English and Spanish language files - [`81dcf0a`](https://github.com/koel/koel/commit/81dcf0ad44cf56e7a34a8da2effe140d872f180a) feat: thêm hỗ trợ ngôn ngữ tiếng Việt 🐵 - [`0e3f565`](https://github.com/koel/koel/commit/0e3f56520957191b004d60eb284dee7df45fdf3b) feat: enhance queue state saving to include episodes and filter out deleted songs - [`3df06f0`](https://github.com/koel/koel/commit/3df06f0c9e27eefc096a6e2126a4e3cb0ff65301) feat: implement direct radio streaming with CORS handling and enhance validation for radio station URLs ### 📊 Changes **229 files changed** (+5040 additions, -1165 deletions) <details> <summary>View changed files</summary> 📝 `app/Http/Controllers/StreamRadioController.php` (+74 -2) ➕ `app/Http/Middleware/SetLocaleFromBrowser.php` (+82 -0) 📝 `app/Rules/ValidRadioStationUrl.php` (+128 -3) 📝 `bootstrap/app.php` (+3 -0) 📝 `package.json` (+1 -0) 📝 `pnpm-lock.yaml` (+45 -0) 📝 `resources/assets/js/App.vue` (+12 -2) 📝 `resources/assets/js/__tests__/TestHarness.ts` (+16 -0) 📝 `resources/assets/js/app.ts` (+16 -0) 📝 `resources/assets/js/components/album/AlbumCard.spec.ts` (+2 -2) 📝 `resources/assets/js/components/album/AlbumCard.vue` (+11 -8) 📝 `resources/assets/js/components/album/AlbumContextMenu.spec.ts` (+6 -6) 📝 `resources/assets/js/components/album/AlbumContextMenu.vue` (+9 -6) 📝 `resources/assets/js/components/album/AlbumInfo.vue` (+5 -2) 📝 `resources/assets/js/components/album/AlbumListSorter.spec.ts` (+6 -5) 📝 `resources/assets/js/components/album/AlbumListSorter.vue` (+7 -4) 📝 `resources/assets/js/components/album/AlbumTrackList.vue` (+4 -1) 📝 `resources/assets/js/components/album/AlbumTrackListItem.vue` (+3 -1) 📝 `resources/assets/js/components/album/EditAlbumForm.spec.ts` (+10 -10) 📝 `resources/assets/js/components/album/EditAlbumForm.vue` (+16 -13) _...and 80 more files_ </details> ### 📄 Description <!-- Thank you for contributing to Koel! Please provide a clear description of your changes below. --> ## Description Basically, it implements that radio streaming services use a more raw <audio> tag, in order to ensure greater compatibility with streaming services. After conducting research, I encountered problems, starting with the fact that "radio station url validation" did not allow me to add a perfectly valid and functional URL. ## Motivation The fully functional, tested site aims to be able to directly play any radio station, queue songs, and navigate playback between one medium and another with ease. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 03:33:22 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/koel-koel#2131
No description provided.