diff --git a/docs/assets/example/jassub.js b/docs/assets/example/jassub.js
new file mode 100644
index 000000000..7e48dd041
--- /dev/null
+++ b/docs/assets/example/jassub.js
@@ -0,0 +1,12 @@
+// npm i artplayer-plugin-jassub
+// import artplayerPluginJassub from 'artplayer-plugin-jassub';
+
+var art = new Artplayer({
+ container: '.artplayer-app',
+ url: '/assets/sample/video.mp4',
+ plugins: [
+ artplayerPluginJassub({
+ //
+ }),
+ ],
+});
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index ce0176bb7..e11598a68 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -120,6 +120,10 @@
artplayer-plugin-liquid-glass
+
+ artplayer-plugin-jassub
+
- Proxys
diff --git a/packages/artplayer-plugin-jassub/.npmignore b/packages/artplayer-plugin-jassub/.npmignore
new file mode 100644
index 000000000..932395606
--- /dev/null
+++ b/packages/artplayer-plugin-jassub/.npmignore
@@ -0,0 +1,6 @@
+node_modules
+.DS_Store
+.parcel-cache
+yarn.lock
+package-lock.json
+src
\ No newline at end of file
diff --git a/packages/artplayer-plugin-jassub/README.md b/packages/artplayer-plugin-jassub/README.md
new file mode 100644
index 000000000..c3371b3ba
--- /dev/null
+++ b/packages/artplayer-plugin-jassub/README.md
@@ -0,0 +1,11 @@
+# artplayer-plugin-jassub
+
+jassub plugin for ArtPlayer
+
+## Demo
+
+[https://artplayer.org](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-jassub/index.js&example=jassub)
+
+## License
+
+MIT © Harvey Zack
diff --git a/packages/artplayer-plugin-jassub/package.json b/packages/artplayer-plugin-jassub/package.json
new file mode 100644
index 000000000..05dcc32ed
--- /dev/null
+++ b/packages/artplayer-plugin-jassub/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "artplayer-plugin-jassub",
+ "version": "1.0.0",
+ "description": "jassub plugin for ArtPlayer",
+ "author": "Harvey Zack ",
+ "license": "MIT",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ],
+ "exports": {
+ ".": {
+ "types": "./types/artplayer-plugin-jassub.d.ts",
+ "import": "./dist/artplayer-plugin-jassub.mjs",
+ "require": "./dist/artplayer-plugin-jassub.js"
+ },
+ "./legacy": {
+ "types": "./types/artplayer-plugin-jassub.d.ts",
+ "import": "./dist/artplayer-plugin-jassub.legacy.js",
+ "require": "./dist/artplayer-plugin-jassub.legacy.js"
+
+ }
+ },
+ "main": "dist/artplayer-plugin-jassub.js",
+ "module": "./dist/artplayer-plugin-jassub.mjs",
+ "types": "types/artplayer-plugin-jassub.d.ts",
+ "legacy": "dist/artplayer-plugin-jassub.legacy.js",
+ "browserslist": "last 1 Chrome version"
+}
diff --git a/packages/artplayer-plugin-jassub/src/index.js b/packages/artplayer-plugin-jassub/src/index.js
new file mode 100644
index 000000000..f25af6742
--- /dev/null
+++ b/packages/artplayer-plugin-jassub/src/index.js
@@ -0,0 +1,31 @@
+import style from 'bundle-text:./style.less';
+
+export default function artplayerPluginJassub(option) {
+ return (art) => {
+ return {
+ name: 'artplayerPluginJassub',
+ };
+ };
+}
+
+if (typeof document !== 'undefined') {
+ const id = 'artplayer-plugin-jassub';
+ let $style = document.getElementById(id)
+ if (!$style) {
+ $style = document.createElement('style')
+ $style.id = id
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', () => {
+ document.head.appendChild($style)
+ })
+ }
+ else {
+ (document.head || document.documentElement).appendChild($style)
+ }
+ }
+ $style.textContent = style
+}
+
+if (typeof window !== 'undefined') {
+ window.artplayerPluginJassub = artplayerPluginJassub;
+}
diff --git a/packages/artplayer-plugin-jassub/src/style.less b/packages/artplayer-plugin-jassub/src/style.less
new file mode 100644
index 000000000..cce0ee229
--- /dev/null
+++ b/packages/artplayer-plugin-jassub/src/style.less
@@ -0,0 +1,3 @@
+.artplayer-plugin-jassub {
+ //
+}
diff --git a/packages/artplayer-plugin-jassub/types/artplayer-plugin-jassub.d.ts b/packages/artplayer-plugin-jassub/types/artplayer-plugin-jassub.d.ts
new file mode 100644
index 000000000..2a04a2606
--- /dev/null
+++ b/packages/artplayer-plugin-jassub/types/artplayer-plugin-jassub.d.ts
@@ -0,0 +1,13 @@
+import type Artplayer from 'artplayer';
+
+interface Option {
+ //
+}
+
+interface Result {
+ name: 'artplayerPluginJassub';
+}
+
+declare const artplayerPluginJassub: (option: Option) => (art: Artplayer) => Result;
+
+export default artplayerPluginJassub
\ No newline at end of file