diff --git a/packages/app/package.json b/packages/app/package.json
index b58d591a..444fc7f5 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -21,6 +21,7 @@
"dependencies": {
"@aiui/core": "workspace:*",
"@tanstack/vue-virtual": "^3.13.19",
+ "hls.js": "^1.6.15",
"katex": "^0.16.33",
"leaflet": "^1.9.4",
"markdown-it": "^14.1.1",
diff --git a/packages/app/src/components/renderers/VideoPlayer.vue b/packages/app/src/components/renderers/VideoPlayer.vue
new file mode 100644
index 00000000..f42a87a3
--- /dev/null
+++ b/packages/app/src/components/renderers/VideoPlayer.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e1ea7f0e..d908ecb8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -27,6 +27,9 @@ importers:
'@tanstack/vue-virtual':
specifier: ^3.13.19
version: 3.13.19(vue@3.5.29(typescript@5.8.3))
+ hls.js:
+ specifier: ^1.6.15
+ version: 1.6.15
katex:
specifier: ^0.16.33
version: 0.16.33
@@ -2295,6 +2298,9 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
+ hls.js@1.6.15:
+ resolution: {integrity: sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==}
+
hookable@5.5.3:
resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
@@ -5899,6 +5905,8 @@ snapshots:
dependencies:
function-bind: 1.1.2
+ hls.js@1.6.15: {}
+
hookable@5.5.3: {}
html-entities@2.6.0: {}