--- /dev/null
+tsconfig.json
+*.ts
+webpack.config.ts
{
"name": "@peertube/embed-api",
- "version": "1.0.0",
+ "private": false,
+ "version": "0.0.1",
"description": "API to communicate with the PeerTube player embed",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"peertube",
"embed"
],
- "main": "./player.ts",
+ "main": "./dist/player.js",
+ "types": "./dist/player.d.ts",
"author": "Chocobozzz",
"license": "AGPL-3.0",
"bugs": {
"url": "https://github.com/Chocobozzz/PeerTube/issues"
},
- "homepage": "https://github.com/Chocobozzz/PeerTube#readme"
+ "homepage": "https://github.com/Chocobozzz/PeerTube#readme",
+ "dependencies": {
+ "jschannel": "^1.0.2"
+ }
}
}
// put it on the window as well as the export
-window[ 'PeerTubePlayer' ] = PeerTubePlayer
+(window[ 'PeerTubePlayer' ] as any) = PeerTubePlayer
--- /dev/null
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "removeComments": true,
+ "sourceMap": false,
+ "typeRoots": [
+ "../../../node_modules/@types"
+ ],
+ "outDir": "./dist",
+ "declaration": true,
+ "target": "es5",
+ "types": [],
+ "lib": [
+ "es2018",
+ "dom"
+ ]
+ },
+ "files": [ "./player.ts" ]
+}
--- /dev/null
+const path = require('path')
+
+module.exports = [
+ {
+ mode: 'production',
+ entry: './dist/player.js',
+ output: {
+ filename: 'player.min.js',
+ path: path.resolve(__dirname, 'build')
+ }
+ }
+]
"dev:embed": "scripty",
"dev:client": "scripty",
"dev:cli": "scripty",
- "dev:embed": "scripty",
"start": "node dist/server",
"start:server": "node dist/server --no-client",
"update-host": "node ./dist/scripts/update-host.js",
"mocha": "mocha",
"ci": "scripty",
"release": "scripty",
+ "release-embed-api": "scripty",
"nightly": "scripty",
"client-report": "scripty"
},
done
fi
-npm run build:embed
+cd ../ && npm run build:embed && cd client/
# Copy runtime locales
cp -r "./src/locale" "./dist/locale"
set -eu
+cd client
+
NODE_ENV=production npm run webpack -- --config webpack/webpack.video-embed.js --mode production --json > "./dist/embed-stats.json"
--- /dev/null
+#!/bin/sh
+
+set -eu
+
+cd client/src/standalone/player
+
+rm -rf dist build && tsc -p . && ../../../node_modules/.bin/webpack --config ./webpack.config.js
+
+npm publish --access public
+
+rm -rf dist build node_modules
```typescript
import { PeerTubePlayer } from '@peertube/embed-api'
+...
+```
+
+Or use the minified build from NPM CDN in your HTML file:
+
+```
+<script src="https://unpkg.com/@peertube/embed-api@0.0.1/build/player.min.js"></script>
+
+<script>
+ const PeerTubePlayer = window['PeerTubePlayer']
+
+ ...
+</script>
+```
+
+Then you can instantiate the player:
+
+```typescript
let player = new PeerTubePlayer(document.querySelector('iframe'))
await player.ready // wait for the player to be ready
{
"id": 3,
"label": "720p",
- "src": "//src-url-here",
+ "height": "720",
"active": true
}
```
## `getVolume(): Promise<number>`
Get the playback volume. Returns a value between `0` and `1`.
+
# Events
You can subscribe to events by using `addEventListener()`. See above for details.