aboutsummaryrefslogtreecommitdiffhomepage
path: root/support/doc/tools.md
diff options
context:
space:
mode:
Diffstat (limited to 'support/doc/tools.md')
-rw-r--r--support/doc/tools.md174
1 files changed, 167 insertions, 7 deletions
diff --git a/support/doc/tools.md b/support/doc/tools.md
index 8efb0c13d..7f93c94f2 100644
--- a/support/doc/tools.md
+++ b/support/doc/tools.md
@@ -1,3 +1,30 @@
1<!-- START doctoc generated TOC please keep comment here to allow auto update -->
2<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
4
5- [CLI tools guide](#cli-tools-guide)
6 - [CLI wrapper](#cli-wrapper)
7 - [Remote Tools](#remote-tools)
8 - [Dependencies](#dependencies)
9 - [Installation](#installation)
10 - [peertube-import-videos.js](#peertube-import-videosjs)
11 - [peertube-upload.js](#peertube-uploadjs)
12 - [peertube-watch.js](#peertube-watchjs)
13 - [Server tools](#server-tools)
14 - [parse-log](#parse-log)
15 - [create-transcoding-job.js](#create-transcoding-jobjs)
16 - [create-import-video-file-job.js](#create-import-video-file-jobjs)
17 - [prune-storage.js](#prune-storagejs)
18 - [optimize-old-videos.js](#optimize-old-videosjs)
19 - [update-host.js](#update-hostjs)
20 - [REPL (Read Eval Print Loop)](#repl-read-eval-print-loop)
21 - [.help](#help)
22 - [Lodash example](#lodash-example)
23 - [YoutubeDL example](#youtubedl-example)
24 - [Models examples](#models-examples)
25
26<!-- END doctoc generated TOC please keep comment here to allow auto update -->
27
1# CLI tools guide 28# CLI tools guide
2 - [CLI wrapper](#cli-wrapper) 29 - [CLI wrapper](#cli-wrapper)
3 - [Remote tools](#remote-tools) 30 - [Remote tools](#remote-tools)
@@ -159,7 +186,7 @@ $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production
159 186
160### create-transcoding-job.js 187### create-transcoding-job.js
161 188
162You can use this script to force transcoding of an existing video. 189You can use this script to force transcoding of an existing video. PeerTube needs to be running.
163 190
164``` 191```
165$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-transcoding-job -- -v [videoUUID] 192$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-transcoding-job -- -v [videoUUID]
@@ -172,7 +199,7 @@ $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production
172 199
173### create-import-video-file-job.js 200### create-import-video-file-job.js
174 201
175You can use this script to import a video file to replace an already uploaded file or to add a new resolution to a video. 202You can use this script to import a video file to replace an already uploaded file or to add a new resolution to a video. PeerTube needs to be running.
176 203
177``` 204```
178$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-import-video-file-job -- -v [videoUUID] -i [videoFile] 205$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run create-import-video-file-job -- -v [videoUUID] -i [videoFile]
@@ -189,9 +216,10 @@ $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production
189 216
190### optimize-old-videos.js 217### optimize-old-videos.js
191 218
192Before version v1.0.0-beta.16, Peertube did not specify a bitrate for the transcoding of uploaded videos. 219Before version v1.0.0-beta.16, Peertube did not specify a bitrate for the
193This means that videos might be encoded into very large files that are too large for streaming. This script 220transcoding of uploaded videos. This means that videos might be encoded into
194re-transcodes these videos so that they can be watched properly, even on slow connections. 221very large files that are too large for streaming. This script re-transcodes
222these videos so that they can be watched properly, even on slow connections.
195 223
196``` 224```
197$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run optimize-old-videos 225$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run optimize-old-videos
@@ -200,9 +228,141 @@ $ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production
200 228
201### update-host.js 229### update-host.js
202 230
203If you started PeerTube with a domain, and then changed it you will have invalid torrent files and invalid URLs in your database. 231If you started PeerTube with a domain, and then changed it you will have
204To fix this, you have to run: 232invalid torrent files and invalid URLs in your database. To fix this, you have
233to run:
205 234
206``` 235```
207$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run update-host 236$ sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run update-host
208``` 237```
238
239### REPL ([Read Eval Print Loop](https://nodejs.org/docs/latest-v8.x/api/repl.html))
240
241If you want to interact with the application libraries and objects even when PeerTube is not running, there is a REPL for that.
242
243usage: `node ./dist/server/tools/repl.js`
244
245"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."
246
247- type `.help` to list commands available in the repl, notice it starts with a dot
248- 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
249- 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
250- type `env` to see the loaded environment variables
251- type `path` to access path library
252- type `lodash` to access lodash library
253- type `uuidv1` to access uuid/v1 library
254- type `uuidv3` to access uuid/v3 library
255- type `uuidv4` to access uuid/v4 library
256- type `uuidv5` to access uuid/v5 library
257- type `YoutubeDL` to access youtube-dl library
258- type `cli` to access the cli helpers object
259- type `logger` to access the logger; if you log to it, it will write to stdout and to the peertube.log file
260- type `constants` to access the constants loaded by the server
261- type `coreUtils` to access the core-utils helpers object
262- type `ffmpegUtils` to access the ffmpeg-utils helpers object
263- type `peertubeCryptoUtils` to access the peertube-crypto helpers object
264- type `signupUtils` to access the signup helpers object
265- type `utils` to access the utils helpers object
266- type `YoutubeDLUtils` to access the youtube-dl helpers object
267- type `sequelizeTypescript` to access sequelizeTypescript
268- type `modelsUtils` to access the models/utils
269- type `models` to access the shortcut to sequelizeTypescript.models
270- type `transaction` to access the shortcut to sequelizeTypescript.transaction
271- type `query` to access the shortcut to sequelizeTypescript.query
272- type `queryInterface` to access the shortcut to sequelizeTypescript.queryInterface
273
274#### .help
275
276```
277PeerTube [1.0.0] (b10eb595)> .help
278.break Sometimes you get stuck, this gets you out
279.clear Break, and also clear the local context
280.editor Enter editor mode
281.exit Exit the repl
282.help Print this help message
283.load Load JS from a file into the REPL session
284.r Reset REPL
285.reset Reset REPL
286.save Save all evaluated commands in this REPL session to a file
287PeerTube [1.0.0] (b10eb595)>
288```
289
290#### Lodash example
291
292```
293PeerTube [1.0.0] (b10eb595)> lodash.keys(context)
294[ 'global',
295 'console',
296 'DTRACE_NET_SERVER_CONNECTION',
297 'DTRACE_NET_STREAM_END',
298 'DTRACE_HTTP_SERVER_REQUEST',
299 'DTRACE_HTTP_SERVER_RESPONSE',
300 'DTRACE_HTTP_CLIENT_REQUEST',
301 'DTRACE_HTTP_CLIENT_RESPONSE',
302 'process',
303 'Buffer',
304 'clearImmediate',
305 'clearInterval',
306 'clearTimeout',
307 'setImmediate',
308 'setInterval',
309 'setTimeout',
310 'XMLHttpRequest',
311 'compact2string',
312 'module',
313 'require',
314 'path',
315 'repl',
316 'context',
317 'env',
318 'lodash',
319 'uuidv1',
320 'uuidv3',
321 'uuidv4',
322 'uuidv5',
323 'cli',
324 'logger',
325 'constants',
326 'Sequelize',
327 'sequelizeTypescript',
328 'modelsUtils',
329 'models',
330 'transaction',
331 'query',
332 'queryInterface',
333 'YoutubeDL',
334 'coreUtils',
335 'ffmpegUtils',
336 'peertubeCryptoUtils',
337 'signupUtils',
338 'utils',
339 'YoutubeDLUtils' ]
340PeerTube [1.0.0] (b10eb595)>
341```
342
343#### YoutubeDL example
344```
345YoutubeDL.getInfo('https://www.youtube.com/watch?v=I5ZN289jjDo', function(err, data) {console.log(err, data)})
346```
347
348#### Models examples
349```
350PeerTube [1.0.0] (b10eb595)> new models.ActorModel({id: 3}).getVideoChannel().then(function(data){console.log(data.dataValues.name)})
351Promise {
352 _bitField: 0,
353 _fulfillmentHandler0: undefined,
354 _rejectionHandler0: undefined,
355 _promise0: undefined,
356 _receiver0: undefined }
357PeerTube [1.0.0] (b10eb595)> Main root channel
358PeerTube [1.0.0] (b10eb595)> let out; new models.UserModel({id: 1}).getAccount().then(function (data) {out = data.dataValues.id})
359Promise {
360 _bitField: 0,
361 _fulfillmentHandler0: undefined,
362 _rejectionHandler0: undefined,
363 _promise0: undefined,
364 _receiver0: undefined }
365PeerTube [1.0.0] (b10eb595)> out
3662
367PeerTube [1.0.0] (b10eb595)>
368```