X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=support%2Fdoc%2Ftools.md;h=c8cc2d1d790c3d790b105e8bdb6230fdf8cc6cc4;hb=e1ab52d7ec7370a6f9f5937192d6003206af1ac0;hp=1956dc572b0c6f38663b7200a05d7de5363b6158;hpb=4024c44f9027a32809931de0692d40d001df721c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/support/doc/tools.md b/support/doc/tools.md index 1956dc572..c8cc2d1d7 100644 --- a/support/doc/tools.md +++ b/support/doc/tools.md @@ -10,7 +10,6 @@ - [CLI wrapper](#cli-wrapper) - [peertube-import-videos.js](#peertube-import-videosjs) - [peertube-upload.js](#peertube-uploadjs) - - [peertube-watch.js](#peertube-watchjs) - [peertube-plugins.js](#peertube-pluginsjs) - [peertube-redundancy.js](#peertube-redundancyjs) - [Server tools](#server-tools) @@ -18,16 +17,11 @@ - [regenerate-thumbnails.js](#regenerate-thumbnailsjs) - [create-transcoding-job.js](#create-transcoding-jobjs) - [create-import-video-file-job.js](#create-import-video-file-jobjs) + - [create-move-video-storage-job.js](#create-move-video-storage-jobjs) - [prune-storage.js](#prune-storagejs) - - [optimize-old-videos.js](#optimize-old-videosjs) - [update-host.js](#update-hostjs) - [reset-password.js](#reset-passwordjs) - [plugin install/uninstall](#plugin-installuninstall) - - [REPL (Read Eval Print Loop)](#repl-read-eval-print-loop) - - [.help](#help) - - [Lodash example](#lodash-example) - - [YoutubeDL example](#youtubedl-example) - - [Models examples](#models-examples) @@ -76,8 +70,6 @@ You can access it as `peertube` via an alias in your `.bashrc` like `alias peert auth [action] register your accounts on remote instances to use them with other commands upload|up upload a video import-videos|import import a video from a streaming platform - watch|w watch a video in the terminal ✩°。⋆ - repl initiate a REPL to access internals plugins|p [action] manage instance plugins redundancy|r [action] manage video redundancies help [cmd] display help for [cmd] @@ -101,12 +93,6 @@ You can now use that account to upload videos without feeding the same parameter $ peertube up ``` -And now that your video is online, you can watch it from the confort of your terminal (use `peertube watch --help` to see the supported players): - -```bash -$ peertube watch https://peertube.cpy.re/videos/watch/e8a1af4e-414a-4d58-bfe6-2146eed06d10 -``` - To list, install, uninstall dynamically plugins/themes of an instance: ```bash @@ -170,22 +156,6 @@ $ cd ${CLONE} $ node dist/server/tools/peertube-upload.js --help ``` -#### peertube-watch.js - -You can use this script to play videos directly from the CLI. - -It provides support for different players: - -- ascii (default ; plays in ascii art in your terminal!) -- mpv -- mplayer -- vlc -- stdout -- xbmc -- airplay -- chromecast - - #### peertube-plugins.js Install/update/uninstall or list local or NPM PeerTube plugins: @@ -334,31 +304,41 @@ $ cd /var/www/peertube-docker $ docker-compose exec -u peertube peertube npm run create-import-video-file-job -- -v [videoUUID] -i [videoFile] ``` -### prune-storage.js +### create-move-video-storage-job.js -Some transcoded videos or shutdown at a bad time can leave some unused files on your storage. -Stop PeerTube and delete these files (a confirmation will be demanded first): +Use this script to move all video files or a specific video file to object storage. ```bash +$ # Basic installation $ cd /var/www/peertube/peertube-latest -$ sudo systemctl stop peertube && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run prune-storage -``` +$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-move-video-storage-job -- --to-object-storage -v [videoUUID] -### optimize-old-videos.js +$ # Docker installation +$ cd /var/www/peertube-docker +$ docker-compose exec -u peertube peertube npm run create-move-video-storage-job -- --to-object-storage -v [videoUUID] +``` -Before version v1.0.0-beta.16, Peertube did not specify a bitrate for the -transcoding of uploaded videos. This means that videos might be encoded into -very large files that are too large for streaming. This script re-transcodes -these videos so that they can be watched properly, even on slow connections. +The script can also move all video files that are not already in object storage: ```bash $ # Basic installation $ cd /var/www/peertube/peertube-latest -$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run optimize-old-videos +$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-move-video-storage-job -- --to-object-storage --all-videos $ # Docker installation $ cd /var/www/peertube-docker -$ docker-compose exec -u peertube peertube npm run optimize-old-videos +$ docker-compose exec -u peertube peertube npm run create-move-video-storage-job -- --to-object-storage --all-videos +``` + + +### prune-storage.js + +Some transcoded videos or shutdown at a bad time can leave some unused files on your storage. +Stop PeerTube and delete these files (a confirmation will be demanded first): + +```bash +$ cd /var/www/peertube/peertube-latest +$ sudo systemctl stop peertube && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run prune-storage ``` @@ -431,134 +411,3 @@ $ # Docker installation $ cd /var/www/peertube-docker $ docker-compose exec -u peertube peertube npm run plugin:uninstall -- --npm-name peertube-plugin-myplugin ``` - -### REPL (Read Eval Print Loop) - -If you want to interact with the application libraries and objects even when PeerTube is not running, there is a REPL for that. - -usage: `node ./dist/server/tools/peertube-repl.js` - -"The default evaluator will, by default, assign the result of the most recently evaluated expression to the special variable `_` (underscore). Explicitly setting `_` to a value will disable this behavior." - -- type `.help` to list commands available in the repl, notice it starts with a dot -- type `.exit` to exit, note that you still have to press CTRL-C to actually exit, or press CTRL-C (3 times) without typing `.exit` to exit -- type `context` to list all available objects and libraries in the context, note: `Promise` is also available but it's not listed in the context, in case you need promises for something -- type `env` to see the loaded environment variables -- type `path` to access path library -- type `lodash` to access lodash library -- type `uuidv1` to access uuid/v1 library -- type `uuidv3` to access uuid/v3 library -- type `uuidv4` to access uuid/v4 library -- type `uuidv5` to access uuid/v5 library -- type `YoutubeDL` to access youtube-dl library -- type `cli` to access the cli helpers object -- type `logger` to access the logger; if you log to it, it will write to stdout and to the peertube.log file -- type `constants` to access the constants loaded by the server -- type `coreUtils` to access the core-utils helpers object -- type `ffmpegUtils` to access the ffmpeg-utils helpers object -- type `peertubeCryptoUtils` to access the peertube-crypto helpers object -- type `signupUtils` to access the signup helpers object -- type `utils` to access the utils helpers object -- type `YoutubeDLUtils` to access the youtube-dl helpers object -- type `sequelizeTypescript` to access sequelizeTypescript -- type `modelsUtils` to access the models/utils -- type `models` to access the shortcut to sequelizeTypescript.models -- type `transaction` to access the shortcut to sequelizeTypescript.transaction -- type `query` to access the shortcut to sequelizeTypescript.query -- type `queryInterface` to access the shortcut to sequelizeTypescript.queryInterface - -#### .help - -``` -PeerTube [1.0.0] (b10eb595)> .help -.break Sometimes you get stuck, this gets you out -.clear Break, and also clear the local context -.editor Enter editor mode -.exit Exit the repl -.help Print this help message -.load Load JS from a file into the REPL session -.r Reset REPL -.reset Reset REPL -.save Save all evaluated commands in this REPL session to a file -PeerTube [1.0.0] (b10eb595)> -``` - -#### Lodash example - -``` -PeerTube [1.0.0] (b10eb595)> lodash.keys(context) -[ 'global', - 'console', - 'DTRACE_NET_SERVER_CONNECTION', - 'DTRACE_NET_STREAM_END', - 'DTRACE_HTTP_SERVER_REQUEST', - 'DTRACE_HTTP_SERVER_RESPONSE', - 'DTRACE_HTTP_CLIENT_REQUEST', - 'DTRACE_HTTP_CLIENT_RESPONSE', - 'process', - 'Buffer', - 'clearImmediate', - 'clearInterval', - 'clearTimeout', - 'setImmediate', - 'setInterval', - 'setTimeout', - 'XMLHttpRequest', - 'compact2string', - 'module', - 'require', - 'path', - 'repl', - 'context', - 'env', - 'lodash', - 'uuidv1', - 'uuidv3', - 'uuidv4', - 'uuidv5', - 'cli', - 'logger', - 'constants', - 'Sequelize', - 'sequelizeTypescript', - 'modelsUtils', - 'models', - 'transaction', - 'query', - 'queryInterface', - 'YoutubeDL', - 'coreUtils', - 'ffmpegUtils', - 'peertubeCryptoUtils', - 'signupUtils', - 'utils', - 'YoutubeDLUtils' ] -PeerTube [1.0.0] (b10eb595)> -``` - -#### YoutubeDL example -``` -YoutubeDL.getInfo('https://www.youtube.com/watch?v=I5ZN289jjDo', function(err, data) {console.log(err, data)}) -``` - -#### Models examples -``` -PeerTube [1.0.0] (b10eb595)> new models.ActorModel({id: 3}).getVideoChannel().then(function(data){console.log(data.dataValues.name)}) -Promise { - _bitField: 0, - _fulfillmentHandler0: undefined, - _rejectionHandler0: undefined, - _promise0: undefined, - _receiver0: undefined } -PeerTube [1.0.0] (b10eb595)> Main root channel -PeerTube [1.0.0] (b10eb595)> let out; new models.UserModel({id: 1}).getAccount().then(function (data) {out = data.dataValues.id}) -Promise { - _bitField: 0, - _fulfillmentHandler0: undefined, - _rejectionHandler0: undefined, - _promise0: undefined, - _receiver0: undefined } -PeerTube [1.0.0] (b10eb595)> out -2 -PeerTube [1.0.0] (b10eb595)> -```