diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index b74e2c578..6cf13e226 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -192,7 +192,7 @@ npm run dev
### Embed
-The embed is a standalone application built using Webpack.
+The embed is a standalone application built using Vite.
The generated files (HTML entrypoint and multiple JS and CSS files) are served by the PeerTube server (behind `localhost:9000/videos/embed/:videoUUID` or `localhost:9000/video-playlists/embed/:playlistUUID`).
The following command will compile embed files and run the PeerTube server:
diff --git a/client/.eslintrc.json b/client/.eslintrc.json
index 271363cb7..d00e6e7ab 100644
--- a/client/.eslintrc.json
+++ b/client/.eslintrc.json
@@ -28,7 +28,6 @@
"lines-between-class-members": "off",
"@typescript-eslint/lines-between-class-members": [ "off" ],
"arrow-body-style": "off",
- "import/no-webpack-loader-syntax": "off",
"no-underscore-dangle": "off",
"n/no-callback-literal": "off",
"@angular-eslint/component-selector": [
diff --git a/client/angular.json b/client/angular.json
index 182241fab..c1dd46bda 100644
--- a/client/angular.json
+++ b/client/angular.json
@@ -161,18 +161,23 @@
},
"architect": {
"build": {
- "builder": "@angular-devkit/build-angular:browser",
+ "builder": "@angular/build:application",
"options": {
+ "i18nMissingTranslation": "ignore",
"localize": true,
- "outputPath": "dist",
+ "outputPath": {
+ "base": "dist"
+ },
"index": "src/index.html",
- "main": "src/main.ts",
"tsConfig": "tsconfig.json",
- "polyfills": "src/polyfills.ts",
+ "polyfills": [
+ "src/polyfills.ts"
+ ],
"baseHref": "/",
"stylePreprocessorOptions": {
"includePaths": [
- "src/sass/include"
+ "src/sass/include",
+ "."
]
},
"assets": [
@@ -209,12 +214,14 @@
"@formatjs/intl-pluralrules/should-polyfill"
],
"scripts": [],
- "vendorChunk": true,
"extractLicenses": false,
- "buildOptimizer": false,
"sourceMap": true,
"optimization": false,
- "namedChunks": true
+ "namedChunks": true,
+ "browser": "src/main.ts",
+ "loader": {
+ ".svg": "text"
+ }
},
"configurations": {
"production": {
@@ -223,10 +230,7 @@
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
- "vendorChunk": false,
- "buildOptimizer": true,
- "serviceWorker": true,
- "ngswConfigPath": "src/ngsw-config.json",
+ "serviceWorker": "src/ngsw-config.json",
"budgets": [
{
"type": "initial",
@@ -281,7 +285,7 @@
}
},
"serve": {
- "builder": "@angular-devkit/build-angular:dev-server",
+ "builder": "@angular/build:dev-server",
"options": {
"proxyConfig": "proxy.config.json",
"buildTarget": "PeerTube:build"
@@ -299,7 +303,7 @@
}
},
"extract-i18n": {
- "builder": "@angular-devkit/build-angular:extract-i18n",
+ "builder": "@angular/build:extract-i18n",
"options": {
"buildTarget": "PeerTube:build"
}
diff --git a/client/package.json b/client/package.json
index 1cb378b39..b2c81a73f 100644
--- a/client/package.json
+++ b/client/package.json
@@ -16,40 +16,42 @@
"lint": "npm run lint-ts && npm run lint-scss",
"lint-ts": "eslint --cache --ext .ts src/standalone/**/*.ts && npm run ng lint",
"lint-scss": "stylelint 'src/**/*.scss'",
- "webpack": "webpack",
"eslint": "eslint",
"ng": "ng",
- "webpack-bundle-analyzer": "webpack-bundle-analyzer",
"webdriver-manager": "webdriver-manager",
"ngx-extractor": "ngx-extractor",
"stylelint": "stylelint"
},
+ "browser": {
+ "net": false,
+ "stream": false,
+ "os": false,
+ "util": false
+ },
"workspaces": [
"../packages/*"
],
"typings": "*.d.ts",
"devDependencies": {
- "@angular-devkit/build-angular": "^17.0.9",
- "@angular-eslint/builder": "^17.1.1",
- "@angular-eslint/eslint-plugin": "^17.1.1",
- "@angular-eslint/eslint-plugin-template": "^17.1.1",
- "@angular-eslint/schematics": "^17.1.1",
- "@angular-eslint/template-parser": "^17.1.1",
- "@angular/animations": "^17.0.8",
- "@angular/cdk": "^17.0.4",
- "@angular/cli": "^17.0.9",
- "@angular/common": "^17.0.8",
- "@angular/compiler": "^17.0.8",
- "@angular/compiler-cli": "^17.0.8",
- "@angular/core": "^17.0.8",
- "@angular/forms": "^17.0.8",
- "@angular/localize": "^17.0.8",
- "@angular/platform-browser": "^17.0.8",
- "@angular/platform-browser-dynamic": "^17.0.8",
- "@angular/router": "^17.0.8",
- "@angular/service-worker": "^17.0.8",
- "@babel/core": "^7.18.5",
- "@babel/preset-env": "^7.18.2",
+ "@angular-eslint/builder": "^18.0.1",
+ "@angular-eslint/eslint-plugin": "^18.0.1",
+ "@angular-eslint/eslint-plugin-template": "^18.0.1",
+ "@angular-eslint/schematics": "^18.0.1",
+ "@angular-eslint/template-parser": "^18.0.1",
+ "@angular/animations": "^18.0.4",
+ "@angular/build": "^18.0.5",
+ "@angular/cdk": "^18.0.4",
+ "@angular/cli": "^18.0.5",
+ "@angular/common": "^18.0.4",
+ "@angular/compiler": "^18.0.4",
+ "@angular/compiler-cli": "^18.0.4",
+ "@angular/core": "^18.0.4",
+ "@angular/forms": "^18.0.4",
+ "@angular/localize": "^18.0.4",
+ "@angular/platform-browser": "^18.0.4",
+ "@angular/platform-browser-dynamic": "^18.0.4",
+ "@angular/router": "^18.0.4",
+ "@angular/service-worker": "^18.0.4",
"@formatjs/intl-locale": "^4.0.0",
"@formatjs/intl-pluralrules": "^5.2.2",
"@ng-bootstrap/ng-bootstrap": "^17.0.0",
@@ -58,11 +60,8 @@
"@ngx-loading-bar/http-client": "^6.0.0",
"@ngx-loading-bar/router": "^6.0.0",
"@peertube/maildev": "^1.2.0",
- "@peertube/p2p-media-loader-core": "^1.0.15",
- "@peertube/p2p-media-loader-hlsjs": "^1.0.15",
- "@peertube/peertube-core-utils": "*",
- "@peertube/peertube-models": "*",
- "@peertube/videojs-contextmenu": "^5.5.0",
+ "@peertube/p2p-media-loader-core": "^1.0.19",
+ "@peertube/p2p-media-loader-hlsjs": "^1.0.19",
"@peertube/xliffmerge": "^2.0.3",
"@popperjs/core": "^2.11.5",
"@types/chart.js": "^2.9.37",
@@ -86,22 +85,18 @@
"@wdio/shared-store-service": "^8.10.5",
"@wdio/spec-reporter": "^8.10.5",
"angularx-qrcode": "17.0.1",
- "babel-loader": "^9.1.0",
"bootstrap": "^5.1.3",
"buffer": "^6.0.3",
"chart.js": "^4.3.0",
"chartjs-plugin-zoom": "~2.0.1",
"core-js": "^3.22.8",
- "css-loader": "^7.1.2",
"debug": "^4.3.1",
"eslint": "^8.28.0",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-jsdoc": "^48.1.0",
"eslint-plugin-prefer-arrow": "latest",
"expect-webdriverio": "^4.2.3",
- "hls.js": "~1.3",
- "html-loader": "^5.0.0",
- "html-webpack-plugin": "^5.3.1",
+ "hls.js": "~1.5.11",
"intl-messageformat": "^10.1.0",
"jschannel": "^1.0.2",
"linkify-html": "^4.0.2",
@@ -109,29 +104,21 @@
"lodash-es": "^4.17.4",
"markdown-it": "14.1.0",
"markdown-it-emoji": "^3.0.0",
- "mini-css-extract-plugin": "^2.2.0",
"ngx-uploadx": "^6.1.0",
- "path-browserify": "^1.0.0",
- "postcss": "^8.4.14",
"primeng": "^17.3.1",
- "raw-loader": "^4.0.2",
"rxjs": "^7.3.0",
"sanitize-html": "^2.1.2",
- "sass": "^1.58.1",
- "sass-loader": "^14.1.1",
"sha.js": "^2.4.11",
"socket.io-client": "^4.5.4",
"stylelint": "^16.2.1",
"stylelint-config-sass-guidelines": "^11.0.0",
"tinykeys": "^2.1.0",
- "ts-loader": "^9.3.0",
- "ts-node": "^10.9.1",
"tslib": "^2.4.0",
- "typescript": "~5.2",
+ "typescript": "~5.4.5",
"video.js": "^7.19.2",
- "webpack": "^5.73.0",
- "webpack-bundle-analyzer": "^4.4.2",
- "webpack-cli": "^5.0.1",
+ "vite": "^5.3.1",
+ "vite-plugin-checker": "^0.6.4",
+ "vite-plugin-node-polyfills": "^0.22.0",
"zone.js": "~0.14.2"
},
"dependencies": {}
diff --git a/client/proxy.config.json b/client/proxy.config.json
index 3586efdf3..dc2f8c5ea 100644
--- a/client/proxy.config.json
+++ b/client/proxy.config.json
@@ -31,15 +31,5 @@
"/client/locales": {
"target": "http://127.0.0.1:9000",
"secure": false
- },
- "/!(client)**": {
- "target": "http://127.0.0.1:3000/client/index.html",
- "secure": false,
- "logLevel": "debug"
- },
- "/!(client)**/**": {
- "target": "http://127.0.0.1:3000/client/index.html",
- "secure": false,
- "logLevel": "debug"
}
}
diff --git a/client/src/app/+signup/shared/signup-mascot.component.ts b/client/src/app/+signup/shared/signup-mascot.component.ts
index ef6c99684..86efb43fd 100644
--- a/client/src/app/+signup/shared/signup-mascot.component.ts
+++ b/client/src/app/+signup/shared/signup-mascot.component.ts
@@ -2,11 +2,11 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
import { DomSanitizer } from '@angular/platform-browser'
const images = {
- about: require('!!raw-loader?!../../../assets/images/mascot/register/about.svg').default,
- terms: require('!!raw-loader?!../../../assets/images/mascot/register/terms.svg').default,
- success: require('!!raw-loader?!../../../assets/images/mascot/register/success.svg').default,
- channel: require('!!raw-loader?!../../../assets/images/mascot/register/channel.svg').default,
- account: require('!!raw-loader?!../../../assets/images/mascot/register/account.svg').default
+ about: require('../../../assets/images/mascot/register/about.svg'),
+ terms: require('../../../assets/images/mascot/register/terms.svg'),
+ success: require('../../../assets/images/mascot/register/success.svg'),
+ channel: require('../../../assets/images/mascot/register/channel.svg'),
+ account: require('../../../assets/images/mascot/register/account.svg')
}
export type MascotImageName = keyof typeof images
diff --git a/client/src/app/app.component.ts b/client/src/app/app.component.ts
index 72c75beb0..5e376322c 100644
--- a/client/src/app/app.component.ts
+++ b/client/src/app/app.component.ts
@@ -276,7 +276,7 @@ export class AppComponent implements OnInit, AfterViewInit {
if (this.serverConfig.instance.customizations.javascript) {
try {
/* eslint-disable no-eval */
- eval(this.serverConfig.instance.customizations.javascript)
+ window.eval(this.serverConfig.instance.customizations.javascript)
} catch (err) {
logger.error('Cannot eval custom JavaScript.', err)
}
diff --git a/client/src/app/core/renderer/markdown.service.ts b/client/src/app/core/renderer/markdown.service.ts
index 2abb7e6c0..015917b29 100644
--- a/client/src/app/core/renderer/markdown.service.ts
+++ b/client/src/app/core/renderer/markdown.service.ts
@@ -1,4 +1,4 @@
-import * as MarkdownIt from 'markdown-it'
+import MarkdownIt from 'markdown-it'
import { Injectable } from '@angular/core'
import {
buildVideoLink,
diff --git a/client/src/app/core/rest/rest.service.ts b/client/src/app/core/rest/rest.service.ts
index f07afb7e8..b8684627f 100644
--- a/client/src/app/core/rest/rest.service.ts
+++ b/client/src/app/core/rest/rest.service.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { SortMeta } from 'primeng/api'
import { HttpParams } from '@angular/common/http'
import { Injectable } from '@angular/core'
diff --git a/client/src/app/core/routing/can-deactivate-guard.service.ts b/client/src/app/core/routing/can-deactivate-guard.service.ts
index d88ffab00..7d63793cd 100644
--- a/client/src/app/core/routing/can-deactivate-guard.service.ts
+++ b/client/src/app/core/routing/can-deactivate-guard.service.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { Observable } from 'rxjs'
import { Injectable } from '@angular/core'
import { ConfirmService } from '@app/core/confirm'
diff --git a/client/src/app/core/routing/redirect.service.ts b/client/src/app/core/routing/redirect.service.ts
index 1120e6165..ca9c0cbf2 100644
--- a/client/src/app/core/routing/redirect.service.ts
+++ b/client/src/app/core/routing/redirect.service.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { Injectable } from '@angular/core'
import { NavigationCancel, NavigationEnd, Router } from '@angular/router'
import { logger } from '@root-helpers/logger'
diff --git a/client/src/app/core/routing/scroll.service.ts b/client/src/app/core/routing/scroll.service.ts
index 0966255b3..92b7772a7 100644
--- a/client/src/app/core/routing/scroll.service.ts
+++ b/client/src/app/core/routing/scroll.service.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { pairwise } from 'rxjs'
import { ViewportScroller } from '@angular/common'
import { Injectable } from '@angular/core'
diff --git a/client/src/app/menu/menu.component.ts b/client/src/app/menu/menu.component.ts
index 5ea21e2da..1d8b01124 100644
--- a/client/src/app/menu/menu.component.ts
+++ b/client/src/app/menu/menu.component.ts
@@ -23,7 +23,7 @@ import { LoginLinkComponent } from '@app/shared/shared-main/angular/login-link.c
import { PeertubeModalService } from '@app/shared/shared-main/peertube-modal/peertube-modal.service'
import { NgbDropdown, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'
import { HTMLServerConfig, ServerConfig, UserRight, UserRightType, VideoConstant } from '@peertube/peertube-models'
-import * as debug from 'debug'
+import debug from 'debug'
import { forkJoin, Subscription } from 'rxjs'
import { first, switchMap } from 'rxjs/operators'
import { LanguageChooserComponent } from './language-chooser.component'
diff --git a/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts b/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts
index 22abd94b7..8fabe2abc 100644
--- a/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts
+++ b/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { SortMeta, SharedModule } from 'primeng/api'
import { Component, Input, OnInit, ViewChild } from '@angular/core'
import { ActivatedRoute, Router } from '@angular/router'
diff --git a/client/src/app/shared/shared-forms/advanced-input-filter.component.ts b/client/src/app/shared/shared-forms/advanced-input-filter.component.ts
index 30018371d..2648529de 100644
--- a/client/src/app/shared/shared-forms/advanced-input-filter.component.ts
+++ b/client/src/app/shared/shared-forms/advanced-input-filter.component.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { Subject } from 'rxjs'
import { debounceTime, distinctUntilChanged } from 'rxjs/operators'
import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from '@angular/core'
diff --git a/client/src/app/shared/shared-icons/global-icon.component.ts b/client/src/app/shared/shared-icons/global-icon.component.ts
index 8643dcb9a..7f6b49952 100644
--- a/client/src/app/shared/shared-icons/global-icon.component.ts
+++ b/client/src/app/shared/shared-icons/global-icon.component.ts
@@ -3,82 +3,82 @@ import { HooksService } from '@app/core/plugins/hooks.service'
const icons = {
// misc icons
- 'npm': require('!!raw-loader?!../../../assets/images/misc/npm.svg').default,
- 'markdown': require('!!raw-loader?!../../../assets/images/misc/markdown.svg').default,
- 'language': require('!!raw-loader?!../../../assets/images/misc/language.svg').default,
- 'video-lang': require('!!raw-loader?!../../../assets/images/misc/video-lang.svg').default,
- 'support': require('!!raw-loader?!../../../assets/images/misc/support.svg').default,
- 'peertube-x': require('!!raw-loader?!../../../assets/images/misc/peertube-x.svg').default,
- 'robot': require('!!raw-loader?!../../../assets/images/misc/miscellaneous-services.svg').default, // material ui
- 'videos': require('!!raw-loader?!../../../assets/images/misc/video-library.svg').default, // material ui
- 'history': require('!!raw-loader?!../../../assets/images/misc/history.svg').default, // material ui
- 'subscriptions': require('!!raw-loader?!../../../assets/images/misc/subscriptions.svg').default, // material ui
- 'playlist-add': require('!!raw-loader?!../../../assets/images/misc/playlist-add.svg').default, // material ui
- 'follower': require('!!raw-loader?!../../../assets/images/misc/account-arrow-left.svg').default, // material ui
- 'following': require('!!raw-loader?!../../../assets/images/misc/account-arrow-right.svg').default, // material ui
- 'tip': require('!!raw-loader?!../../../assets/images/misc/tip.svg').default, // material ui
- 'flame': require('!!raw-loader?!../../../assets/images/misc/flame.svg').default,
- 'local': require('!!raw-loader?!../../../assets/images/misc/local.svg').default,
+ 'npm': require('../../../assets/images/misc/npm.svg'),
+ 'markdown': require('../../../assets/images/misc/markdown.svg'),
+ 'language': require('../../../assets/images/misc/language.svg'),
+ 'video-lang': require('../../../assets/images/misc/video-lang.svg'),
+ 'support': require('../../../assets/images/misc/support.svg'),
+ 'peertube-x': require('../../../assets/images/misc/peertube-x.svg'),
+ 'robot': require('../../../assets/images/misc/miscellaneous-services.svg'), // material ui
+ 'videos': require('../../../assets/images/misc/video-library.svg'), // material ui
+ 'history': require('../../../assets/images/misc/history.svg'), // material ui
+ 'subscriptions': require('../../../assets/images/misc/subscriptions.svg'), // material ui
+ 'playlist-add': require('../../../assets/images/misc/playlist-add.svg'), // material ui
+ 'follower': require('../../../assets/images/misc/account-arrow-left.svg'), // material ui
+ 'following': require('../../../assets/images/misc/account-arrow-right.svg'), // material ui
+ 'tip': require('../../../assets/images/misc/tip.svg'), // material ui
+ 'flame': require('../../../assets/images/misc/flame.svg'),
+ 'local': require('../../../assets/images/misc/local.svg'),
// feather icons
- 'copy': require('!!raw-loader?!../../../assets/images/feather/copy.svg').default,
- 'flag': require('!!raw-loader?!../../../assets/images/feather/flag.svg').default,
- 'playlists': require('!!raw-loader?!../../../assets/images/feather/list.svg').default,
- 'syndication': require('!!raw-loader?!../../../assets/images/feather/syndication.svg').default,
- 'help': require('!!raw-loader?!../../../assets/images/feather/help.svg').default,
- 'alert': require('!!raw-loader?!../../../assets/images/feather/alert.svg').default,
- 'globe': require('!!raw-loader?!../../../assets/images/feather/globe.svg').default,
- 'home': require('!!raw-loader?!../../../assets/images/feather/home.svg').default,
- 'trending': require('!!raw-loader?!../../../assets/images/feather/trending.svg').default,
- 'search': require('!!raw-loader?!../../../assets/images/feather/search.svg').default,
- 'upload': require('!!raw-loader?!../../../assets/images/feather/upload.svg').default,
- 'dislike': require('!!raw-loader?!../../../assets/images/feather/dislike.svg').default,
- 'like': require('!!raw-loader?!../../../assets/images/feather/like.svg').default,
- 'no': require('!!raw-loader?!../../../assets/images/feather/no.svg').default,
- 'cloud-download': require('!!raw-loader?!../../../assets/images/feather/cloud-download.svg').default,
- 'clock': require('!!raw-loader?!../../../assets/images/feather/clock.svg').default,
- 'cog': require('!!raw-loader?!../../../assets/images/feather/cog.svg').default,
- 'delete': require('!!raw-loader?!../../../assets/images/feather/delete.svg').default,
- 'bell': require('!!raw-loader?!../../../assets/images/feather/bell.svg').default,
- 'sign-out': require('!!raw-loader?!../../../assets/images/feather/log-out.svg').default,
- 'sign-in': require('!!raw-loader?!../../../assets/images/feather/log-in.svg').default,
- 'download': require('!!raw-loader?!../../../assets/images/feather/download.svg').default,
- 'ownership-change': require('!!raw-loader?!../../../assets/images/feather/share.svg').default,
- 'share': require('!!raw-loader?!../../../assets/images/feather/share-2.svg').default,
- 'channel': require('!!raw-loader?!../../../assets/images/feather/tv.svg').default,
- 'user': require('!!raw-loader?!../../../assets/images/feather/user.svg').default,
- 'user-x': require('!!raw-loader?!../../../assets/images/feather/user-x.svg').default,
- 'users': require('!!raw-loader?!../../../assets/images/feather/users.svg').default,
- 'user-add': require('!!raw-loader?!../../../assets/images/feather/user-plus.svg').default,
- 'add': require('!!raw-loader?!../../../assets/images/feather/plus-circle.svg').default,
- 'cloud-error': require('!!raw-loader?!../../../assets/images/feather/cloud-off.svg').default,
- 'undo': require('!!raw-loader?!../../../assets/images/feather/corner-up-left.svg').default,
- 'circle-tick': require('!!raw-loader?!../../../assets/images/feather/check-circle.svg').default,
- 'more-horizontal': require('!!raw-loader?!../../../assets/images/feather/more-horizontal.svg').default,
- 'more-vertical': require('!!raw-loader?!../../../assets/images/feather/more-vertical.svg').default,
- 'play': require('!!raw-loader?!../../../assets/images/feather/play.svg').default,
- 'p2p': require('!!raw-loader?!../../../assets/images/feather/airplay.svg').default,
- 'fullscreen': require('!!raw-loader?!../../../assets/images/feather/maximize.svg').default,
- 'exit-fullscreen': require('!!raw-loader?!../../../assets/images/feather/minimize.svg').default,
- 'film': require('!!raw-loader?!../../../assets/images/feather/film.svg').default,
- 'edit': require('!!raw-loader?!../../../assets/images/feather/edit-2.svg').default,
- 'external-link': require('!!raw-loader?!../../../assets/images/feather/external-link.svg').default,
- 'eye-open': require('!!raw-loader?!../../../assets/images/feather/eye.svg').default,
- 'eye-close': require('!!raw-loader?!../../../assets/images/feather/eye-off.svg').default,
- 'refresh': require('!!raw-loader?!../../../assets/images/feather/refresh-cw.svg').default,
- 'command': require('!!raw-loader?!../../../assets/images/feather/command.svg').default,
- 'go': require('!!raw-loader?!../../../assets/images/feather/arrow-up-right.svg').default,
- 'cross': require('!!raw-loader?!../../../assets/images/feather/x.svg').default,
- 'tick': require('!!raw-loader?!../../../assets/images/feather/check.svg').default,
- 'columns': require('!!raw-loader?!../../../assets/images/feather/columns.svg').default,
- 'live': require('!!raw-loader?!../../../assets/images/feather/live.svg').default,
- 'repeat': require('!!raw-loader?!../../../assets/images/feather/repeat.svg').default,
- 'chevrons-up': require('!!raw-loader?!../../../assets/images/feather/chevrons-up.svg').default,
- 'message-circle': require('!!raw-loader?!../../../assets/images/feather/message-circle.svg').default,
- 'codesandbox': require('!!raw-loader?!../../../assets/images/feather/codesandbox.svg').default,
- 'award': require('!!raw-loader?!../../../assets/images/feather/award.svg').default,
- 'stats': require('!!raw-loader?!../../../assets/images/feather/stats.svg').default,
- 'shield': require('!!raw-loader?!../../../assets/images/misc/shield.svg').default
+ 'copy': require('../../../assets/images/feather/copy.svg'),
+ 'flag': require('../../../assets/images/feather/flag.svg'),
+ 'playlists': require('../../../assets/images/feather/list.svg'),
+ 'syndication': require('../../../assets/images/feather/syndication.svg'),
+ 'help': require('../../../assets/images/feather/help.svg'),
+ 'alert': require('../../../assets/images/feather/alert.svg'),
+ 'globe': require('../../../assets/images/feather/globe.svg'),
+ 'home': require('../../../assets/images/feather/home.svg'),
+ 'trending': require('../../../assets/images/feather/trending.svg'),
+ 'search': require('../../../assets/images/feather/search.svg'),
+ 'upload': require('../../../assets/images/feather/upload.svg'),
+ 'dislike': require('../../../assets/images/feather/dislike.svg'),
+ 'like': require('../../../assets/images/feather/like.svg'),
+ 'no': require('../../../assets/images/feather/no.svg'),
+ 'cloud-download': require('../../../assets/images/feather/cloud-download.svg'),
+ 'clock': require('../../../assets/images/feather/clock.svg'),
+ 'cog': require('../../../assets/images/feather/cog.svg'),
+ 'delete': require('../../../assets/images/feather/delete.svg'),
+ 'bell': require('../../../assets/images/feather/bell.svg'),
+ 'sign-out': require('../../../assets/images/feather/log-out.svg'),
+ 'sign-in': require('../../../assets/images/feather/log-in.svg'),
+ 'download': require('../../../assets/images/feather/download.svg'),
+ 'ownership-change': require('../../../assets/images/feather/share.svg'),
+ 'share': require('../../../assets/images/feather/share-2.svg'),
+ 'channel': require('../../../assets/images/feather/tv.svg'),
+ 'user': require('../../../assets/images/feather/user.svg'),
+ 'user-x': require('../../../assets/images/feather/user-x.svg'),
+ 'users': require('../../../assets/images/feather/users.svg'),
+ 'user-add': require('../../../assets/images/feather/user-plus.svg'),
+ 'add': require('../../../assets/images/feather/plus-circle.svg'),
+ 'cloud-error': require('../../../assets/images/feather/cloud-off.svg'),
+ 'undo': require('../../../assets/images/feather/corner-up-left.svg'),
+ 'circle-tick': require('../../../assets/images/feather/check-circle.svg'),
+ 'more-horizontal': require('../../../assets/images/feather/more-horizontal.svg'),
+ 'more-vertical': require('../../../assets/images/feather/more-vertical.svg'),
+ 'play': require('../../../assets/images/feather/play.svg'),
+ 'p2p': require('../../../assets/images/feather/airplay.svg'),
+ 'fullscreen': require('../../../assets/images/feather/maximize.svg'),
+ 'exit-fullscreen': require('../../../assets/images/feather/minimize.svg'),
+ 'film': require('../../../assets/images/feather/film.svg'),
+ 'edit': require('../../../assets/images/feather/edit-2.svg'),
+ 'external-link': require('../../../assets/images/feather/external-link.svg'),
+ 'eye-open': require('../../../assets/images/feather/eye.svg'),
+ 'eye-close': require('../../../assets/images/feather/eye-off.svg'),
+ 'refresh': require('../../../assets/images/feather/refresh-cw.svg'),
+ 'command': require('../../../assets/images/feather/command.svg'),
+ 'go': require('../../../assets/images/feather/arrow-up-right.svg'),
+ 'cross': require('../../../assets/images/feather/x.svg'),
+ 'tick': require('../../../assets/images/feather/check.svg'),
+ 'columns': require('../../../assets/images/feather/columns.svg'),
+ 'live': require('../../../assets/images/feather/live.svg'),
+ 'repeat': require('../../../assets/images/feather/repeat.svg'),
+ 'chevrons-up': require('../../../assets/images/feather/chevrons-up.svg'),
+ 'message-circle': require('../../../assets/images/feather/message-circle.svg'),
+ 'codesandbox': require('../../../assets/images/feather/codesandbox.svg'),
+ 'award': require('../../../assets/images/feather/award.svg'),
+ 'stats': require('../../../assets/images/feather/stats.svg'),
+ 'shield': require('../../../assets/images/misc/shield.svg')
}
export type GlobalIconName = keyof typeof icons
diff --git a/client/src/app/shared/shared-main/angular/defer-loading.directive.ts b/client/src/app/shared/shared-main/angular/defer-loading.directive.ts
index 28a4bf437..557402390 100644
--- a/client/src/app/shared/shared-main/angular/defer-loading.directive.ts
+++ b/client/src/app/shared/shared-main/angular/defer-loading.directive.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import {
AfterViewInit,
ChangeDetectorRef,
diff --git a/client/src/app/shared/shared-main/misc/list-overflow.component.ts b/client/src/app/shared/shared-main/misc/list-overflow.component.ts
index 00d778de3..0d75189aa 100644
--- a/client/src/app/shared/shared-main/misc/list-overflow.component.ts
+++ b/client/src/app/shared/shared-main/misc/list-overflow.component.ts
@@ -15,7 +15,7 @@ import {
} from '@angular/core'
import { ScreenService } from '@app/core'
import { NgbDropdown, NgbModal, NgbDropdownAnchor, NgbDropdownMenu } from '@ng-bootstrap/ng-bootstrap'
-import * as debug from 'debug'
+import debug from 'debug'
import { RouterLinkActive, RouterLink } from '@angular/router'
import { NgFor, NgTemplateOutlet, NgIf, NgClass, SlicePipe } from '@angular/common'
diff --git a/client/src/app/shared/shared-search/find-in-bulk.service.ts b/client/src/app/shared/shared-search/find-in-bulk.service.ts
index 20f26a547..62ec76986 100644
--- a/client/src/app/shared/shared-search/find-in-bulk.service.ts
+++ b/client/src/app/shared/shared-search/find-in-bulk.service.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { Observable, Subject } from 'rxjs'
import { filter, first, map } from 'rxjs/operators'
import { Injectable } from '@angular/core'
diff --git a/client/src/app/shared/shared-user-subscription/user-subscription.service.ts b/client/src/app/shared/shared-user-subscription/user-subscription.service.ts
index c46b3b20d..7b84ae509 100644
--- a/client/src/app/shared/shared-user-subscription/user-subscription.service.ts
+++ b/client/src/app/shared/shared-user-subscription/user-subscription.service.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { merge, Observable, of, ReplaySubject, Subject } from 'rxjs'
import { catchError, filter, map, switchMap, tap } from 'rxjs/operators'
import { HttpClient, HttpParams } from '@angular/common/http'
diff --git a/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts b/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts
index 264814e96..18e4ac45b 100644
--- a/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts
+++ b/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { Subscription } from 'rxjs'
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core'
import { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms'
diff --git a/client/src/app/shared/shared-video-miniature/videos-list.component.ts b/client/src/app/shared/shared-video-miniature/videos-list.component.ts
index 81b6488a6..cbd555a72 100644
--- a/client/src/app/shared/shared-video-miniature/videos-list.component.ts
+++ b/client/src/app/shared/shared-video-miniature/videos-list.component.ts
@@ -16,7 +16,7 @@ import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'
import { isLastMonth, isLastWeek, isThisMonth, isToday, isYesterday } from '@peertube/peertube-core-utils'
import { ResultList, UserRight, VideoSortField } from '@peertube/peertube-models'
import { logger } from '@root-helpers/logger'
-import * as debug from 'debug'
+import debug from 'debug'
import { Observable, Subject, Subscription, forkJoin, fromEvent, of } from 'rxjs'
import { concatMap, debounceTime, map, switchMap } from 'rxjs/operators'
import { InfiniteScrollerDirective } from '../shared-main/angular/infinite-scroller.directive'
diff --git a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts
index 77a88ef47..99dd565e6 100644
--- a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts
+++ b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { Subject, Subscription } from 'rxjs'
import { debounceTime, filter } from 'rxjs/operators'
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core'
diff --git a/client/src/app/shared/shared-video-playlist/video-playlist.service.ts b/client/src/app/shared/shared-video-playlist/video-playlist.service.ts
index 3c7414bb7..7777f8a97 100644
--- a/client/src/app/shared/shared-video-playlist/video-playlist.service.ts
+++ b/client/src/app/shared/shared-video-playlist/video-playlist.service.ts
@@ -1,4 +1,4 @@
-import * as debug from 'debug'
+import debug from 'debug'
import { merge, Observable, of, ReplaySubject, Subject } from 'rxjs'
import { catchError, filter, map, share, switchMap, tap } from 'rxjs/operators'
import { HttpClient, HttpContext, HttpParams } from '@angular/common/http'
diff --git a/client/src/assets/player/peertube-player.ts b/client/src/assets/player/peertube-player.ts
index 11dfa01c8..aa3709bd7 100644
--- a/client/src/assets/player/peertube-player.ts
+++ b/client/src/assets/player/peertube-player.ts
@@ -1,4 +1,4 @@
-import '@peertube/videojs-contextmenu'
+import './shared/context-menu'
import './shared/upnext/end-card'
import './shared/upnext/upnext-plugin'
import './shared/stats/stats-card'
@@ -28,6 +28,9 @@ import './shared/mobile/peertube-mobile-plugin'
import './shared/mobile/peertube-mobile-buttons'
import './shared/hotkeys/peertube-hotkeys-plugin'
import './shared/metrics/metrics-plugin'
+import './shared/p2p-media-loader/hls-plugin'
+import './shared/p2p-media-loader/p2p-media-loader-plugin'
+import './shared/web-video/web-video-plugin'
import videojs, { VideoJsPlayer } from 'video.js'
import { logger } from '@root-helpers/logger'
import { PluginsManager } from '@root-helpers/plugins-manager'
@@ -62,17 +65,10 @@ export class PeerTubePlayer {
private videojsDecodeErrors = 0
- private p2pMediaLoaderModule: any
-
private player: VideoJsPlayer
private currentLoadOptions: PeerTubePlayerLoadOptions
- private moduleLoaded = {
- webVideo: false,
- p2pMediaLoader: false
- }
-
constructor (private options: PeerTubePlayerContructorOptions) {
this.pluginsManager = options.pluginsManager
}
@@ -92,7 +88,6 @@ export class PeerTubePlayer {
this.disposeDynamicPluginsIfNeeded()
- await this.lazyLoadModulesIfNeeded()
await this.buildPlayerIfNeeded()
if (this.currentLoadOptions.mode === 'p2p-media-loader') {
@@ -169,7 +164,7 @@ export class PeerTubePlayer {
'liveOptions',
'hls'
])
- }, this.p2pMediaLoaderModule)
+ })
const { hlsjs, p2pMediaLoader } = await hlsOptionsBuilder.getPluginOptions()
@@ -226,7 +221,7 @@ export class PeerTubePlayer {
saveAverageBandwidth(data.bandwidthEstimate)
})
- this.player.contextmenuUI(this.getContextMenuOptions())
+ this.player.contextMenu(this.getContextMenuOptions())
this.displayNotificationWhenOffline()
})
@@ -298,22 +293,6 @@ export class PeerTubePlayer {
}
}
- private async lazyLoadModulesIfNeeded () {
- if (this.currentLoadOptions.mode === 'web-video' && this.moduleLoaded.webVideo !== true) {
- await import('./shared/web-video/web-video-plugin')
- }
-
- if (this.currentLoadOptions.mode === 'p2p-media-loader' && this.moduleLoaded.p2pMediaLoader !== true) {
- const [ p2pMediaLoaderModule ] = await Promise.all([
- import('@peertube/p2p-media-loader-hlsjs'),
- import('./shared/p2p-media-loader/hls-plugin'),
- import('./shared/p2p-media-loader/p2p-media-loader-plugin')
- ])
-
- this.p2pMediaLoaderModule = p2pMediaLoaderModule
- }
- }
-
private async tryToRecoverHLSError (err: any) {
if (err.code === MediaError.MEDIA_ERR_DECODE) {
diff --git a/client/src/assets/player/shared/context-menu/context-menu-item.ts b/client/src/assets/player/shared/context-menu/context-menu-item.ts
new file mode 100644
index 000000000..7df14bed1
--- /dev/null
+++ b/client/src/assets/player/shared/context-menu/context-menu-item.ts
@@ -0,0 +1,38 @@
+import videojs from 'video.js'
+import { ContextMenuItemOptions } from '../../types'
+
+const MenuItem = videojs.getComponent('MenuItem')
+
+class ContextMenuItem extends MenuItem {
+ options_: ContextMenuItemOptions
+
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
+ constructor (player: videojs.Player, options: ContextMenuItemOptions) {
+ super(player, options)
+ }
+
+ handleClick (e: videojs.EventTarget.Event) {
+ super.handleClick(e)
+
+ this.options_.listener(e)
+
+ // Close the containing menu after the call stack clears.
+ setTimeout(() => {
+ this.player().contextMenu().menu.dispose()
+ }, 1)
+ }
+
+ createEl (type: string, props?: any, attrs?: any) {
+ const el = super.createEl(type, props, attrs)
+
+ const newEl = videojs.dom.createEl('span')
+
+ newEl.innerHTML = `${this.localize(this.options_.label)}`
+
+ el.replaceChild(newEl, el.querySelector('.vjs-menu-item-text'))
+
+ return el
+ }
+}
+
+export { ContextMenuItem }
diff --git a/client/src/assets/player/shared/context-menu/context-menu-plugin.ts b/client/src/assets/player/shared/context-menu/context-menu-plugin.ts
new file mode 100644
index 000000000..76edd8b00
--- /dev/null
+++ b/client/src/assets/player/shared/context-menu/context-menu-plugin.ts
@@ -0,0 +1,119 @@
+import videojs, { VideoJsPlayer } from 'video.js'
+import { ContextMenuPluginOptions } from '../../types'
+import { ContextMenu } from './context-menu'
+import { getPointerPosition } from './util'
+
+const Plugin = videojs.getPlugin('plugin')
+
+class ContextMenuPlugin extends Plugin {
+ options_: ContextMenuPluginOptions & videojs.MenuOptions
+
+ menu: ContextMenu
+
+ private onContextMenuBind: (e: TouchEvent & MouseEvent) => void
+
+ constructor (player: videojs.Player, options: ContextMenuPluginOptions & videojs.MenuOptions) {
+ super(player, options)
+
+ this.options_ = options
+
+ // If we have already invoked the plugin, teardown before setting up again.
+ if (this.menu) {
+ this.menu.dispose()
+ this.player.off('contextmenu', this.onContextMenuBind)
+ }
+
+ this.onContextMenuBind = this.onContextMenu.bind(this)
+ this.player.on('contextmenu', this.onContextMenuBind)
+ this.player.ready(() => this.player.addClass('vjs-contextmenu-ui'))
+ }
+
+ private onContextMenu (e: TouchEvent & MouseEvent) {
+ // If this event happens while the custom menu is open, close it and do
+ // nothing else. This will cause native contextmenu events to be intercepted
+ // once again; so, the next time a contextmenu event is encountered, we'll
+ // open the custom menu.
+ if (hasMenu(this.player)) {
+ this.menu.dispose()
+ return
+ }
+
+ if (excludeElements(e.target as HTMLElement)) return
+
+ // Calculate the positioning of the menu based on the player size and
+ // triggering event.
+ const pointerPosition = getPointerPosition(this.player.el() as HTMLElement, e)
+ const playerSize = this.player.el().getBoundingClientRect()
+ const menuPosition = findMenuPosition(pointerPosition, playerSize)
+ // A workaround for Firefox issue where "oncontextmenu" event
+ // leaks "click" event to document https://bugzilla.mozilla.org/show_bug.cgi?id=990614
+ const documentEl = (videojs.browser as any).IS_FIREFOX ? document.documentElement : document
+
+ e.preventDefault()
+
+ const menu = this.menu = new ContextMenu(this.player, {
+ content: this.options_.content,
+ position: menuPosition
+ })
+
+ menu.on('dispose', () => {
+ for (const event of [ 'click', 'tap' ]) {
+ // eslint-disable-next-line @typescript-eslint/unbound-method
+ videojs.off(documentEl as Element, event, menu.dispose)
+ }
+
+ this.player.removeChild(menu)
+ this.menu = undefined
+ })
+
+ this.player.addChild(menu)
+
+ const menuEl = menu.el() as HTMLElement
+ const menuSize = menuEl.getBoundingClientRect()
+ const bodySize = document.body.getBoundingClientRect()
+
+ if (menuSize.right > bodySize.width || menuSize.bottom > bodySize.height) {
+ menuEl.style.left = Math.floor(Math.min(
+ menuPosition.left,
+ this.player.currentWidth() - menu.currentWidth()
+ )) + 'px'
+
+ menuEl.style.top = Math.floor(Math.min(
+ menuPosition.top,
+ this.player.currentHeight() - menu.currentHeight()
+ )) + 'px'
+ }
+
+ for (const event of [ 'click', 'tap' ]) {
+ // eslint-disable-next-line @typescript-eslint/unbound-method
+ videojs.on(documentEl as Element, event, menu.dispose)
+ }
+ }
+}
+
+videojs.registerPlugin('contextMenu', ContextMenuPlugin)
+
+export { ContextMenuPlugin }
+
+// ---------------------------------------------------------------------------
+// Private
+// ---------------------------------------------------------------------------
+
+function hasMenu (player: VideoJsPlayer) {
+ if (!player.usingPlugin('contextMenu')) return false
+
+ return !!player.contextMenu().menu?.el()
+}
+
+function excludeElements (targetEl: HTMLElement) {
+ const tagName = targetEl.tagName.toLowerCase()
+
+ return tagName === 'input' || tagName === 'textarea'
+}
+
+function findMenuPosition (pointerPosition: { x?: number, y?: number }, playerSize: { height: number, width: number }) {
+ return {
+ left: Math.round(playerSize.width * pointerPosition.x),
+ top: Math.round(playerSize.height - (playerSize.height * pointerPosition.y))
+ }
+}
diff --git a/client/src/assets/player/shared/context-menu/context-menu.ts b/client/src/assets/player/shared/context-menu/context-menu.ts
new file mode 100644
index 000000000..9027a0472
--- /dev/null
+++ b/client/src/assets/player/shared/context-menu/context-menu.ts
@@ -0,0 +1,39 @@
+import videojs from 'video.js'
+import { ContextMenuItem } from './context-menu-item'
+import { ContextMenuPluginOptions } from '../../types'
+
+const Menu = videojs.getComponent('Menu')
+
+type ContextMenuOptions = ContextMenuPluginOptions & { position: { left: number, top: number } }
+
+class ContextMenu extends Menu {
+ options_: ContextMenuOptions & videojs.MenuOptions
+
+ constructor (player: videojs.Player, options: ContextMenuOptions) {
+ super(player, { ...options, menuButton: undefined })
+
+ // Each menu component has its own `dispose` method that can be
+ // safely bound and unbound to events while maintaining its context.
+ // eslint-disable-next-line @typescript-eslint/unbound-method
+ this.dispose = videojs.bind(this, this.dispose)
+
+ for (const c of options.content()) {
+ this.addItem(new ContextMenuItem(player, {
+ label: c.label,
+ listener: videojs.bind(player, c.listener)
+ }))
+ }
+ }
+
+ createEl () {
+ const el = super.createEl()
+
+ videojs.dom.addClass(el, 'vjs-contextmenu-ui-menu')
+ el.style.left = this.options_.position.left + 'px'
+ el.style.top = this.options_.position.top + 'px'
+
+ return el
+ }
+}
+
+export { ContextMenu }
diff --git a/client/src/assets/player/shared/context-menu/index.ts b/client/src/assets/player/shared/context-menu/index.ts
new file mode 100644
index 000000000..fed5186ea
--- /dev/null
+++ b/client/src/assets/player/shared/context-menu/index.ts
@@ -0,0 +1,2 @@
+// Thanks & credits: https://github.com/videojs/videojs-contextmenu-ui/
+export * from './context-menu-plugin.js'
diff --git a/client/src/assets/player/shared/context-menu/util.ts b/client/src/assets/player/shared/context-menu/util.ts
new file mode 100644
index 000000000..c69c30ffe
--- /dev/null
+++ b/client/src/assets/player/shared/context-menu/util.ts
@@ -0,0 +1,52 @@
+export function findElPosition (el: HTMLElement) {
+ let box: DOMRect
+
+ if (el.getBoundingClientRect && el.parentNode) {
+ box = el.getBoundingClientRect()
+ }
+
+ if (!box) return { left: 0, top: 0 }
+
+ const docEl = document.documentElement
+ const body = document.body
+
+ const clientLeft = docEl.clientLeft || body.clientLeft || 0
+ const scrollLeft = window.pageXOffset || body.scrollLeft
+ const left = box.left + scrollLeft - clientLeft
+
+ const clientTop = docEl.clientTop || body.clientTop || 0
+ const scrollTop = window.pageYOffset || body.scrollTop
+ const top = box.top + scrollTop - clientTop
+
+ // Android sometimes returns slightly off decimal values, so need to round
+ return {
+ left: Math.round(left),
+ top: Math.round(top)
+ }
+}
+
+export function getPointerPosition (el: HTMLElement, event: TouchEvent & MouseEvent) {
+ const position: { y?: number, x?: number } = {}
+
+ const box = findElPosition(el)
+ const boxW = el.offsetWidth
+ const boxH = el.offsetHeight
+ const boxY = box.top
+ const boxX = box.left
+ let pageY = event.pageY
+ let pageX = event.pageX
+
+ if (event.changedTouches) {
+ pageX = event.changedTouches[0].pageX
+ pageY = event.changedTouches[0].pageY
+ }
+
+ position.y = Math.max(0, Math.min(1, ((boxY - pageY) + boxH) / boxH))
+ position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW))
+
+ return position
+}
+
+export function isFunction (functionToCheck: any) {
+ return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'
+}
diff --git a/client/src/assets/player/shared/p2p-media-loader/redundancy-url-manager.ts b/client/src/assets/player/shared/p2p-media-loader/redundancy-url-manager.ts
index 376efb835..778cbeba1 100644
--- a/client/src/assets/player/shared/p2p-media-loader/redundancy-url-manager.ts
+++ b/client/src/assets/player/shared/p2p-media-loader/redundancy-url-manager.ts
@@ -1,4 +1,3 @@
-import { basename, dirname } from 'path'
import { logger } from '@root-helpers/logger'
class RedundancyUrlManager {
@@ -10,7 +9,7 @@ class RedundancyUrlManager {
removeBySegmentUrl (segmentUrl: string) {
logger.info(`Removing redundancy of segment URL ${segmentUrl}.`)
- const baseUrl = dirname(segmentUrl)
+ const baseUrl = getBaseUrl(segmentUrl)
this.baseUrls = this.baseUrls.filter(u => u !== baseUrl && u !== baseUrl + '/')
}
@@ -24,7 +23,7 @@ class RedundancyUrlManager {
const newBaseUrl = this.baseUrls[i]
const slashPart = newBaseUrl.endsWith('/') ? '' : '/'
- return newBaseUrl + slashPart + basename(url)
+ return newBaseUrl + slashPart + getFilename(url)
}
countBaseUrls () {
@@ -41,3 +40,16 @@ class RedundancyUrlManager {
export {
RedundancyUrlManager
}
+
+// ---------------------------------------------------------------------------
+
+function getFilename (url: string) {
+ return url.split('/').pop()
+}
+
+function getBaseUrl (url: string) {
+ const baseUrl = url.split('/')
+ baseUrl.pop()
+
+ return baseUrl.join('/')
+}
diff --git a/client/src/assets/player/shared/p2p-media-loader/segment-validator.ts b/client/src/assets/player/shared/p2p-media-loader/segment-validator.ts
index 75d483015..efd33e11e 100644
--- a/client/src/assets/player/shared/p2p-media-loader/segment-validator.ts
+++ b/client/src/assets/player/shared/p2p-media-loader/segment-validator.ts
@@ -1,4 +1,3 @@
-import { basename } from 'path'
import { Segment } from '@peertube/p2p-media-loader-core'
import { logger } from '@root-helpers/logger'
import { wait } from '@root-helpers/utils'
@@ -32,7 +31,7 @@ export class SegmentValidator {
this.loadSha256SegmentsPromiseIfNeeded()
- const filename = basename(removeQueryParams(segment.url))
+ const filename = removeQueryParams(segment.url).split('/').pop()
const segmentValue = (await this.segmentJSONPromise)[filename]
diff --git a/client/src/assets/player/shared/player-options-builder/hls-options-builder.ts b/client/src/assets/player/shared/player-options-builder/hls-options-builder.ts
index b7733471b..3cbfcd4b3 100644
--- a/client/src/assets/player/shared/player-options-builder/hls-options-builder.ts
+++ b/client/src/assets/player/shared/player-options-builder/hls-options-builder.ts
@@ -1,5 +1,5 @@
import { HybridLoaderSettings } from '@peertube/p2p-media-loader-core'
-import { HlsJsEngineSettings } from '@peertube/p2p-media-loader-hlsjs'
+import { Engine, HlsJsEngineSettings } from '@peertube/p2p-media-loader-hlsjs'
import { LiveVideoLatencyMode } from '@peertube/peertube-models'
import { logger } from '@root-helpers/logger'
import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage'
@@ -17,10 +17,7 @@ type ConstructorOptions =
export class HLSOptionsBuilder {
- constructor (
- private options: ConstructorOptions,
- private p2pMediaLoaderModule?: any
- ) {
+ constructor (private options: ConstructorOptions) {
}
@@ -50,7 +47,7 @@ export class HLSOptionsBuilder {
'filter:internal.player.p2p-media-loader.options.result',
this.getP2PMediaLoaderOptions({ redundancyUrlManager, segmentValidator })
)
- const loader = new this.p2pMediaLoaderModule.Engine(p2pMediaLoaderConfig).createLoaderClass() as P2PMediaLoader
+ const loader = new Engine(p2pMediaLoaderConfig).createLoaderClass() as unknown as P2PMediaLoader
const p2pMediaLoader: P2PMediaLoaderPluginOptions = {
requiresUserAuth: this.options.requiresUserAuth,
@@ -212,7 +209,8 @@ export class HLSOptionsBuilder {
backBufferLength: 90,
startLevel: -1,
testBandwidth: false,
- debug: false
+ debug: false,
+ enableWorker: false
}
}
diff --git a/client/src/assets/player/types/peertube-videojs-typings.ts b/client/src/assets/player/types/peertube-videojs-typings.ts
index 692009fe2..72b3f2324 100644
--- a/client/src/assets/player/types/peertube-videojs-typings.ts
+++ b/client/src/assets/player/types/peertube-videojs-typings.ts
@@ -20,6 +20,7 @@ import { WebVideoPlugin } from '../shared/web-video/web-video-plugin'
import { PlayerMode } from './peertube-player-options'
import { SegmentValidator } from '../shared/p2p-media-loader/segment-validator'
import { ChaptersPlugin } from '../shared/control-bar/chapters-plugin'
+import { ContextMenuPlugin } from '../shared/context-menu'
declare module 'video.js' {
@@ -51,7 +52,7 @@ declare module 'video.js' {
peertubeResolutions (): PeerTubeResolutionsPlugin
- contextmenuUI (options?: any): any
+ contextMenu (options?: ContextMenuPluginOptions): ContextMenuPlugin
bezels (): BezelsPlugin
peertubeMobile (): PeerTubeMobilePlugin
@@ -141,6 +142,19 @@ type MetricsPluginOptions = {
videoUUID: () => string
}
+type ContextMenuPluginOptions = {
+ content: () => {
+ icon?: string
+ label: string
+ listener: () => void
+ }[]
+}
+
+type ContextMenuItemOptions = {
+ listener: (e: videojs.EventTarget.Event) => void
+ label: string
+}
+
type StoryboardOptions = {
url: string
width: number
@@ -294,8 +308,10 @@ export {
PeerTubePluginOptions,
WebVideoPluginOptions,
P2PMediaLoaderPluginOptions,
+ ContextMenuItemOptions,
PeerTubeResolution,
VideoJSPluginOptions,
+ ContextMenuPluginOptions,
UpNextPluginOptions,
LoadedQualityData,
StoryboardOptions,
diff --git a/client/src/locale/angular.xlf b/client/src/locale/angular.xlf
index c72eb0477..112f89e40 100644
--- a/client/src/locale/angular.xlf
+++ b/client/src/locale/angular.xlf
@@ -1,246 +1,247 @@
-
+
-
+
-
- HH
-
- node_modules/src/ngb-config.ts
- 13
-
- Close
- node_modules/src/ngb-config.ts
- 13
-
-
-
- Close
-
- node_modules/src/ngb-config.ts
- 13
-
-
-
- Select month
-
- node_modules/src/ngb-config.ts
- 13
-
-
- node_modules/src/ngb-config.ts
- 13
-
-
-
- ««
-
- node_modules/src/ngb-config.ts
- 13
-
-
-
- Previous month
-
- node_modules/src/ngb-config.ts
- 13
-
-
- node_modules/src/ngb-config.ts
- 13
-
-
-
-
-
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/alert/alert.ts
+ 67,68
- Slide of
+ Slide of
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/carousel/carousel.ts
+ 146,149Currently selected slide number read by screen reader
-
- Hours
-
- node_modules/src/ngb-config.ts
- 13
-
-
-
- «
-
- node_modules/src/ngb-config.ts
- 13
-
- Previous
- node_modules/src/ngb-config.ts
- 13
-
-
-
- MM
-
- node_modules/src/ngb-config.ts
- 13
-
-
-
- »
-
- node_modules/src/ngb-config.ts
- 13
-
-
-
- Select year
-
- node_modules/src/ngb-config.ts
- 13
-
-
- node_modules/src/ngb-config.ts
- 13
-
-
-
- Next month
-
- node_modules/src/ngb-config.ts
- 13
-
-
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/carousel/carousel.ts
+ 165,168Next
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/carousel/carousel.ts
+ 187,188
-
- Minutes
+
+ Select month
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/datepicker/datepicker-navigation-select.ts
+ 92
+
+
+ node_modules/src/datepicker/datepicker-navigation-select.ts
+ 92
+
+
+
+ Select year
+
+ node_modules/src/datepicker/datepicker-navigation-select.ts
+ 92
+
+
+ node_modules/src/datepicker/datepicker-navigation-select.ts
+ 92
+
+
+
+ Previous month
+
+ node_modules/src/datepicker/datepicker-navigation.ts
+ 91,93
+
+
+ node_modules/src/datepicker/datepicker-navigation.ts
+ 103
+
+
+
+ Next month
+
+ node_modules/src/datepicker/datepicker-navigation.ts
+ 103
+
+
+ node_modules/src/datepicker/datepicker-navigation.ts
+ 103
+
+
+
+ ««
+
+ node_modules/src/pagination/pagination.ts
+ 290,291
+
+
+
+ «
+
+ node_modules/src/pagination/pagination.ts
+ 302,305
+
+
+
+ »
+
+ node_modules/src/pagination/pagination.ts
+ 317»»
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/pagination/pagination.ts
+ 326,328First
- node_modules/src/ngb-config.ts
- 13
-
-
-
- Increment hours
-
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/pagination/pagination.ts
+ 348Previous
- node_modules/src/ngb-config.ts
- 13
-
-
-
- Decrement hours
-
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/pagination/pagination.ts
+ 361Next
- node_modules/src/ngb-config.ts
- 13
-
-
-
- Increment minutes
-
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/pagination/pagination.ts
+ 382,385Last
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/pagination/pagination.ts
+ 399,400
+
+
+
+
+
+ node_modules/src/progressbar/progressbar.ts
+ 65,68
+
+
+
+ HH
+
+ node_modules/src/timepicker/timepicker.ts
+ 235
+
+
+
+ Hours
+
+ node_modules/src/timepicker/timepicker.ts
+ 255
+
+
+
+ MM
+
+ node_modules/src/timepicker/timepicker.ts
+ 271
+
+
+
+ Minutes
+
+ node_modules/src/timepicker/timepicker.ts
+ 290,291
+
+
+
+ Increment hours
+
+ node_modules/src/timepicker/timepicker.ts
+ 302,306
+
+
+
+ Decrement hours
+
+ node_modules/src/timepicker/timepicker.ts
+ 317,321
+
+
+
+ Increment minutes
+
+ node_modules/src/timepicker/timepicker.ts
+ 341,342Decrement minutes
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/timepicker/timepicker.ts
+ 359,360SS
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/timepicker/timepicker.ts
+ 378,379Seconds
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/timepicker/timepicker.ts
+ 396,398Increment seconds
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/timepicker/timepicker.ts
+ 422Decrement seconds
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/timepicker/timepicker.ts
+ 436,437
- node_modules/src/ngb-config.ts
- 13
+ node_modules/src/timepicker/timepicker.ts
+ 441
+
+
+
+ Close
+
+ node_modules/src/toast/toast.ts
+ 94,95Followssrc/app/+about/about-follows/about-follows.component.html
- 3
+ 3,5src/app/+my-library/my-library.component.ts
@@ -251,133 +252,133 @@
Followers of ()src/app/+about/about-follows/about-follows.component.html
- 6
+ 6,8 does not have followers.src/app/+about/about-follows/about-follows.component.html
- 8
+ 8,10Show full listsrc/app/+about/about-follows/about-follows.component.html
- 14
+ 14,15src/app/+about/about-follows/about-follows.component.html
- 26
+ 26,27Subscriptions of ()src/app/+about/about-follows/about-follows.component.html
- 18
+ 18,20 does not have subscriptions.src/app/+about/about-follows/about-follows.component.html
- 20
+ 20,22About src/app/+about/about-instance/about-instance.component.html
- 10
+ 10,12Contact ussrc/app/+about/about-instance/about-instance.component.html
- 12
+ 12,13src/app/+videos/+video-edit/video-add.component.html
- 3
+ 3,4This instance is dedicated to sensitive/NSFW content.src/app/+about/about-instance/about-instance.component.html
- 24
+ 24,25 ADMINISTRATORS & SUSTAINABILITY src/app/+about/about-instance/about-instance.component.html
- 36,38
+ 37,38Who we aresrc/app/+about/about-instance/about-instance.component.html
- 49
+ 49,50Why we created this instancesrc/app/+about/about-instance/about-instance.component.html
- 63
+ 63,64How long we plan to maintain this instancesrc/app/+about/about-instance/about-instance.component.html
- 77
+ 77,78How we will pay for keeping our instance runningsrc/app/+about/about-instance/about-instance.component.html
- 91
+ 91,92 INFORMATION src/app/+about/about-instance/about-instance.component.html
- 105,107
+ 106,107Descriptionsrc/app/+about/about-instance/about-instance.component.html
- 118
+ 118,119src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 62
+ 62,63src/app/+admin/system/runners/runner-list/runner-list.component.html
- 25
+ 25,26src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 55
+ 55,56src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 55
+ 55,56src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.html
- 28
+ 28,29src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
@@ -389,21 +390,21 @@
src/app/+videos/+video-edit/shared/video-edit.component.html
- 44
+ 44,46 MODERATION src/app/+about/about-instance/about-instance.component.html
- 133,135
+ 134Moderation informationsrc/app/+about/about-instance/about-instance.component.html
- 146
+ 146,147src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
@@ -418,7 +419,7 @@
Code of conductsrc/app/+about/about-instance/about-instance.component.html
- 160
+ 160,161src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
@@ -433,7 +434,7 @@
Termssrc/app/+about/about-instance/about-instance.component.html
- 174
+ 174,175src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
@@ -448,28 +449,28 @@
OTHER INFORMATION src/app/+about/about-instance/about-instance.component.html
- 190,192
+ 191Hardware informationsrc/app/+about/about-instance/about-instance.component.html
- 203
+ 203,204FEATURESsrc/app/+about/about-instance/about-instance.component.html
- 212
+ 212,213STATISTICSsrc/app/+about/about-instance/about-instance.component.html
- 225
+ 225,226
@@ -480,10 +481,10 @@
- Contact the administrator(s)
+ Contact the administrator(s)src/app/+about/about-instance/contact-admin-modal.component.html
- 3
+ 3,5
@@ -613,14 +614,14 @@
Your namesrc/app/+about/about-instance/contact-admin-modal.component.html
- 14
+ 14,15Your emailsrc/app/+about/about-instance/contact-admin-modal.component.html
- 24
+ 24,25
@@ -642,14 +643,14 @@
Subjectsrc/app/+about/about-instance/contact-admin-modal.component.html
- 34
+ 34,35Your messagesrc/app/+about/about-instance/contact-admin-modal.component.html
- 43
+ 43,44
@@ -696,7 +697,7 @@
src/app/+videos/+video-edit/shared/thumbnail-manager/thumbnail-manager.component.html
- 20
+ 20,21src/app/+videos/+video-edit/shared/video-caption-add-modal.component.html
@@ -748,11 +749,11 @@
src/app/shared/standalone-upload/upload-progress.component.html
- 15
+ 15,17src/app/shared/standalone-upload/upload-progress.component.html
- 27
+ 27,28src/app/shared/standalone-watched-words/watched-words-list-save-modal.component.html
@@ -786,7 +787,7 @@
The contact form is not enabled on this instance.src/app/+about/about-instance/contact-admin-modal.component.html
- 61
+ 61,63
@@ -807,148 +808,148 @@
Loading instance statistics...src/app/+about/about-instance/instance-statistics.component.html
- 1
+ 1,3By users on this instancesrc/app/+about/about-instance/instance-statistics.component.html
- 4
+ 4,6userssrc/app/+about/about-instance/instance-statistics.component.html
- 11
+ 11,12videossrc/app/+about/about-instance/instance-statistics.component.html
- 21
+ 21,22src/app/+about/about-instance/instance-statistics.component.html
- 65
+ 65,66viewssrc/app/+about/about-instance/instance-statistics.component.html
- 31
+ 31,32commentssrc/app/+about/about-instance/instance-statistics.component.html
- 41
+ 41,42src/app/+about/about-instance/instance-statistics.component.html
- 75
+ 75,76hosted videosrc/app/+about/about-instance/instance-statistics.component.html
- 51
+ 51,52In this instance federationsrc/app/+about/about-instance/instance-statistics.component.html
- 58
+ 58,60followerssrc/app/+about/about-instance/instance-statistics.component.html
- 85
+ 85,86followingsrc/app/+about/about-instance/instance-statistics.component.html
- 95
+ 95,96 This website is powered by PeerTube src/app/+about/about-peertube/about-peertube.component.html
- 2,4
+ 3,4 PeerTube is a self-hosted ActivityPub-federated video streaming platform using P2P directly in your web browser. src/app/+about/about-peertube/about-peertube.component.html
- 9,11
+ 10,11
- It is free and open-source software, under AGPLv3 licence.
+ It is free and open-source software, under AGPLv3 licence. src/app/+about/about-peertube/about-peertube.component.html
- 13,16
+ 14,18
- For more information, please visit joinpeertube.org.
+ For more information, please visit joinpeertube.org. src/app/+about/about-peertube/about-peertube.component.html
- 18,20
+ 19,21Use PeerTube documentationsrc/app/+about/about-peertube/about-peertube.component.html
- 28
+ 28,29 Discover how to setup your account, what is a channel, how to create a playlist and more! src/app/+about/about-peertube/about-peertube.component.html
- 31,33
+ 32,33PeerTube Applicationssrc/app/+about/about-peertube/about-peertube.component.html
- 40
+ 40,41 Discover unofficial Android applications or browser addons! src/app/+about/about-peertube/about-peertube.component.html
- 43,45
+ 44,45Contribute on PeerTubesrc/app/+about/about-peertube/about-peertube.component.html
- 52
+ 52,53 Want to help to improve PeerTube? You can translate the web interface, give your feedback or directly contribute to the code! src/app/+about/about-peertube/about-peertube.component.html
- 55,57
+ 56,57
@@ -962,180 +963,180 @@
PeerTube uses the BitTorrent protocol to share bandwidth between users by default to help lower the load on the server, but ultimately leaves you the choice to switch back to regular streaming exclusively from the server of the video. What follows applies only if you want to keep using the P2P mode of PeerTube. src/app/+about/about-peertube/about-peertube.component.html
- 68,72
+ 69,71
- The main threat to your privacy induced by BitTorrent lies in your IP address being stored in the instance's BitTorrent tracker as long as you download or watch the video.
+ The main threat to your privacy induced by BitTorrent lies in your IP address being stored in the instance's BitTorrent tracker as long as you download or watch the video. src/app/+about/about-peertube/about-peertube.component.html
- 74,77
+ 75,76What are the consequences?src/app/+about/about-peertube/about-peertube.component.html
- 79
+ 79,81 In theory, someone with enough technical skills could create a script that tracks which IP is downloading which video. In practice, this is much more difficult because: src/app/+about/about-peertube/about-peertube.component.html
- 81,84
+ 82,83
- An HTTP request has to be sent on each tracker for each video to spy. If we want to spy all PeerTube's videos, we have to send as many requests as there are videos (so potentially a lot)
+ An HTTP request has to be sent on each tracker for each video to spy. If we want to spy all PeerTube's videos, we have to send as many requests as there are videos (so potentially a lot) src/app/+about/about-peertube/about-peertube.component.html
- 87,90
+ 88,89 For each request sent, the tracker returns random peers at a limited number. For instance, if there are 1000 peers in the swarm and the tracker sends only 20 peers for each request, there must be at least 50 requests sent to know every peer in the swarm src/app/+about/about-peertube/about-peertube.component.html
- 92,96
+ 93,95 Those requests have to be sent regularly to know who starts/stops watching a video. It is easy to detect that kind of behaviour src/app/+about/about-peertube/about-peertube.component.html
- 98,100
+ 99,100
- If an IP address is stored in the tracker, it doesn't mean that the person behind the IP (if this person exists) has watched the video
+ If an IP address is stored in the tracker, it doesn't mean that the person behind the IP (if this person exists) has watched the video src/app/+about/about-peertube/about-peertube.component.html
- 102,105
+ 103,104 The IP address is a vague information: usually, it regularly changes and can represent many persons or entities src/app/+about/about-peertube/about-peertube.component.html
- 107,109
+ 108,109
- Web peers are not publicly accessible: because we use the websocket transport, the protocol is different from classic BitTorrent tracker. When you are in a web browser, you send a signal containing your IP address to the tracker that will randomly choose other peers to forward the information to. See this document for more information
+ Web peers are not publicly accessible: because we use the websocket transport, the protocol is different from classic BitTorrent tracker. When you are in a web browser, you send a signal containing your IP address to the tracker that will randomly choose other peers to forward the information to. See this document for more information src/app/+about/about-peertube/about-peertube.component.html
- 111,116
+ 112,117 The worst-case scenario of an average person spying on their friends is quite unlikely. There are much more effective ways to get that kind of information. src/app/+about/about-peertube/about-peertube.component.html
- 119,122
+ 120,121How does PeerTube compare with YouTube?src/app/+about/about-peertube/about-peertube.component.html
- 124
+ 124,126
- The threats to privacy with YouTube are different from PeerTube's. In YouTube's case, the platform gathers a huge amount of your personal information (not only your IP) to analyze them and track you. Moreover, YouTube is owned by Google/Alphabet, a company that tracks you across many websites (via AdSense or Google Analytics).
+ The threats to privacy with YouTube are different from PeerTube's. In YouTube's case, the platform gathers a huge amount of your personal information (not only your IP) to analyze them and track you. Moreover, YouTube is owned by Google/Alphabet, a company that tracks you across many websites (via AdSense or Google Analytics). src/app/+about/about-peertube/about-peertube.component.html
- 126,130
+ 127,129What can I do to limit the exposure of my IP address?src/app/+about/about-peertube/about-peertube.component.html
- 132
+ 132,134
- Your IP address is public so every time you consult a website, there is a number of actors (in addition to the final website) seeing your IP in their connection logs: ISP/routers/trackers/CDN and more. PeerTube is transparent about it: we warn you that if you want to keep your IP private, you must use a VPN or Tor Browser. Thinking that removing P2P from PeerTube will give you back anonymity doesn't make sense.
+ Your IP address is public so every time you consult a website, there is a number of actors (in addition to the final website) seeing your IP in their connection logs: ISP/routers/trackers/CDN and more. PeerTube is transparent about it: we warn you that if you want to keep your IP private, you must use a VPN or Tor Browser. Thinking that removing P2P from PeerTube will give you back anonymity doesn't make sense. src/app/+about/about-peertube/about-peertube.component.html
- 134,139
+ 135,138What will be done to mitigate this problem?src/app/+about/about-peertube/about-peertube.component.html
- 141
+ 141,143 PeerTube wants to deliver the best countermeasures possible, to give you more choice and render attacks less likely. Here is what we put in place so far: src/app/+about/about-peertube/about-peertube.component.html
- 143,146
+ 144,145We set a limit to the number of peers sent by the trackersrc/app/+about/about-peertube/about-peertube.component.html
- 149
+ 149,150We set a limit on the request frequency received by the trackersrc/app/+about/about-peertube/about-peertube.component.html
- 150
+ 150,151Allow instance admins to disable P2P from the administration interfacesrc/app/+about/about-peertube/about-peertube.component.html
- 151
+ 151,152 Ultimately, remember you can always disable P2P by toggling it in the video player, or just by disabling WebRTC in your browser. src/app/+about/about-peertube/about-peertube.component.html
- 154,157
+ 155,156Instancesrc/app/+about/about.component.html
- 3
+ 3,5src/app/+search/search-filters.component.html
- 217
+ 217,218src/app/shared/shared-moderation/server-blocklist.component.html
- 31
+ 31,32src/app/shared/shared-moderation/server-blocklist.component.html
- 31
+ 31,32PeerTubesrc/app/+about/about.component.html
- 5
+ 5,7Networksrc/app/+about/about.component.html
- 7
+ 7,8
@@ -1153,7 +1154,7 @@
src/app/menu/menu.component.html
- 158
+ 158,159
@@ -1164,7 +1165,7 @@
- About this instance's network
+ About this instance's networksrc/app/+about/routes.ts66
@@ -1174,25 +1175,25 @@
Video channelssrc/app/+accounts/account-video-channels/account-video-channels.component.html
- 1
+ 1,3This account does not have channels.src/app/+accounts/account-video-channels/account-video-channels.component.html
- 5
+ 5,7See this video channelsrc/app/+accounts/account-video-channels/account-video-channels.component.html
- 15
+ 15,16src/app/+accounts/account-video-channels/account-video-channels.component.html
- 20
+ 20,21src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.html
@@ -1200,7 +1201,7 @@
src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.html
- 7
+ 7,8
@@ -1226,31 +1227,31 @@
src/app/+accounts/account-video-channels/account-video-channels.component.html
- 28,30
+ 29,31src/app/+accounts/accounts.component.html
- 38,40
+ 39,41src/app/+my-library/+my-video-channels/my-video-channels.component.html
- 42,44
+ 43,46src/app/+video-channels/video-channels.component.html
- 80,82
+ 81,83src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.html
- 15,17
+ 16,20src/app/shared/shared-video/video-views-counter.component.html
- 2,4
+ 3,6src/app/shared/shared-video/video-views-counter.component.html
- 6,8
+ 7,10
@@ -1280,21 +1281,21 @@
Show this channelsrc/app/+accounts/account-video-channels/account-video-channels.component.html
- 38
+ 38,40
- This channel doesn't have any videos.
+ This channel doesn't have any videos.src/app/+accounts/account-video-channels/account-video-channels.component.html
- 42
+ 42,44
- SHOW THIS CHANNEL >
+ SHOW THIS CHANNEL >src/app/+accounts/account-video-channels/account-video-channels.component.html
- 50
+ 50,51
@@ -1317,7 +1318,7 @@
src/app/+search/search-filters.component.html
- 195
+ 195,196src/app/+video-channels/video-channel-videos/video-channel-videos.component.ts
@@ -1329,32 +1330,32 @@
src/app/menu/quick-settings-modal.component.html
- 12
+ 12,14ACCOUNTsrc/app/+accounts/accounts.component.html
- 8
+ 8,10Bannedsrc/app/+accounts/accounts.component.html
- 21
+ 21,23src/app/+admin/overview/users/user-list/user-list.component.html
- 108
+ 108,109Username copiedsrc/app/+accounts/accounts.component.html
- 30
+ 30,31
@@ -1379,25 +1380,25 @@
Show more... src/app/+accounts/accounts.component.html
- 54,56
+ 55,56src/app/+video-channels/video-channels.component.html
- 100,102
+ 101,102 Manage account src/app/+accounts/accounts.component.html
- 59,61
+ 60,61Search account videossrc/app/+accounts/accounts.component.html
- 78
+ 78,79
@@ -1415,7 +1416,7 @@
src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 268
+ 268,269src/app/+video-channels/video-channels.component.ts
@@ -1473,11 +1474,11 @@
src/app/+admin/overview/users/user-edit/user-edit.component.html
- 4
+ 4,5src/app/+admin/overview/users/user-edit/user-edit.component.html
- 4
+ 4,5src/app/+admin/overview/users/user-list/user-list.component.html
@@ -1492,7 +1493,7 @@
src/app/+my-account/my-account-import-export/my-account-import.component.html
- 34
+ 34,35
@@ -1510,7 +1511,7 @@
src/app/+admin/follows/following-list/following-list.component.html
- 40
+ 40,41src/app/+admin/follows/follows.routes.ts
@@ -1664,7 +1665,7 @@
src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 1
+ 1,3
@@ -1708,7 +1709,7 @@
src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
- 4
+ 4,5
@@ -1751,21 +1752,21 @@
CACHEsrc/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 6
+ 6,7 Some files are not federated, and fetched when necessary. Define their caching policies. src/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 7,9
+ 8,9Number of previews to keep in cachesrc/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 15
+ 15,17
@@ -1779,7 +1780,7 @@
Number of video captions to keep in cachesrc/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 29
+ 29,31
@@ -1793,7 +1794,7 @@
Number of video torrents to keep in cachesrc/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 43
+ 43,45
@@ -1807,7 +1808,7 @@
Number of video storyboard images to keep in cachesrc/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 57
+ 57,59
@@ -1821,81 +1822,81 @@
CUSTOMIZATIONSsrc/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 77
+ 77,78 Slight modifications to your PeerTube instance for when creating a plugin or theme is overkill. src/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 78,80
+ 79,80JavaScriptsrc/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 87
+ 87,88
- Write JavaScript code directly. Example:console.log('my instance is amazing');
+ Write JavaScript code directly. Example:console.log('my instance is amazing');src/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 91,92
+ 91,93
- Write CSS code directly. Example:#custom-css
+ Write CSS code directly. Example:#custom-css
color: red;
-
-Prepend with #custom-css to override styles. Example:#custom-css .logged-in-email
+
+Prepend with #custom-css to override styles. Example:#custom-css .logged-in-email
color: red;
-
-
+
+src/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html
- 111,122
+ 111,123APPEARANCEsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 4
+ 4,6
- Use plugins & themes for more involved changes, or add slight customizations.
+ Use plugins & themes for more involved changes, or add slight customizations. src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 6,8
+ 7,9Themesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 15
+ 15,17src/app/shared/shared-user-settings/user-interface-settings.component.html
- 4
+ 4,6src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 19
+ 19,21src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.html
- 5
+ 5,6src/app/+stats/video/video-stats.component.html
- 2
+ 2,4src/app/+videos/+video-edit/video-add-components/video-go-live.component.html
@@ -1915,15 +1916,15 @@
src/app/shared/shared-main/angular/login-link.component.html
- 1
+ 1,2src/app/shared/shared-moderation/user-ban-modal.component.html
- 3
+ 3,5src/app/shared/shared-user-settings/user-interface-settings.component.html
- 9
+ 9,11src/app/shared/shared-video-miniature/video-download.component.html
@@ -1931,119 +1932,119 @@
src/app/shared/shared-video-miniature/videos-selection.component.html
- 1
+ 1,4Landing pagesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 28
+ 28,30Default trending pagesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 44
+ 44,46Hot videossrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 48
+ 48,49Recent viewssrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 49
+ 49,50Most liked videossrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 50
+ 50,51Global viewssrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 51
+ 51,52Prefer author display name in video miniaturesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 67
+ 67,68Redirect users on single external auth when users click on the login button in menusrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 78
+ 78,79
- ⚠️ You don't have any external auth plugin enabled.
+ ⚠️ You don't have any external auth plugin enabled.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 81
+ 81,82⚠️ You have multiple external auth plugins enabled.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 82
+ 82,83BROADCAST MESSAGEsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 95
+ 95,96 Display a message on your instance src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 96,98
+ 97,98Enable broadcast messagesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 108
+ 108,109Allow users to dismiss the broadcast message src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 115
+ 115,116Broadcast message levelsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 120
+ 120,122infosrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 124
+ 124,125src/app/+admin/system/logs/logs.component.ts
@@ -2054,7 +2055,7 @@
warningsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 125
+ 125,126src/app/+admin/system/logs/logs.component.ts
@@ -2065,7 +2066,7 @@
errorsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 126
+ 126,127src/app/+admin/system/logs/logs.component.ts
@@ -2083,57 +2084,57 @@
NEW USERSsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 151
+ 151,152
- Manage users to set their quota individually.
+ Manage users to set their quota individually. src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 152,154
+ 153,155Enable Signupsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 163
+ 163,164⚠️ This functionality requires a lot of attention and extra moderation.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 166
+ 166,168src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 604
+ 604,605src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 617
+ 617,619Signup requires approval by moderatorssrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 175
+ 175,176Signup requires email verificationsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 182
+ 182,183Signup limitsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 187
+ 187,189
@@ -2144,17 +2145,17 @@
- Signup won't be limited to a fixed number of users.
+ Signup won't be limited to a fixed number of users.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 199
+ 199,200Minimum required age to create an accountsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 203
+ 203,205
@@ -2168,7 +2169,7 @@
Default video quota per usersrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 222
+ 222,224
@@ -2206,130 +2207,130 @@
Default daily upload limit per usersrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 238
+ 238,240Automatically enable video history for new userssrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 255
+ 255,256Import jobs concurrencysrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 278
+ 278,279allows to import multiple videos in parallel. ⚠️ Requires a PeerTube restart.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 279
+ 279,281jobs in parallelsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 283
+ 283,284src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 199
+ 199,200Allow import with HTTP URL (e.g. YouTube)src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 292
+ 292,293
- ⚠️ If enabled, we recommend to use a HTTP proxy to prevent private URL access from your PeerTube server
+ ⚠️ If enabled, we recommend to use a HTTP proxy to prevent private URL access from your PeerTube serversrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 295
+ 295,296Allow import with a torrent file or a magnet URIsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 303
+ 303,304
- ⚠️ We don't recommend to enable this feature if you don't trust your users
+ ⚠️ We don't recommend to enable this feature if you don't trust your userssrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 306
+ 306,307Allow channel synchronization with channel of other platforms like YouTubesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 317
+ 317,318 ⛔ You need to allow import with HTTP URL to be able to activate this feature. src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 320,322
+ 321Block new videos automaticallysrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 337
+ 337,338Unless a user is marked as trusted, their videos will stay private until a moderator reviews them.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 340
+ 340,341Allow users to upload a new version of their videosrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 354
+ 354,355Enable video storyboardssrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 366
+ 366,367Generate storyboards of local videos using ffmpeg so users can see the video preview in the player while scrubbing the videosrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 369
+ 369,370VIDEO CHANNELSsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 380
+ 380,381Max video channels per usersrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 385
+ 385,387
@@ -2343,266 +2344,266 @@
SEARCHsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 402
+ 402,403Allow users to do remote URI/handle searchsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 413
+ 413,414
- Allow your users to look up remote videos/actors that may not be federated with your instance
+ Allow your users to look up remote videos/actors that may not be federated with your instancesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 416
+ 416,417Allow anonymous to do remote URI/handle searchsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 424
+ 424,425
- Allow anonymous users to look up remote videos/actors that may not be federated with your instance
+ Allow anonymous users to look up remote videos/actors that may not be federated with your instancesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 427
+ 427,428Enable global searchsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 438
+ 438,439⚠️ This functionality depends heavily on the moderation of instances followed by the search index you select.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 441
+ 441,443
- You should only use moderated search indexes in production, or host your own.
+ You should only use moderated search indexes in production, or host your own. src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 443,445
+ 444,445Search index URLsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 450
+ 450,452Disable local search in search barsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 463
+ 463,464Search bar uses the global search index by defaultsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 470
+ 470,471Otherwise the local search stays used by defaultsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 473
+ 473,474USER IMPORT/EXPORTsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 491
+ 491,492Allow your users to import a data archivesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 501
+ 501,502
- Video quota is checked on import so the user doesn't upload a too big archive file
+ Video quota is checked on import so the user doesn't upload a too big archive filesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 504
+ 504,505Video quota (daily quota is not taken into account) is also checked for each video when PeerTube is processing the importsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 505
+ 505,506Allow your users to export their datasrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 519
+ 519,520Users can export their PeerTube data in a .zip for backup or re-import. Only one export at a time is allowed per usersrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 522
+ 522,523Max user video quota allowed to generate the exportsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 528
+ 528,530If the user decides to include the video files in the archivesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 530
+ 530,532User export expirationsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 544
+ 544,546The archive file is deleted after this period.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 551
+ 551,553FEDERATIONsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 567
+ 567,568
- Manage relations with other instances.
+ Manage relations with other instances. src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 568,570
+ 569,571Other instances can follow yourssrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 581
+ 581,582Manually approve new instance followerssrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 588
+ 588,589Automatically follow back instancessrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 601
+ 601,602Automatically follow instances of a public indexsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 614
+ 614,615
- See the documentation for more information about the expected URL
+ See the documentation for more information about the expected URL src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 619,621
+ 620,621Index URLsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 626
+ 626,627ADMINISTRATORSsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 646
+ 646,647Admin emailsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 652
+ 652,654Enable contact formsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 665
+ 665,666TWITTER/Xsrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 674
+ 674,676 Extra configuration required by Twitter/X. All other social media (Facebook, Mastodon, etc.) are supported out of the box. src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 676,678
+ 677,678Your Twitter/X usernamesrc/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 687
+ 687,689Indicates the Twitter/X account for the website or platform where the content was published.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 690
+ 690,692
- This is just an extra information injected in PeerTube HTML that is required by Twitter/X. If you don't have a Twitter/X account, just leave the default value.
+ This is just an extra information injected in PeerTube HTML that is required by Twitter/X. If you don't have a Twitter/X account, just leave the default value.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html
- 692
+ 692,693
@@ -2638,7 +2639,7 @@
- You enabled signup: we automatically enabled the "Block new videos automatically" checkbox of the "Videos" section just below.
+ You enabled signup: we automatically enabled the "Block new videos automatically" checkbox of the "Videos" section just below.src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.ts181
@@ -2652,7 +2653,7 @@
- A <code>.mp4</code> that keeps the original audio track, with no video
+ A <code>.mp4</code> that keeps the original audio track, with no videosrc/app/+admin/config/edit-custom-config/edit-configuration.service.ts19
@@ -2726,18 +2727,18 @@
src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 3,5
+ 4,7Homepagesrc/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 12
+ 12,14src/app/+admin/config/edit-custom-config/edit-homepage.component.html
- 13
+ 13,14src/app/+home/routes.ts
@@ -2748,67 +2749,67 @@
Informationsrc/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 20
+ 20,22Basicsrc/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 29
+ 29,31VOD Transcodingsrc/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 38
+ 38,40Live streamingsrc/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 47
+ 47,49src/app/shared/shared-instance/instance-features-table.component.html
- 66
+ 66,67Advancedsrc/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 56
+ 56,58
- There are errors in the form:
+ There are errors in the form: src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 71,78
+ 72,81
- You cannot allow live replay if you don't enable transcoding.
+ You cannot allow live replay if you don't enable transcoding. src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 81,83
+ 82,83
- You cannot change the server configuration because it's managed externally.
+ You cannot change the server configuration because it's managed externally. src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 85,87
+ 86,87Update configurationsrc/app/+admin/config/edit-custom-config/edit-custom-config.component.html
- 90
+ 90,91
@@ -2822,125 +2823,125 @@
INSTANCE HOMEPAGEsrc/app/+admin/config/edit-custom-config/edit-homepage.component.html
- 7
+ 7,8INSTANCEsrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 7
+ 7,8Square iconsrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 12
+ 12,14Square icon can be used on your custom homepage.src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 15
+ 15,16Bannersrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 26
+ 26,28Banner is displayed in the about, login and registration pages and be used on your custom homepage.src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 29
+ 29,30
- It can also be displayed on external websites to promote your instance, such as JoinPeerTube.org.
+ It can also be displayed on external websites to promote your instance, such as JoinPeerTube.org.src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 30
+ 30,31Namesrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 40
+ 40,42src/app/+admin/system/runners/runner-list/runner-list.component.html
- 24
+ 24,25src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 29
+ 29,31src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 29
+ 29,31Short descriptionsrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 51
+ 51,53Main instance categoriessrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 75
+ 75,77Add a new categorysrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 82
+ 82,83src/app/shared/shared-forms/select/select-categories.component.html
- 5
+ 5,6Main languages you/your moderators speaksrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 89
+ 89,91Add a new languagesrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 96
+ 96,97src/app/shared/shared-forms/select/select-languages.component.html
- 6
+ 6,7MODERATION & NSFWsrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 107
+ 107,108
- Manage users to build a moderation team.
+ Manage users to build a moderation team. src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 108,110
+ 109,110
@@ -2951,35 +2952,35 @@
- Enabling it will allow other administrators to know that you are mainly federating sensitive content. Moreover, the NSFW checkbox on video upload will be automatically checked by default.
+ Enabling it will allow other administrators to know that you are mainly federating sensitive content. Moreover, the NSFW checkbox on video upload will be automatically checked by default. src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 121,124
+ 122,123Policy on videos containing sensitive contentsrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 130
+ 130,132
- With Hide or Blur thumbnails, a confirmation will be requested to watch the video.
+ With Hide or Blur thumbnails, a confirmation will be requested to watch the video. src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 134,136
+ 135,136src/app/shared/shared-user-settings/user-video-settings.component.html
- 7,9
+ 8,9Hidesrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 142
+ 142,143src/app/+admin/overview/users/user-edit/user-password.component.html
@@ -2991,51 +2992,51 @@
src/app/shared/shared-user-settings/user-video-settings.component.html
- 16
+ 16,17src/app/shared/shared-video-miniature/video-filters-header.component.html
- 97
+ 97,98Blur thumbnailssrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 143
+ 143,144src/app/shared/shared-user-settings/user-video-settings.component.html
- 17
+ 17,18Displaysrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 144
+ 144,145src/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html
- 8
+ 8,10src/app/shared/shared-user-settings/user-video-settings.component.html
- 18
+ 18,19Who moderates the instance? What is the policy regarding NSFW videos? Political videos? etcsrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 171
+ 171,173YOU AND YOUR INSTANCEsrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 184
+ 184,185
@@ -3049,7 +3050,7 @@
A single person? A non-profit? A company?src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 191
+ 191,193
@@ -3063,7 +3064,7 @@
To share your personal videos? To open registrations and allow people to upload what they want?src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 201
+ 201,203
@@ -3074,10 +3075,10 @@
- It's important to know for users who want to register on your instance
+ It's important to know for users who want to register on your instancesrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 211
+ 211,213
@@ -3091,28 +3092,28 @@
With your own funds? With user donations? Advertising?src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 221
+ 221,223OTHER INFORMATIONsrc/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 234
+ 234,235What server/hardware does the instance run on?src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 240
+ 240,241i.e. 2vCore 2GB RAM, a direct the link to the server you rent, etc.src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
- 241
+ 241,243
@@ -3197,7 +3198,7 @@
LIVEsrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 5
+ 5,7src/app/shared/shared-thumbnail/video-thumbnail.component.html
@@ -3208,7 +3209,7 @@
Enable users of your instance to stream live. src/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 7,9
+ 8,9
@@ -3222,42 +3223,42 @@
⚠️ Enabling live streaming requires trust in your users and extra moderation worksrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 23
+ 23,24If enabled, your server needs to accept incoming TCP traffic on port src/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 24
+ 24,25Allow your users to automatically publish a replay of their livesrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 32
+ 32,33Allow your users to change live latencysrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 40
+ 40,41 Small latency disables P2P and high latency can increase P2P ratio src/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 42,44
+ 43Max simultaneous lives created on your instancesrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 49
+ 49,51
@@ -3275,32 +3276,32 @@
Max simultaneous lives created per usersrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 62
+ 62,63Max live durationsrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 74
+ 74,76TRANSCODINGsrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 93
+ 93,94src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 21
+ 21,23 Same as VOD transcoding, transcoding live streams so that they are in a streamable form that any device can play. Requires a beefy CPU, and then some. src/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 94,96
+ 95,96
@@ -3314,77 +3315,77 @@
Output formatssrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 115
+ 115,117Live resolutions to generatesrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 118
+ 118,120Also transcode original resolutionsrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 138
+ 138,139
- Even if it's above your maximum enabled resolution
+ Even if it's above your maximum enabled resolution src/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 140,142
+ 141Enable remote runners for livessrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 152
+ 152,153
- Use remote runners to process live transcoding. Remote runners has to register on your instance first.
+ Use remote runners to process live transcoding. Remote runners has to register on your instance first. src/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 155,158
+ 156,157Live transcoding threadssrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 164
+ 164,166 will claim at most with VOD transcoding src/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 167,169
+ 168,169 will claim at least with VOD transcoding src/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 171,173
+ 172,173Live transcoding profilesrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 186
+ 186,187new live transcoding profiles can be added by PeerTube pluginssrc/app/+admin/config/edit-custom-config/edit-live-configuration.component.html
- 187
+ 187,189
@@ -3449,24 +3450,24 @@
- Estimating a server's capacity to transcode and stream videos isn't easy and we can't tune PeerTube automatically.
+ Estimating a server's capacity to transcode and stream videos isn't easy and we can't tune PeerTube automatically. src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 8,10
+ 9,10
- However, you may want to read our guidelines before tweaking the following values.
+ However, you may want to read our guidelines before tweaking the following values. src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 12,14
+ 13,14 Process uploaded videos so that they are in a streamable form that any device can play. Though costly in resources, this is a critical part of PeerTube, so tread carefully. src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 23,26
+ 24,25
@@ -3480,217 +3481,217 @@
Inputsrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 42
+ 42,44Allow additional extensionssrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 47
+ 47,48Allows users to upload videos with additional extensions than .mp4, .ogv and .webm (for example: .avi, .mov, .mkv etc).src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 50
+ 50,51Allow audio files uploadsrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 58
+ 58,59Allows users to upload .mp3, .ogg, .wma, .flac, .aac, or .ac3 audio files.src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 61
+ 61,62The file will be merged in a still image video with the preview file on upload.src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 62
+ 62,63Keep a version of the input filesrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 70
+ 70,71If enabled, the input file is not deleted after transcoding but moved in a dedicated folder or object storagesrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 73
+ 73,74Outputsrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 80
+ 80,82Web Videos enabledsrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 86
+ 86,87If you also enabled HLS support, it will multiply videos storage by 2src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 90
+ 90,91HLS with P2P support enabledsrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 101
+ 101,102
- Requires ffmpeg >= 4.1Generate HLS playlists and fragmented MP4 files resulting in a better playback than with Web Videos:Resolution change is smootherFaster playback especially with long videosMore stable playback (less bugs/infinite loading)If you also enabled Web Videos support, it will multiply videos storage by 2
+ Requires ffmpeg >= 4.1Generate HLS playlists and fragmented MP4 files resulting in a better playback than with Web Videos:Resolution change is smootherFaster playback especially with long videosMore stable playback (less bugs/infinite loading)If you also enabled Web Videos support, it will multiply videos storage by 2src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 106,115
+ 106,116Resolutions to generatesrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 123
+ 123,125Always transcode original resolutionsrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 128
+ 128,129 The original file resolution will be the default target if no option is selected. src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 132,134
+ 133Enable remote runners for VODsrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 159
+ 159,160
- Use remote runners to process VOD transcoding. Remote runners has to register on your instance first.
+ Use remote runners to process VOD transcoding. Remote runners has to register on your instance first. src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 162,165
+ 163,164Transcoding threadssrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 171
+ 171,173 will claim at most with live transcoding src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 174,176
+ 175,176 will claim at least with live transcoding src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 178,180
+ 179,180Transcoding jobs concurrencysrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 194
+ 194,195allows to transcode multiple files in parallel. ⚠️ Requires a PeerTube restartsrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 195
+ 195,197Transcoding profilesrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 206
+ 206,207new transcoding profiles can be added by PeerTube pluginssrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 207
+ 207,209VIDEO STUDIOsrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 226
+ 226,227 Allows your users to edit their video (cut, add intro/outro, add a watermark etc) src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 227,229
+ 228,229Enable video studiosrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 238
+ 238,239⚠️ You need to enable transcoding first to enable video studiosrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 241
+ 241,242Enable remote runners for studiosrc/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 249
+ 249,250
- Use remote runners to process studio transcoding tasks. Remote runners has to register on your instance first.
+ Use remote runners to process studio transcoding tasks. Remote runners has to register on your instance first. src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html
- 252,255
+ 253,254
@@ -3922,11 +3923,11 @@
Actionssrc/app/+admin/follows/followers-list/followers-list.component.html
- 34
+ 34,35src/app/+admin/moderation/registration-list/registration-list.component.html
- 38
+ 38,39src/app/+admin/moderation/registration-list/registration-list.component.html
@@ -3934,7 +3935,7 @@
src/app/+admin/moderation/video-block-list/video-block-list.component.html
- 27
+ 27,28src/app/+admin/moderation/video-block-list/video-block-list.component.html
@@ -3942,11 +3943,11 @@
src/app/+admin/overview/videos/video-list.component.html
- 41
+ 41,42src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
- 29
+ 29,30src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
@@ -3954,7 +3955,7 @@
src/app/+admin/system/runners/runner-list/runner-list.component.html
- 22
+ 22,23src/app/+admin/system/runners/runner-list/runner-list.component.html
@@ -3962,7 +3963,7 @@
src/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html
- 24
+ 24,25src/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html
@@ -3970,15 +3971,15 @@
src/app/+my-library/my-ownership/my-ownership.component.html
- 12
+ 12,13src/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.html
- 33
+ 33,34src/app/shared/shared-abuse-list/abuse-list-table.component.html
- 21
+ 21,22src/app/shared/shared-abuse-list/abuse-list-table.component.html
@@ -3986,7 +3987,7 @@
src/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html
- 35
+ 35,36src/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html
@@ -3994,7 +3995,7 @@
src/app/shared/standalone-watched-words/watched-words-list-admin-owner.component.html
- 29
+ 29,30src/app/shared/standalone-watched-words/watched-words-list-admin-owner.component.html
@@ -4005,11 +4006,11 @@
Followersrc/app/+admin/follows/followers-list/followers-list.component.html
- 35
+ 35,36
- State
+ State src/app/+admin/follows/followers-list/followers-list.component.html36,37
@@ -4028,7 +4029,7 @@
src/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.html
- 37
+ 37,38src/app/shared/shared-abuse-list/abuse-list-table.component.html
@@ -4036,14 +4037,14 @@
- Score
+ Score src/app/+admin/follows/followers-list/followers-list.component.html37,38
- Created
+ Created src/app/+admin/follows/followers-list/followers-list.component.html38,40
@@ -4054,7 +4055,7 @@
src/app/+admin/system/jobs/jobs.component.html
- 56
+ 56,57src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
@@ -4070,11 +4071,11 @@
src/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.html
- 38
+ 38,39src/app/+my-library/my-video-imports/my-video-imports.component.html
- 32
+ 32,34src/app/shared/shared-abuse-list/abuse-list-table.component.html
@@ -4157,33 +4158,33 @@
Acceptedsrc/app/+admin/follows/followers-list/followers-list.component.html
- 62
+ 62,63src/app/+admin/follows/following-list/following-list.component.html
- 64
+ 64,65Pendingsrc/app/+admin/follows/followers-list/followers-list.component.html
- 63
+ 63,64src/app/+admin/follows/following-list/following-list.component.html
- 65
+ 65,66Rejectedsrc/app/+admin/follows/followers-list/followers-list.component.html
- 64
+ 64,65src/app/+admin/follows/following-list/following-list.component.html
- 66
+ 66,67
@@ -4194,7 +4195,7 @@
- Your instance doesn't have any follower.
+ Your instance doesn't have any follower.src/app/+admin/follows/followers-list/followers-list.component.html77
@@ -4280,7 +4281,7 @@
src/app/+videos/+video-edit/shared/video-edit.component.html
- 196
+ 196,197src/app/+videos/+video-watch/shared/comment/video-comments.component.ts
@@ -4369,7 +4370,7 @@
Followsrc/app/+admin/follows/following-list/follow-modal.component.html
- 3
+ 3,5src/app/+admin/follows/following-list/follow-modal.component.html
@@ -4381,17 +4382,17 @@
- 1 host (without "http://"), account handle or channel handle per line
+ 1 host (without "http://"), account handle or channel handle per linesrc/app/+admin/follows/following-list/follow-modal.component.html
- 13
+ 13,15 It seems that you are not on a HTTPS server. Your webserver needs to have TLS activated in order to follow servers. src/app/+admin/follows/following-list/follow-modal.component.html
- 29,31
+ 30,31
@@ -4412,11 +4413,11 @@
Actionsrc/app/+admin/follows/following-list/following-list.component.html
- 39
+ 39,40src/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html
- 30
+ 30,31src/app/shared/shared-moderation/account-blocklist.component.html
@@ -4436,7 +4437,7 @@
- Redundancy allowed
+ Redundancy allowed src/app/+admin/follows/following-list/following-list.component.html43,45
@@ -4531,76 +4532,76 @@
My videos duplicated by remote instancessrc/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html
- 12
+ 12,13Remote videos duplicated by my instancesrc/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html
- 13
+ 13,14More informationsrc/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html
- 28
+ 28,29src/app/+admin/moderation/registration-list/registration-list.component.html
- 35
+ 35,36src/app/+admin/moderation/video-block-list/video-block-list.component.html
- 24
+ 24,25src/app/+admin/overview/users/user-list/user-list.component.html
- 40
+ 40,41src/app/+admin/overview/videos/video-list.component.html
- 38
+ 38,39src/app/+admin/system/jobs/jobs.component.html
- 49
+ 49,50src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
- 26
+ 26,27src/app/+my-library/my-video-imports/my-video-imports.component.html
- 26
+ 26,27src/app/+videos/+video-watch/shared/information/privacy-concerns.component.html
- 10
+ 10,11src/app/shared/shared-abuse-list/abuse-list-table.component.html
- 18
+ 18,19src/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html
- 32
+ 32,33src/app/shared/standalone-watched-words/watched-words-list-admin-owner.component.html
- 26
+ 26,27Strategysrc/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html
- 31
+ 31,32
- Video
+ Video src/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html32,33
@@ -4614,7 +4615,7 @@
Total sizesrc/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html
- 33
+ 33,34src/app/+admin/overview/users/user-list/user-list.component.ts
@@ -4636,7 +4637,7 @@
- Your instance doesn't mirror any video.
+ Your instance doesn't mirror any video.src/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html82
@@ -4653,14 +4654,14 @@
Enabled strategies statssrc/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html
- 92
+ 92,94 No redundancy strategy is enabled on your instance. src/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html
- 96,98
+ 97,98
@@ -4720,66 +4721,66 @@
- Accept registrationReject registration
+ Accept registrationReject registrationsrc/app/+admin/moderation/registration-list/process-registration-modal.component.html
- 4,5
+ 4,8 Registration email has not been verified. Email delivery has been disabled by default. src/app/+admin/moderation/registration-list/process-registration-modal.component.html
- 16,18
+ 17,18
- Accepting registration will create the account and channel.
+ Accepting registration will create the account and channel. src/app/+admin/moderation/registration-list/process-registration-modal.component.html
- 23,24
+ 23,26
- An email will be sent to explaining its account has been created with the moderation response you'll write below.
+ An email will be sent to explaining its account has been created with the moderation response you'll write below. src/app/+admin/moderation/registration-list/process-registration-modal.component.html
- 26,28
+ 27,30
- Emails are not enabled on this instance so PeerTube won't be able to send an email to explaining its account has been created.
+ Emails are not enabled on this instance so PeerTube won't be able to send an email to explaining its account has been created. src/app/+admin/moderation/registration-list/process-registration-modal.component.html
- 30,32
+ 31,33
- An email will be sent to explaining its registration request has been rejected with the moderation response you'll write below.
+ An email will be sent to explaining its registration request has been rejected with the moderation response you'll write below. src/app/+admin/moderation/registration-list/process-registration-modal.component.html
- 36,38
+ 37,40
- Emails are not enabled on this instance so PeerTube won't be able to send an email to explaining its registration request has been rejected.
+ Emails are not enabled on this instance so PeerTube won't be able to send an email to explaining its registration request has been rejected. src/app/+admin/moderation/registration-list/process-registration-modal.component.html
- 40,42
+ 41,43Send a message to the usersrc/app/+admin/moderation/registration-list/process-registration-modal.component.html
- 47
+ 47,49Prevent email from being sent to the usersrc/app/+admin/moderation/registration-list/process-registration-modal.component.html
- 62
+ 62,63
@@ -4842,34 +4843,34 @@
Accountsrc/app/+admin/moderation/registration-list/registration-list.component.html
- 40
+ 40,41src/app/shared/shared-moderation/account-blocklist.component.html
- 23
+ 23,24src/app/shared/shared-moderation/account-blocklist.component.html
- 23
+ 23,24src/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html
- 37
+ 37,38Emailsrc/app/+admin/moderation/registration-list/registration-list.component.html
- 41
+ 41,42src/app/+admin/overview/users/user-edit/user-edit.component.html
- 112
+ 112,113src/app/+admin/overview/users/user-edit/user-edit.component.html
- 112
+ 112,113src/app/+admin/overview/users/user-list/user-list.component.ts
@@ -4877,72 +4878,72 @@
src/app/+login/login.component.html
- 147
+ 147,148src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.html
- 7
+ 7,8src/app/+signup/+register/steps/register-step-user.component.html
- 48
+ 48,50src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html
- 6
+ 6,8Channelsrc/app/+admin/moderation/registration-list/registration-list.component.html
- 42
+ 42,43src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 72
+ 72,74src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 72
+ 72,74src/app/+videos/+video-edit/shared/video-edit.component.html
- 65
+ 65,66src/app/+videos/+video-edit/video-add-components/video-go-live.component.html
- 6
+ 6,7src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
- 30
+ 30,31src/app/+videos/+video-edit/video-add-components/video-import-url.component.html
- 26
+ 26,27src/app/+videos/+video-edit/video-add-components/video-upload.component.html
- 19
+ 19,20Registration reasonsrc/app/+admin/moderation/registration-list/registration-list.component.html
- 43
+ 43,44Moderation responsesrc/app/+admin/moderation/registration-list/registration-list.component.html
- 45
+ 45,46
- Requested on
+ Requested on src/app/+admin/moderation/registration-list/registration-list.component.html46,48
@@ -4952,14 +4953,14 @@
Registration reason:src/app/+admin/moderation/registration-list/registration-list.component.html
- 118
+ 118,119Moderation response:src/app/+admin/moderation/registration-list/registration-list.component.html
- 123
+ 123,124
@@ -5022,22 +5023,22 @@
Sensitivesrc/app/+admin/moderation/video-block-list/video-block-list.component.html
- 30
+ 30,31Unfederatedsrc/app/+admin/moderation/video-block-list/video-block-list.component.html
- 31
+ 31,32src/app/+admin/moderation/video-block-list/video-block-list.component.html
- 66
+ 66,67
- Date
+ Date src/app/+admin/moderation/video-block-list/video-block-list.component.html32,34
@@ -5055,7 +5056,7 @@
No more information is available for this rowsrc/app/+admin/moderation/video-block-list/video-block-list.component.html
- 39
+ 39,40
@@ -5069,18 +5070,18 @@
NSFWsrc/app/+admin/moderation/video-block-list/video-block-list.component.html
- 62
+ 62,63src/app/+admin/overview/videos/video-list.component.html
- 82
+ 82,84Block reason:src/app/+admin/moderation/video-block-list/video-block-list.component.html
- 81
+ 81,82
@@ -5252,14 +5253,14 @@
Video name/description and comments that contain any of the watched words are automatically tagged with the name of the list.src/app/+admin/moderation/watched-words-list/watched-words-list-admin.component.html
- 6
+ 6,7These automatic tags can be used to filter comments and videos.src/app/+admin/moderation/watched-words-list/watched-words-list-admin.component.html
- 7
+ 7,9
@@ -5273,7 +5274,7 @@
This view also shows comments from muted accounts.src/app/+admin/overview/comments/video-comment-list.component.html
- 8
+ 8,10
@@ -5305,11 +5306,11 @@
Createsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 8
+ 8,9src/app/+admin/overview/users/user-edit/user-edit.component.html
- 8
+ 8,9src/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.ts
@@ -5321,11 +5322,11 @@
src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 12
+ 12,13src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 12
+ 12,13src/app/shared/shared-video-playlist/video-add-to-playlist.component.html
@@ -5336,19 +5337,19 @@
Editsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 10
+ 10,12src/app/+admin/overview/users/user-edit/user-edit.component.html
- 10
+ 10,12src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 14
+ 14,16src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 14
+ 14,16src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
@@ -5360,7 +5361,7 @@
src/app/+videos/+video-edit/shared/video-edit.component.html
- 195
+ 195,196src/app/+videos/+video-edit/video-add-components/video-upload.component.html
@@ -5404,22 +5405,22 @@
Incriminated in reportssrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 42
+ 42,43src/app/+admin/overview/users/user-edit/user-edit.component.html
- 42
+ 42,43Authored reports acceptedsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 48
+ 48,49src/app/+admin/overview/users/user-edit/user-edit.component.html
- 48
+ 48,49
@@ -5437,22 +5438,22 @@
NEW USERsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 75
+ 75,76src/app/+admin/overview/users/user-edit/user-edit.component.html
- 75
+ 75,76Usernamesrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 90
+ 90,91src/app/+admin/overview/users/user-edit/user-edit.component.html
- 90
+ 90,91src/app/+admin/overview/users/user-list/user-list.component.ts
@@ -5460,11 +5461,11 @@
src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.html
- 6
+ 6,7src/app/+signup/+register/steps/register-step-user.component.html
- 27
+ 27,29
@@ -5482,11 +5483,11 @@
Channel namesrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 101
+ 101,102src/app/+admin/overview/users/user-edit/user-edit.component.html
- 101
+ 101,102
@@ -5515,57 +5516,57 @@
Passwordsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 124
+ 124,126src/app/+admin/overview/users/user-edit/user-edit.component.html
- 124
+ 124,126src/app/+login/login.component.html
- 67
+ 67,69src/app/+login/login.component.html
- 70
+ 70,71src/app/+reset-password/reset-password.component.html
- 6
+ 6,8src/app/+reset-password/reset-password.component.html
- 9
+ 9,10src/app/+signup/+register/steps/register-step-user.component.html
- 63
+ 63,65src/app/+videos/+video-edit/shared/video-edit.component.html
- 124
+ 124,125 If you leave the password empty, an email will be sent to the user. src/app/+admin/overview/users/user-edit/user-edit.component.html
- 128,130
+ 129src/app/+admin/overview/users/user-edit/user-edit.component.html
- 128,130
+ 129Rolesrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 138
+ 138,139src/app/+admin/overview/users/user-edit/user-edit.component.html
- 138
+ 138,139src/app/+admin/overview/users/user-list/user-list.component.ts
@@ -5576,11 +5577,11 @@
Video quotasrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 153
+ 153,155src/app/+admin/overview/users/user-edit/user-edit.component.html
- 153
+ 153,155src/app/+admin/overview/users/user-list/user-list.component.ts
@@ -5588,33 +5589,33 @@
src/app/shared/shared-instance/instance-features-table.component.html
- 46
+ 46,48Daily video quotasrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 171
+ 171,173src/app/+admin/overview/users/user-edit/user-edit.component.html
- 171
+ 171,173src/app/shared/shared-main/users/user-quota.component.html
- 14
+ 14,16Auth pluginsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 187
+ 187,189src/app/+admin/overview/users/user-edit/user-edit.component.html
- 187
+ 187,189src/app/+admin/overview/users/user-list/user-list.component.ts
@@ -5625,103 +5626,103 @@
None (local authentication)src/app/+admin/overview/users/user-edit/user-edit.component.html
- 191
+ 191,192src/app/+admin/overview/users/user-edit/user-edit.component.html
- 191
+ 191,192User bypasses video validation by moderatorssrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 200
+ 200,201src/app/+admin/overview/users/user-edit/user-edit.component.html
- 200
+ 200,201
- Enable this checkbox if this user doesn't need to have its videos reviewed by moderators.
+ Enable this checkbox if this user doesn't need to have its videos reviewed by moderators. src/app/+admin/overview/users/user-edit/user-edit.component.html
- 202,204
+ 203src/app/+admin/overview/users/user-edit/user-edit.component.html
- 202,204
+ 203DANGER ZONEsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 222
+ 222,223src/app/+admin/overview/users/user-edit/user-edit.component.html
- 222
+ 222,223src/app/+my-account/my-account-settings/my-account-settings.component.html
- 88
+ 88,89Send a link to reset the password by email to the usersrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 229
+ 229,230src/app/+admin/overview/users/user-edit/user-edit.component.html
- 229
+ 229,230Ask for new passwordsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 230
+ 230,231src/app/+admin/overview/users/user-edit/user-edit.component.html
- 230
+ 230,231Manually set the user passwordsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 234
+ 234,235src/app/+admin/overview/users/user-edit/user-edit.component.html
- 234
+ 234,235This user has two factor authentication enabledsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 239
+ 239,240src/app/+admin/overview/users/user-edit/user-edit.component.html
- 239
+ 239,240Disable two factor authenticationsrc/app/+admin/overview/users/user-edit/user-edit.component.html
- 240
+ 240,241src/app/+admin/overview/users/user-edit/user-edit.component.html
- 240
+ 240,241
@@ -5781,14 +5782,14 @@
Table parameterssrc/app/+admin/overview/users/user-list/user-list.component.html
- 49
+ 49,50Select columnssrc/app/+admin/overview/users/user-list/user-list.component.html
- 55
+ 55,56
@@ -5829,15 +5830,15 @@
Mutedsrc/app/+admin/overview/users/user-list/user-list.component.html
- 107
+ 107,108src/app/shared/shared-moderation/account-block-badges.component.html
- 1
+ 1,2src/app/shared/shared-share-modal/video-share.component.html
- 232
+ 233
@@ -5851,25 +5852,25 @@
Total video quotasrc/app/+admin/overview/users/user-list/user-list.component.html
- 121
+ 121,122src/app/shared/shared-main/users/user-quota.component.html
- 3
+ 3,5Total daily video quotasrc/app/+admin/overview/users/user-list/user-list.component.html
- 133
+ 133,134Ban reason:src/app/+admin/overview/users/user-list/user-list.component.html
- 161
+ 161,162
@@ -5902,7 +5903,7 @@
- User won't be able to login anymore, but videos and comments will be kept as is.
+ User won't be able to login anymore, but videos and comments will be kept as is.src/app/+admin/overview/users/user-list/user-list.component.ts147
@@ -5996,7 +5997,7 @@
- <p>You can't create users or channels with a username that already used by a deleted user/channel.</p>
+ <p>You can't create users or channels with a username that already used by a deleted user/channel.</p>src/app/+admin/overview/users/user-list/user-list.component.ts284
@@ -6066,7 +6067,7 @@
src/app/+admin/overview/videos/video-list.component.html
- 107
+ 107,108
@@ -6189,30 +6190,30 @@
Videosrc/app/+admin/overview/videos/video-list.component.html
- 43
+ 43,44src/app/+my-library/my-ownership/my-ownership.component.html
- 14
+ 14,15src/app/+my-library/my-video-imports/my-video-imports.component.html
- 30
+ 30,31src/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html
- 38
+ 38,39src/app/shared/shared-video-miniature/video-download.component.html
- 8
+ 8,9Infosrc/app/+admin/overview/videos/video-list.component.html
- 44
+ 44,45src/app/core/notification/notifier.service.ts
@@ -6220,14 +6221,14 @@
- Files
+ Files src/app/+admin/overview/videos/video-list.component.html45,46
- Published
+ Published src/app/+admin/overview/videos/video-list.component.html46,48
@@ -6237,7 +6238,7 @@
Localsrc/app/+admin/overview/videos/video-list.component.html
- 75
+ 75,76src/app/shared/shared-video-miniature/video-filters.model.ts
@@ -6248,67 +6249,67 @@
Remotesrc/app/+admin/overview/videos/video-list.component.html
- 77
+ 77,78Account mutedsrc/app/+admin/overview/videos/video-list.component.html
- 86
+ 86,87Server mutedsrc/app/+admin/overview/videos/video-list.component.html
- 87
+ 87,89Blockedsrc/app/+admin/overview/videos/video-list.component.html
- 89
+ 89,90src/app/shared/shared-video-miniature/video-miniature.component.html
- 66
+ 66,67Only display videos with this tagsrc/app/+admin/overview/videos/video-list.component.html
- 95
+ 95,96Original filesrc/app/+admin/overview/videos/video-list.component.html
- 104
+ 104,105HLSsrc/app/+admin/overview/videos/video-list.component.html
- 105
+ 105,106Web Videos ()src/app/+admin/overview/videos/video-list.component.html
- 106
+ 106,107Object storagesrc/app/+admin/overview/videos/video-list.component.html
- 108
+ 108,110
@@ -6337,15 +6338,15 @@
Delete this filesrc/app/+admin/overview/videos/video-list.component.html
- 133
+ 133,134src/app/+admin/overview/videos/video-list.component.html
- 151
+ 151,152src/app/+admin/overview/videos/video-list.component.html
- 169
+ 169,170
@@ -6531,7 +6532,7 @@
src/app/+my-account/my-account-settings/my-account-settings.component.html
- 1
+ 1,3src/app/+my-account/my-account.component.ts
@@ -6550,14 +6551,14 @@
- You don't have plugins installed yet.
+ You don't have plugins installed yet.src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts106
- You don't have themes installed yet.
+ You don't have themes installed yet.src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts109
@@ -6617,7 +6618,7 @@
src/app/+admin/plugins/plugin-search/plugin-search.component.html
- 3,5
+ 4,7
@@ -6635,10 +6636,10 @@
- for ""
+ for "" src/app/+admin/plugins/plugin-search/plugin-search.component.html
- 17,19
+ 18,19
@@ -6664,46 +6665,46 @@
src/app/+admin/plugins/plugin-search/plugin-search.component.html
- 27,29
+ 28,31Installedsrc/app/+admin/plugins/plugin-search/plugin-search.component.html
- 35
+ 35,37src/app/+admin/plugins/shared/plugin-navigation.component.html
- 3
+ 3,4This plugin is developed by Framasoft, the not-for-profit that develops PeerTubesrc/app/+admin/plugins/plugin-search/plugin-search.component.html
- 37
+ 37,38 Official src/app/+admin/plugins/plugin-search/plugin-search.component.html
- 37,39
+ 38,39This plugin is recommended by Framasoft, the not-for-profit that develops PeerTubesrc/app/+admin/plugins/plugin-search/plugin-search.component.html
- 41
+ 41,42 Recommended src/app/+admin/plugins/plugin-search/plugin-search.component.html
- 41,43
+ 42,43
@@ -6738,7 +6739,7 @@
This does not have settings. src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.html
- 16,18
+ 17,20
@@ -6787,25 +6788,25 @@
Plugin homepage (new window)src/app/+admin/plugins/shared/plugin-card.component.html
- 8
+ 8,9src/app/+admin/plugins/shared/plugin-card.component.html
- 12
+ 12,13Navigate between installed plugins and themes or find new onessrc/app/+admin/plugins/shared/plugin-navigation.component.html
- 2
+ 2,3Searchsrc/app/+admin/plugins/shared/plugin-navigation.component.html
- 4
+ 4,5src/app/+search/routes.ts
@@ -6821,7 +6822,7 @@
src/app/shared/shared-instance/instance-features-table.component.html
- 134
+ 134,135src/app/shared/shared-main/misc/simple-search-input.component.ts
@@ -6836,21 +6837,21 @@
Navigate between plugins and themessrc/app/+admin/plugins/shared/plugin-navigation.component.html
- 7
+ 7,8Pluginssrc/app/+admin/plugins/shared/plugin-navigation.component.html
- 8
+ 8,9Themessrc/app/+admin/plugins/shared/plugin-navigation.component.html
- 9
+ 9,10
@@ -6861,108 +6862,108 @@
- User email hasn't been verified
+ User email hasn't been verifiedsrc/app/+admin/shared/user-email-info.component.ts21
- The video quota only takes into account the size of uploaded videos, not transcoded files or user export archives (which may contain video files).
+ The video quota only takes into account the size of uploaded videos, not transcoded files or user export archives (which may contain video files). src/app/+admin/shared/user-real-quota-info.component.html
- 3,5
+ 4,7 Transcoding is enabled so videos size can be at most ~ . src/app/+admin/shared/user-real-quota-info.component.html
- 9,11
+ 10,11IP addresssrc/app/+admin/system/debug/debug.component.html
- 2
+ 2,4
- PeerTube thinks your web browser public IP is .
+ PeerTube thinks your web browser public IP is .src/app/+admin/system/debug/debug.component.html
- 4
+ 4,6If this is not your correct public IP, please consider fixing it because:src/app/+admin/system/debug/debug.component.html
- 6
+ 6,7Views may not be counted correctly (reduced compared to what they should be)src/app/+admin/system/debug/debug.component.html
- 8
+ 8,9Anti brute force system could be overzealoussrc/app/+admin/system/debug/debug.component.html
- 9
+ 9,10P2P system could not work correctlysrc/app/+admin/system/debug/debug.component.html
- 10
+ 10,11To fix it:src/app/+admin/system/debug/debug.component.html
- 13
+ 13,15
- Check the trust_proxy configuration key
+ Check the trust_proxy configuration keysrc/app/+admin/system/debug/debug.component.html
- 15
+ 15,16
- If you run PeerTube using Docker, check you run the reverse-proxy with network_mode: "host" (see issue 1643)
+ If you run PeerTube using Docker, check you run the reverse-proxy with network_mode: "host" (see issue 1643)src/app/+admin/system/debug/debug.component.html
- 16,17
+ 16,19Job typesrc/app/+admin/system/jobs/jobs.component.html
- 3
+ 3,5Job statesrc/app/+admin/system/jobs/jobs.component.html
- 17
+ 17,18anysrc/app/+admin/system/jobs/jobs.component.html
- 27
+ 27,29Selector for the list displaying jobs, filtering by their state
@@ -6970,58 +6971,58 @@
IDsrc/app/+admin/system/jobs/jobs.component.html
- 51
+ 52Typesrc/app/+admin/system/jobs/jobs.component.html
- 52
+ 52,53src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
- 32
+ 32,33
- Priority (1 = highest priority)
+ Priority (1 = highest priority)src/app/+admin/system/jobs/jobs.component.html
- 53
+ 53,54Statesrc/app/+admin/system/jobs/jobs.component.html
- 54
+ 54,55src/app/+my-account/my-account-import-export/my-account-export.component.html
- 42
+ 42,43src/app/+my-library/my-video-imports/my-video-imports.component.html
- 31
+ 31,32Progresssrc/app/+admin/system/jobs/jobs.component.html
- 55
+ 55,56Processed/Finishedsrc/app/+admin/system/jobs/jobs.component.html
- 57
+ 57,58src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
- 38
+ 38,39
@@ -7032,31 +7033,31 @@
- No jobs found.
+ No jobs found.src/app/+admin/system/jobs/jobs.component.html
- 122
+ 122,123
- No jobs found.
+ No jobs found.src/app/+admin/system/jobs/jobs.component.html
- 126
+ 126,127
- No jobs found that are .
+ No jobs found that are .src/app/+admin/system/jobs/jobs.component.html
- 127
+ 127,128nowsrc/app/+admin/system/logs/logs.component.html
- 15
+ 15,16
@@ -7070,21 +7071,21 @@
Loading...src/app/+admin/system/logs/logs.component.html
- 37
+ 37,39No log.src/app/+admin/system/logs/logs.component.html
- 40
+ 40,42
- By ->
+ By ->src/app/+admin/system/logs/logs.component.html
- 47
+ 47,48
@@ -7133,18 +7134,18 @@
UUIDsrc/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
- 31
+ 31,32
- Priority
+ Priority src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html34,35
- Progress
+ Progress src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html35,36
@@ -7154,21 +7155,21 @@
Runnersrc/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
- 36
+ 36,37Payload:src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
- 118
+ 118,119Private payload:src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html
- 123
+ 123,124
@@ -7278,14 +7279,14 @@
IPsrc/app/+admin/system/runners/runner-list/runner-list.component.html
- 26
+ 27Last contactsrc/app/+admin/system/runners/runner-list/runner-list.component.html
- 27
+ 27,28
@@ -7296,7 +7297,7 @@
- Do you really want to delete this runner? It won't be able to process jobs anymore.
+ Do you really want to delete this runner? It won't be able to process jobs anymore.src/app/+admin/system/runners/runner-list/runner-list.component.ts65
@@ -7320,14 +7321,14 @@
Tokensrc/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html
- 26
+ 26,27Associated runnerssrc/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html
- 28
+ 28,29
@@ -7341,14 +7342,14 @@
Registration token copiedsrc/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html
- 53
+ 53,54Copy registration tokensrc/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html
- 54
+ 54,55
@@ -7422,31 +7423,31 @@
- That's an error.
+ That's an error.src/app/+error-page/error-page.component.html
- 4
+ 4,6
- We couldn't find any video tied to the URL you were looking for.
+ We couldn't find any video tied to the URL you were looking for.src/app/+error-page/error-page.component.html
- 7
+ 7,8
- We couldn't find any resource tied to the URL you were looking for.
+ We couldn't find any resource tied to the URL you were looking for.src/app/+error-page/error-page.component.html
- 8
+ 8,9Possible reasons:src/app/+error-page/error-page.component.html
- 12
+ 12,16Possible reasons preceding a list of reasons a `Not Found` error page may occur
@@ -7454,7 +7455,7 @@
You may have used an outdated or broken linksrc/app/+error-page/error-page.component.html
- 15
+ 15,16
@@ -7475,18 +7476,18 @@
You may have typed the address or URL incorrectlysrc/app/+error-page/error-page.component.html
- 20
+ 20,21You are not authorized here.src/app/+error-page/error-page.component.html
- 27
+ 27,29src/app/+error-page/error-page.component.html
- 39
+ 39,41
@@ -7521,20 +7522,20 @@
The requested entity body blends sweet bits with a mellow earthiness. src/app/+error-page/error-page.component.html
- 51,53
+ 52,57
- Description of a tea flavour, keeping the 'requested entity body' as a technical expression referring to a web request
+ Description of a tea flavour, keeping the 'requested entity body' as a technical expression referring to a web requestSepia seems to like it.src/app/+error-page/error-page.component.html
- 54
+ 54,57
- This is about Sepia's tea
+ This is about Sepia's tea
- I'm a teapot
+ I'm a teapotsrc/app/+error-page/error-page.component.ts31
@@ -7551,7 +7552,7 @@
⚠️ Most email addresses do not include capital letters. src/app/+login/login.component.html
- 2,4
+ 3,4
@@ -7577,77 +7578,77 @@
Logging into an account lets you publish content src/app/+login/login.component.html
- 19,21
+ 20,21
- This instance allows registration. However, be careful to check the TermsTerms before creating an account. You may also search for another instance to match your exact needs at: https://joinpeertube.org/instances.
+ This instance allows registration. However, be careful to check the TermsTerms before creating an account. You may also search for another instance to match your exact needs at: https://joinpeertube.org/instances. src/app/+login/login.component.html
- 23,26
+ 24,28
- Currently this instance doesn't allow for user registration, you may check the Terms for more details or find an instance that gives you the possibility to sign up for an account and upload your videos there. Find yours among multiple instances at: https://joinpeertube.org/instances.
+ Currently this instance doesn't allow for user registration, you may check the Terms for more details or find an instance that gives you the possibility to sign up for an account and upload your videos there. Find yours among multiple instances at: https://joinpeertube.org/instances. src/app/+login/login.component.html
- 28,31
+ 29,32
- Sorry but there was an issue with the external login process. Please contact an administrator.
+ Sorry but there was an issue with the external login process. Please contact an administrator. src/app/+login/login.component.html
- 34,36
+ 35,38 Request new verification email src/app/+login/login.component.html
- 41,43
+ 42,43Username or email addresssrc/app/+login/login.component.html
- 53
+ 53,54Enter the two-factor code generated by your phone app:src/app/+login/login.component.html
- 77
+ 77,79Two factor authentication tokensrc/app/+login/login.component.html
- 79
+ 79,81Click here to reset your passwordsrc/app/+login/login.component.html
- 91
+ 91,92 I forgot my password src/app/+login/login.component.html
- 91,93
+ 92Create an accountsrc/app/+login/login.component.html
- 97
+ 97,98src/app/shared/shared-main/account/signup-label.component.html
@@ -7658,39 +7659,39 @@
Or sign in withsrc/app/+login/login.component.html
- 103
+ 103,105Forgot your passwordsrc/app/+login/login.component.html
- 129
+ 129,131 We are sorry, you cannot recover your password because your instance administrator did not configure the PeerTube email system. src/app/+login/login.component.html
- 138,140
+ 139,140 Enter your email address and we will send you a link to reset your password. src/app/+login/login.component.html
- 142,144
+ 143,144Email addresssrc/app/+login/login.component.html
- 149
+ 149,150src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html
- 9
+ 9,10
@@ -7776,102 +7777,102 @@ The link will expire within 1 hour.
NEW CHANNELsrc/app/+manage/video-channel-edit/video-channel-edit.component.html
- 9
+ 9,10src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 9
+ 9,10UPDATE CHANNELsrc/app/+manage/video-channel-edit/video-channel-edit.component.html
- 11
+ 11,12src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 11
+ 11,12Example: my_channelsrc/app/+manage/video-channel-edit/video-channel-edit.component.html
- 33
+ 33,34src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 33
+ 33,34Display namesrc/app/+manage/video-channel-edit/video-channel-edit.component.html
- 44
+ 44,45src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 44
+ 44,45src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.html
- 17
+ 17,18src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 45
+ 45,46src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 45
+ 45,46src/app/shared/shared-video-playlist/video-add-to-playlist.component.html
- 72
+ 72,73Supportsrc/app/+manage/video-channel-edit/video-channel-edit.component.html
- 66
+ 66,67src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 66
+ 66,67src/app/+video-channels/video-channels.component.html
- 17
+ 17,18src/app/+videos/+video-edit/shared/video-edit.component.html
- 382
+ 382,383
- Short text to tell people how they can support the channel (membership platform...).<br />
+ Short text to tell people how they can support the channel (membership platform...).<br />
When a video is uploaded in this channel, the video support field will be automatically filled by this text.src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 68,69
+ 68,70src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 68,69
+ 68,70Overwrite support field of all videos of this channelsrc/app/+manage/video-channel-edit/video-channel-edit.component.html
- 81
+ 81,82src/app/+manage/video-channel-edit/video-channel-edit.component.html
- 81
+ 81,82
@@ -7907,42 +7908,42 @@ The link will expire within 1 hour.
SUBSCRIPTION FEEDsrc/app/+my-account/my-account-applications/my-account-applications.component.html
- 9
+ 9,11 Use third-party feed aggregators to retrieve the list of videos from channels you subscribed to. src/app/+my-account/my-account-applications/my-account-applications.component.html
- 11,13
+ 12,13Feed URLsrc/app/+my-account/my-account-applications/my-account-applications.component.html
- 19
+ 19,20Feed Tokensrc/app/+my-account/my-account-applications/my-account-applications.component.html
- 24
+ 24,25⚠️ Never share your feed token with anyone.src/app/+my-account/my-account-applications/my-account-applications.component.html
- 27
+ 27,28Renew tokensrc/app/+my-account/my-account-applications/my-account-applications.component.html
- 30
+ 30,32src/app/+my-account/my-account-applications/my-account-applications.component.ts
@@ -7978,7 +7979,7 @@ The link will expire within 1 hour.
Automatically block comments:src/app/+my-account/my-account-auto-tag-policies/my-account-auto-tag-policies.component.html
- 6
+ 6,8
@@ -7989,7 +7990,7 @@ The link will expire within 1 hour.
- That contain any word from your "" watched word list
+ That contain any word from your "" watched word listsrc/app/+my-account/my-account-auto-tag-policies/my-account-auto-tag-policies.component.ts39
@@ -8021,133 +8022,133 @@ The link will expire within 1 hour.
EXPORTsrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 4
+ 4,5You can request an archive of your account containing:src/app/+my-account/my-account-import-export/my-account-export.component.html
- 11
+ 11,13Your account settings with avatar filesrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 14
+ 14,15Your channels with banner and avatar filessrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 15
+ 15,16Your muted accounts and serverssrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 16
+ 16,17Your commentssrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 17
+ 17,18Your likes and dislikessrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 18
+ 18,19Your subscriptions and followerssrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 19
+ 19,20Your video playlists with thumbnail filessrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 20
+ 20,21Your videos with thumbnail, caption files. Video files can also be included in the archivesrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 21
+ 21,22Your video historysrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 22
+ 22,23The exported data will contain multiple directories:src/app/+my-account/my-account-import-export/my-account-export.component.html
- 25
+ 25,27A directory containing an export in ActivityPub format, readable by any compliant softwaresrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 28
+ 28,29A directory containing an export in custom PeerTube JSON format that can be used to re-import your account on another PeerTube instancesrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 29
+ 29,30A directory containing static files (thumbnails, avatars, video files etc.)src/app/+my-account/my-account-import-export/my-account-export.component.html
- 30
+ 30,31You can only request one archive at a time.src/app/+my-account/my-account-import-export/my-account-export.component.html
- 33
+ 33,35An email will be sent when the export archive is available.src/app/+my-account/my-account-import-export/my-account-export.component.html
- 36
+ 36,37Datesrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 41
+ 41,42Sizesrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 43
+ 43,44src/app/shared/shared-video-miniature/video-download.component.ts
@@ -8158,63 +8159,63 @@ The link will expire within 1 hour.
Expires onsrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 44
+ 44,45Download your archivesrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 61
+ 61,62Request a new archivesrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 71
+ 71,72User export is not enabled by your administrator.src/app/+my-account/my-account-import-export/my-account-export.component.html
- 75
+ 75,77Archive settingssrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 83
+ 83,85 You already have an active archive. Requesting a new export archive will remove the current one. src/app/+my-account/my-account-import-export/my-account-export.component.html
- 92,94
+ 93,94Include video files in archive filesrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 100
+ 100,102Including video files is required if you want to re-import your videos on another PeerTube websitesrc/app/+my-account/my-account-import-export/my-account-export.component.html
- 103
+ 103,104
- If you include video files, the archive file will weigh approximately
+ If you include video files, the archive file will weigh approximately src/app/+my-account/my-account-import-export/my-account-export.component.html
- 104
+ 104,105
@@ -8250,154 +8251,154 @@ The link will expire within 1 hour.
IMPORTsrc/app/+my-account/my-account-import-export/my-account-import.component.html
- 4
+ 4,5You can import an archive created by another PeerTube website.src/app/+my-account/my-account-import-export/my-account-import.component.html
- 10
+ 10,12
- This is an import tool and not a migration tool. It's the reason why data (like channels or videos) is duplicated and not moved from your previous PeerTube website.
+ This is an import tool and not a migration tool. It's the reason why data (like channels or videos) is duplicated and not moved from your previous PeerTube website. src/app/+my-account/my-account-import-export/my-account-import.component.html
- 12,15
+ 13,17The import process will automatically:src/app/+my-account/my-account-import-export/my-account-import.component.html
- 17
+ 17,19Update your account metadata (display name, description, avatar...)src/app/+my-account/my-account-import-export/my-account-import.component.html
- 20
+ 20,21Update your user settings (autoplay or P2P policy, notification settings...). It does not update your user email, username or password.src/app/+my-account/my-account-import-export/my-account-import.component.html
- 21
+ 21,22Add accounts/servers in your mute listsrc/app/+my-account/my-account-import-export/my-account-import.component.html
- 22
+ 22,23Add likes/dislikessrc/app/+my-account/my-account-import-export/my-account-import.component.html
- 23
+ 23,24Send a follow request to your subscriptionssrc/app/+my-account/my-account-import-export/my-account-import.component.html
- 24
+ 24,25Create channels if they do not already existsrc/app/+my-account/my-account-import-export/my-account-import.component.html
- 25
+ 25,26Create playlists if they do not already existsrc/app/+my-account/my-account-import-export/my-account-import.component.html
- 26
+ 26,27Add watched videos in your video historysrc/app/+my-account/my-account-import-export/my-account-import.component.html
- 27
+ 27,28
- If the archive contains video files, create videos if they do not already exist
+ If the archive contains video files, create videos if they do not already existsrc/app/+my-account/my-account-import-export/my-account-import.component.html
- 28
+ 28,31The following data objects are not imported:src/app/+my-account/my-account-import-export/my-account-import.component.html
- 31
+ 31,33Followers (accounts will need to re-follow your channels)src/app/+my-account/my-account-import-export/my-account-import.component.html
- 35
+ 35,36An email will be sent when the import process is complete.src/app/+my-account/my-account-import-export/my-account-import.component.html
- 38
+ 38,40
- You can't re-import an archive because you already have an import that is currently being processed by PeerTube.
+ You can't re-import an archive because you already have an import that is currently being processed by PeerTube. src/app/+my-account/my-account-import-export/my-account-import.component.html
- 51,53
+ 52,53 Upload completed. Your archive import will be processed as soon as possible. src/app/+my-account/my-account-import-export/my-account-import.component.html
- 61,63
+ 62,63(extension: .zip)src/app/+my-account/my-account-import-export/my-account-import.component.html
- 65
+ 65,66Select the archive file to importsrc/app/+my-account/my-account-import-export/my-account-import.component.html
- 66
+ 66,67Select the file to importsrc/app/+my-account/my-account-import-export/my-account-import.component.html
- 68
+ 68,69User import is not enabled by your administrator.src/app/+my-account/my-account-import-export/my-account-import.component.html
- 78
+ 78,80
@@ -8425,7 +8426,7 @@ The link will expire within 1 hour.
Notificationssrc/app/+my-account/my-account-notifications/my-account-notifications.component.html
- 1
+ 1,3src/app/+my-account/my-account.component.ts
@@ -8437,46 +8438,46 @@ The link will expire within 1 hour.
src/app/menu/notification.component.html
- 28
+ 28,30Notification preferencessrc/app/+my-account/my-account-notifications/my-account-notifications.component.html
- 6
+ 6,7Sort bysrc/app/+my-account/my-account-notifications/my-account-notifications.component.html
- 11
+ 11,12src/app/+my-library/my-videos/my-videos.component.html
- 26
+ 26,27Newest firstsrc/app/+my-account/my-account-notifications/my-account-notifications.component.html
- 12
+ 12,13Unread firstsrc/app/+my-account/my-account-notifications/my-account-notifications.component.html
- 13
+ 13,14Mark all as readsrc/app/+my-account/my-account-notifications/my-account-notifications.component.html
- 21
+ 21,22src/app/menu/notification.component.html
@@ -8487,29 +8488,29 @@ The link will expire within 1 hour.
All readsrc/app/+my-account/my-account-notifications/my-account-notifications.component.html
- 27
+ 27,28
- is awaiting email verification
+ is awaiting email verification
src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html
- 5,6
+ 5,8Change your emailsrc/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html
- 11
+ 11,13
- Your current email is . It is never shown to the public.
+ Your current email is . It is never shown to the public. src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html
- 13,16
+ 14,18
@@ -8523,15 +8524,15 @@ The link will expire within 1 hour.
Current passwordsrc/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html
- 29
+ 29,30src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html
- 7
+ 7,8src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.html
- 18
+ 18,19
@@ -8556,7 +8557,7 @@ The link will expire within 1 hour.
src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html
- 10
+ 10,12
@@ -8574,7 +8575,7 @@ The link will expire within 1 hour.
Change passwordsrc/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html
- 5
+ 5,6src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html
@@ -8585,14 +8586,14 @@ The link will expire within 1 hour.
New passwordsrc/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html
- 12
+ 12,13Confirm new passwordsrc/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html
- 17
+ 17,18
@@ -8606,14 +8607,14 @@ The link will expire within 1 hour.
Once you delete your account, there is no going back. You will be asked to confirm this action.src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.html
- 2
+ 2,4Delete your accountsrc/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.html
- 4
+ 4,5src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts
@@ -8628,7 +8629,7 @@ The link will expire within 1 hour.
- This will delete all your data, including channels, videos, comments and you won't be able to create another user on this instance with "" username.
+ This will delete all your data, including channels, videos, comments and you won't be able to create another user on this instance with "" username.src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts26
@@ -8666,7 +8667,7 @@ The link will expire within 1 hour.
Allow email to be publicly displayedsrc/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.html
- 6
+ 6,8
@@ -8708,7 +8709,7 @@ The link will expire within 1 hour.
Websrc/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.html
- 6
+ 6,7
@@ -8866,7 +8867,7 @@ The link will expire within 1 hour.
People can find you using @@src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.html
- 11,13
+ 12,14
@@ -8887,56 +8888,56 @@ The link will expire within 1 hour.
PROFILE SETTINGSsrc/app/+my-account/my-account-settings/my-account-settings.component.html
- 5
+ 5,6INTERFACEsrc/app/+my-account/my-account-settings/my-account-settings.component.html
- 24
+ 24,25VIDEO SETTINGSsrc/app/+my-account/my-account-settings/my-account-settings.component.html
- 35
+ 35,36NOTIFICATIONSsrc/app/+my-account/my-account-settings/my-account-settings.component.html
- 46
+ 46,47PASSWORDsrc/app/+my-account/my-account-settings/my-account-settings.component.html
- 56
+ 56,57Two-factor authenticationsrc/app/+my-account/my-account-settings/my-account-settings.component.html
- 66
+ 66,67EMAILsrc/app/+my-account/my-account-settings/my-account-settings.component.html
- 76
+ 76,77Two factor authentication adds an additional layer of security to your account by requiring a numeric code from another device (most commonly mobile phones) when you log in.src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor-button.component.html
- 3
+ 3,5
@@ -8990,21 +8991,21 @@ The link will expire within 1 hour.
src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.html
- 6,8
+ 7,10Your passwordsrc/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.html
- 14
+ 14,15Confirm your password to enable two factor authenticationsrc/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.html
- 15
+ 15,17
@@ -9026,28 +9027,28 @@ The link will expire within 1 hour.
Scan this QR code into a TOTP app on your phone. This app will generate tokens that you will have to enter when logging in. src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.html
- 28,30
+ 29,30
- If you can't scan the QR code and need to enter it manually, here is the plain-text secret:
+ If you can't scan the QR code and need to enter it manually, here is the plain-text secret: src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.html
- 34,36
+ 35,36Two-factor codesrc/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.html
- 42
+ 42,43Enter the code generated by your authenticator app to confirmsrc/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.html
- 43
+ 43,45
@@ -9068,14 +9069,14 @@ The link will expire within 1 hour.
Comments that contain any of the watched words are automatically tagged with the name of the list.src/app/+my-account/my-account-watched-words-list/my-account-watched-words-list.component.html
- 6
+ 6,7
- These automatic tags can be used to filter comments or automatically block them.
+ These automatic tags can be used to filter comments or automatically block them.src/app/+my-account/my-account-watched-words-list/my-account-watched-words-list.component.html
- 7
+ 7,9
@@ -9154,26 +9155,26 @@ The link will expire within 1 hour.
No channel found.src/app/+my-library/+my-video-channels/my-video-channels.component.html
- 27
+ 27,29Channel pagesrc/app/+my-library/+my-video-channels/my-video-channels.component.html
- 34
+ 34,35src/app/+my-library/my-follows/my-subscriptions.component.html
- 20
+ 20,21src/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.html
- 66
+ 66,67src/app/+videos/+video-watch/video-watch.component.html
- 68
+ 68,69
@@ -9252,14 +9253,14 @@ The link will expire within 1 hour.
No follower found.src/app/+my-library/my-follows/my-followers.component.html
- 13
+ 13,15Follower pagesrc/app/+my-library/my-follows/my-followers.component.html
- 20
+ 20,21
@@ -9273,7 +9274,7 @@ The link will expire within 1 hour.
Is following your channel src/app/+my-library/my-follows/my-followers.component.html
- 27
+ 27,28
@@ -9303,25 +9304,25 @@ The link will expire within 1 hour.
- You don't have any subscription yet.
+ You don't have any subscription yet.src/app/+my-library/my-follows/my-subscriptions.component.html
- 13
+ 13,15 subscriberssrc/app/+my-library/my-follows/my-subscriptions.component.html
- 25
+ 25,27src/app/+search/search.component.html
- 58
+ 58,59src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.html
- 36
+ 36,38
@@ -9335,7 +9336,7 @@ The link will expire within 1 hour.
Created by src/app/+my-library/my-follows/my-subscriptions.component.html
- 28
+ 28,30
@@ -9353,14 +9354,14 @@ The link will expire within 1 hour.
Track watch historysrc/app/+my-library/my-history/my-history.component.html
- 14
+ 14,15
- Clear all history
+ Clear all history src/app/+my-library/my-history/my-history.component.html
- 18,20
+ 18,23
@@ -9406,14 +9407,14 @@ The link will expire within 1 hour.
- No videos found for "".
+ No videos found for "".src/app/+my-library/my-history/my-history.component.ts160
- You don't have any video in your watch history yet.
+ You don't have any video in your watch history yet.src/app/+my-library/my-history/my-history.component.ts163
@@ -9427,7 +9428,7 @@ The link will expire within 1 hour.
src/app/+search/search-filters.component.html
- 200
+ 200,201src/app/core/menu/menu.service.ts
@@ -9442,7 +9443,7 @@ The link will expire within 1 hour.
src/app/+search/search-filters.component.html
- 205
+ 205,206src/app/core/menu/menu.service.ts
@@ -9483,14 +9484,14 @@ The link will expire within 1 hour.
Accept ownershipsrc/app/+my-library/my-ownership/my-accept-ownership/my-accept-ownership.component.html
- 3
+ 3,5Select a channel to receive the videosrc/app/+my-library/my-ownership/my-accept-ownership/my-accept-ownership.component.html
- 12
+ 12,13
@@ -9511,21 +9512,21 @@ The link will expire within 1 hour.
Initiatorsrc/app/+my-library/my-ownership/my-ownership.component.html
- 13
+ 13,14
- Created
+ Created src/app/+my-library/my-ownership/my-ownership.component.html
- 15,17
+ 16,19Statussrc/app/+my-library/my-ownership/my-ownership.component.html
- 19
+ 19,20
@@ -9543,10 +9544,10 @@ The link will expire within 1 hour.
- ⚠️ The instance doesn't allow channel synchronization
+ ⚠️ The instance doesn't allow channel synchronizationsrc/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.html
- 9
+ 9,10
@@ -9557,24 +9558,24 @@ The link will expire within 1 hour.
- External Channel
+ External Channel src/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.html
- 35
+ 35,36
- Channel
+ Channel src/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.html
- 36
+ 36,37
- Last synchronization at
+ Last synchronization at src/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.html
- 39
+ 39,41
@@ -9616,49 +9617,49 @@ The link will expire within 1 hour.
NEW SYNCHRONIZATIONsrc/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.html
- 6
+ 6,7Remote channel URLsrc/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.html
- 13
+ 13,15Example: https://youtube.com/channel/UC_fancy_channelsrc/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.html
- 20
+ 20,21Video Channelsrc/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.html
- 33
+ 33,34Options for existing videos on remote channel:src/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.html
- 42
+ 42,44Import all and watch for new publicationssrc/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.html
- 46
+ 46,47Only watch for new publicationssrc/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.html
- 51
+ 51,52
@@ -9683,7 +9684,7 @@ The link will expire within 1 hour.
Targetsrc/app/+my-library/my-video-imports/my-video-imports.component.html
- 29
+ 29,30
@@ -9704,79 +9705,79 @@ The link will expire within 1 hour.
My Playlistssrc/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 8
+ 8,9src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 8
+ 8,9NEW PLAYLISTsrc/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 26
+ 26,27src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 26
+ 26,27UPDATE PLAYLISTsrc/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 28
+ 28,29src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 28
+ 28,29Playlist thumbnailsrc/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 36
+ 36,38src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 36
+ 36,38Privacysrc/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 61
+ 61,62src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html
- 61
+ 61,62src/app/+videos/+video-edit/shared/video-edit.component.html
- 113
+ 113,114src/app/+videos/+video-edit/video-add-components/video-go-live.component.html
- 13
+ 13,14src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
- 37
+ 37,38src/app/+videos/+video-edit/video-add-components/video-import-url.component.html
- 33
+ 33,34src/app/+videos/+video-edit/video-add-components/video-upload.component.html
- 26
+ 26,27src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html
- 2
+ 2,3src/app/shared/shared-abuse-list/abuse-details.component.ts
@@ -9787,32 +9788,32 @@ The link will expire within 1 hour.
Sharesrc/app/+my-library/my-video-playlists/my-video-playlist-elements.component.html
- 12
+ 12,13src/app/shared/shared-share-modal/video-share.component.html
- 3
+ 3,5No videos in this playlist.src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.html
- 25
+ 25,27 Browse videos on PeerTube to add them in your playlist. src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.html
- 27,29
+ 28,29
- See the documentation for more information.
+ See the documentation for more information. src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.html
- 31,33
+ 32,34
@@ -9871,7 +9872,7 @@ The link will expire within 1 hour.
src/app/+videos/+video-edit/video-update.component.html
- 3
+ 3,4src/app/+videos/+video-edit/video-update.component.html
@@ -9920,7 +9921,7 @@ The link will expire within 1 hour.
Change ownershipsrc/app/+my-library/my-videos/modals/video-change-ownership.component.html
- 3
+ 3,5src/app/+my-library/my-videos/my-videos.component.ts
@@ -9931,7 +9932,7 @@ The link will expire within 1 hour.
Select the next ownersrc/app/+my-library/my-videos/modals/video-change-ownership.component.html
- 12
+ 12,14
@@ -9975,35 +9976,35 @@ The link will expire within 1 hour.
Last published firstsrc/app/+my-library/my-videos/my-videos.component.html
- 27
+ 27,28Last created firstsrc/app/+my-library/my-videos/my-videos.component.html
- 28
+ 28,29Most viewed firstsrc/app/+my-library/my-videos/my-videos.component.html
- 29
+ 29,30Most liked firstsrc/app/+my-library/my-videos/my-videos.component.html
- 30
+ 30,31Longest firstsrc/app/+my-library/my-videos/my-videos.component.html
- 31
+ 31,32
@@ -10087,25 +10088,25 @@ The link will expire within 1 hour.
Reset my passwordsrc/app/+reset-password/reset-password.component.html
- 2
+ 2,4src/app/+reset-password/reset-password.component.html
- 24
+ 24,25Confirm passwordsrc/app/+reset-password/reset-password.component.html
- 15
+ 15,17Confirmed passwordsrc/app/+reset-password/reset-password.component.html
- 18
+ 18,19
@@ -10133,88 +10134,88 @@ The link will expire within 1 hour.
Sortsrc/app/+search/search-filters.component.html
- 7
+ 7,8 Reset src/app/+search/search-filters.component.html
- 8,10
+ 9src/app/+search/search-filters.component.html
- 22,24
+ 23src/app/+search/search-filters.component.html
- 41,43
+ 42src/app/+search/search-filters.component.html
- 60,62
+ 61src/app/+search/search-filters.component.html
- 74,76
+ 75src/app/+search/search-filters.component.html
- 109,111
+ 110src/app/+search/search-filters.component.html
- 122,124
+ 123,124src/app/+search/search-filters.component.html
- 135,137
+ 136,137src/app/+search/search-filters.component.html
- 148,150
+ 149,150src/app/+search/search-filters.component.html
- 163,165
+ 164,165src/app/+search/search-filters.component.html
- 171,173
+ 172,173src/app/+search/search-filters.component.html
- 188,190
+ 189src/app/+search/search-filters.component.html
- 229,231
+ 230,231src/app/+videos/+video-edit/shared/video-edit.component.html
- 418,420
+ 419src/app/shared/shared-forms/reactive-file.component.html
- 16,18
+ 17,18Display onlysrc/app/+search/search-filters.component.html
- 21
+ 21,22Live videossrc/app/+search/search-filters.component.html
- 29
+ 29,30src/app/shared/shared-video-miniature/video-filters-header.component.html
- 125
+ 125,126src/app/shared/shared-video-miniature/video-filters.model.ts
@@ -10225,11 +10226,11 @@ The link will expire within 1 hour.
VOD videossrc/app/+search/search-filters.component.html
- 34
+ 34,35src/app/shared/shared-video-miniature/video-filters-header.component.html
- 130
+ 130,131src/app/shared/shared-video-miniature/video-filters.model.ts
@@ -10240,172 +10241,172 @@ The link will expire within 1 hour.
Display sensitive contentsrc/app/+search/search-filters.component.html
- 40
+ 40,41Yessrc/app/+search/search-filters.component.html
- 48
+ 48,49Nosrc/app/+search/search-filters.component.html
- 53
+ 53,54Published datesrc/app/+search/search-filters.component.html
- 59
+ 59,60Original publication yearsrc/app/+search/search-filters.component.html
- 73
+ 73,74After...src/app/+search/search-filters.component.html
- 85
+ 85,86Before...src/app/+search/search-filters.component.html
- 95
+ 95,96Durationsrc/app/+search/search-filters.component.html
- 108
+ 108,109src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html
- 67
+ 67,68Categorysrc/app/+search/search-filters.component.html
- 121
+ 121,122src/app/+videos/+video-edit/shared/video-edit.component.html
- 70
+ 70,71src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html
- 32
+ 32,33Display all categoriessrc/app/+search/search-filters.component.html
- 127
+ 127,128Licencesrc/app/+search/search-filters.component.html
- 134
+ 134,135src/app/+videos/+video-edit/shared/video-edit.component.html
- 81
+ 81,83src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html
- 41
+ 41,42Display all licensessrc/app/+search/search-filters.component.html
- 140
+ 140,141Languagesrc/app/+search/search-filters.component.html
- 147
+ 147,148src/app/+videos/+video-edit/shared/video-caption-add-modal.component.html
- 13
+ 13,14src/app/+videos/+video-edit/shared/video-edit.component.html
- 101
+ 101,102src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html
- 50
+ 50,51Display all languagessrc/app/+search/search-filters.component.html
- 153
+ 153,154All of these tagssrc/app/+search/search-filters.component.html
- 162
+ 162,163One of these tagssrc/app/+search/search-filters.component.html
- 170
+ 170,171PeerTube instance hostsrc/app/+search/search-filters.component.html
- 178
+ 178,180Result typessrc/app/+search/search-filters.component.html
- 187
+ 187,188Search targetsrc/app/+search/search-filters.component.html
- 212
+ 212,213Vidiversesrc/app/+search/search-filters.component.html
- 222
+ 222,223
@@ -10462,7 +10463,7 @@ The link will expire within 1 hour.
- Long (> 10 min)
+ Long (> 10 min)src/app/+search/search-filters.component.ts72
@@ -10497,42 +10498,42 @@ The link will expire within 1 hour.
src/app/+search/search.component.html
- 5
+ 5,7on this instancesrc/app/+search/search.component.html
- 7
+ 7,8on the vidiversesrc/app/+search/search.component.html
- 8
+ 8,10
- for
+ for src/app/+search/search.component.html
- 10
+ 10,11
- Filters
+ Filters src/app/+search/search.component.html
- 18,20
+ 19,21 No results found src/app/+search/search.component.html
- 32,34
+ 33,34
@@ -10574,7 +10575,7 @@ The link will expire within 1 hour.
Signup is not enabled on this instance.src/app/+signup/+register/register.component.html
- 4
+ 4,5
@@ -10596,14 +10597,14 @@ The link will expire within 1 hour.
- I already have an account, I log in
+ I already have an account, I log in src/app/+signup/+register/register.component.html
- 30,31
+ 30,33
- Termsof
+ Termsof src/app/+signup/+register/register.component.html41,43
@@ -10621,7 +10622,7 @@ The link will expire within 1 hour.
- Setupyour account
+ Setupyour accountsrc/app/+signup/+register/register.component.html66,68
@@ -10635,24 +10636,24 @@ The link will expire within 1 hour.
- Createyour first channel
+ Createyour first channelsrc/app/+signup/+register/register.component.html83,85
- I don't want to create a channel
+ I don't want to create a channelsrc/app/+signup/+register/register.component.html
- 97
+ 97,98You will be able to create a channel latersrc/app/+signup/+register/register.component.html
- 100
+ 100,101
@@ -10666,7 +10667,7 @@ The link will expire within 1 hour.
PeerTube is creating your account...src/app/+signup/+register/register.component.html
- 114
+ 114,115
@@ -10730,211 +10731,211 @@ The link will expire within 1 hour.
Moderators of will have to approve your registration request once you have finished to fill the form.src/app/+signup/+register/steps/register-step-about.component.html
- 4
+ 4,6They usually respond within .src/app/+signup/+register/steps/register-step-about.component.html
- 6
+ 6,7Why creating an account?src/app/+signup/+register/steps/register-step-about.component.html
- 10
+ 10,12
- As you probably noticed: creating an account is not necessary to watch video on . However, creating an account on will allow you to:
+ As you probably noticed: creating an account is not necessary to watch video on . However, creating an account on will allow you to: src/app/+signup/+register/steps/register-step-about.component.html
- 12,16
+ 13,19
- Comment videos
+ Comment videossrc/app/+signup/+register/steps/register-step-about.component.html
- 19
+ 19,20
- Subscribe to channels to be notified of new videos
+ Subscribe to channels to be notified of new videossrc/app/+signup/+register/steps/register-step-about.component.html
- 20
+ 20,21
- Have access to your watch history
+ Have access to your watch historysrc/app/+signup/+register/steps/register-step-about.component.html
- 21
+ 21,22
- Create your channel to publish videos
+ Create your channel to publish videossrc/app/+signup/+register/steps/register-step-about.component.html
- 22
+ 22,24Do you use Mastodon, ActivityPub or a RSS feed aggregator?src/app/+signup/+register/steps/register-step-about.component.html
- 27
+ 27,29You can already follow using your favorite tool.src/app/+signup/+register/steps/register-step-about.component.html
- 29
+ 29,32
- has been created using PeerTube, a video creation platform developed by Framasoft. Framasoft is a french non-profit organization that offers alternatives to Big Tech's digital tools
+ has been created using PeerTube, a video creation platform developed by Framasoft. Framasoft is a french non-profit organization that offers alternatives to Big Tech's digital tools src/app/+signup/+register/steps/register-step-about.component.html
- 40,43
+ 41,44
- You want to publish videos on ? Then you need to create your first channel.
+ You want to publish videos on ? Then you need to create your first channel. src/app/+signup/+register/steps/register-step-channel.component.html
- 2,4
+ 3,7
- You might want to create a channel by theme: for example, you can create a channel named "SweetMelodies" to publish your piano concerts and another one "Ecology" in which you publish your videos talking about ecology.
+ You might want to create a channel by theme: for example, you can create a channel named "SweetMelodies" to publish your piano concerts and another one "Ecology" in which you publish your videos talking about ecology. src/app/+signup/+register/steps/register-step-channel.component.html
- 6,9
+ 7,11
- administrators allow you to publish up to of videos on their website.
+ administrators allow you to publish up to of videos on their website. src/app/+signup/+register/steps/register-step-channel.component.html
- 11,13
+ 12,16Channel display namesrc/app/+signup/+register/steps/register-step-channel.component.html
- 21
+ 21,23This is the name that will be publicly visible by other users.src/app/+signup/+register/steps/register-step-channel.component.html
- 23
+ 23,25Example: Sweet Melodiessrc/app/+signup/+register/steps/register-step-channel.component.html
- 27
+ 27,28Channel identifiersrc/app/+signup/+register/steps/register-step-channel.component.html
- 36
+ 36,38This is the name that will be displayed in your profile URL.src/app/+signup/+register/steps/register-step-channel.component.html
- 38
+ 38,40Example: sweetmelodies24src/app/+signup/+register/steps/register-step-channel.component.html
- 42
+ 42,43 Channel identifier cannot be the same as your account name. You can click on the first step to update your account name. src/app/+signup/+register/steps/register-step-channel.component.html
- 50,52
+ 51,52Why do you want to join ?src/app/+signup/+register/steps/register-step-terms.component.html
- 4
+ 4,6
- I am at least years old and agree to the Terms and to the Code of Conduct of
+ I am at least years old and agree to the Terms and to the Code of Conduct of src/app/+signup/+register/steps/register-step-terms.component.html
- 17,22
+ 18,22
- Video uploads are disabled on this instance, hence your account won't be able to upload videos.
+ Video uploads are disabled on this instance, hence your account won't be able to upload videos.
src/app/+signup/+register/steps/register-step-user.component.html
- 1,3
+ 2,5Public namesrc/app/+signup/+register/steps/register-step-user.component.html
- 9
+ 9,11 This is the name that will be publicly visible by other users. src/app/+signup/+register/steps/register-step-user.component.html
- 11,13
+ 12,13Example: John Doesrc/app/+signup/+register/steps/register-step-user.component.html
- 17
+ 17,18 This is the name that will be displayed in your profile URL. src/app/+signup/+register/steps/register-step-user.component.html
- 29,31
+ 30,31Example: john_doe58src/app/+signup/+register/steps/register-step-user.component.html
- 35
+ 35,36 This email address will be used to validate your account. src/app/+signup/+register/steps/register-step-user.component.html
- 50,52
+ 51,52
@@ -10955,7 +10956,7 @@ The link will expire within 1 hour.
Request email for account verificationsrc/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html
- 2
+ 2,4
@@ -10969,7 +10970,7 @@ The link will expire within 1 hour.
This instance does not require email verification.src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html
- 20
+ 20,21
@@ -10983,21 +10984,21 @@ The link will expire within 1 hour.
Verify emailsrc/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html
- 2
+ 2,4An error occurred.src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html
- 13
+ 13,15 Request a new verification email src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html
- 15,17
+ 16,17
@@ -11018,85 +11019,85 @@ The link will expire within 1 hour.
Email verified!src/app/+signup/shared/signup-success-after-email.component.html
- 2
+ 2,3Your email has been verified and your account request has been sent!src/app/+signup/shared/signup-success-after-email.component.html
- 7
+ 7,9
- A moderator will check your registration request soon and you'll receive an email when it is accepted or rejected.
+ A moderator will check your registration request soon and you'll receive an email when it is accepted or rejected. src/app/+signup/shared/signup-success-after-email.component.html
- 9,11
+ 10,11src/app/+signup/shared/signup-success-before-email.component.html
- 27,29
+ 28,29Your email has been verified and your account has been created!src/app/+signup/shared/signup-success-after-email.component.html
- 15
+ 15,17
- If you need help using PeerTube, you can have a look at the documentation.
+ If you need help using PeerTube, you can have a look at the documentation. src/app/+signup/shared/signup-success-after-email.component.html
- 17,19
+ 18,20src/app/+signup/shared/signup-success-before-email.component.html
- 31,33
+ 32,34Account request sentsrc/app/+signup/shared/signup-success-before-email.component.html
- 3
+ 3,4
- Welcomeon
+ Welcomeon src/app/+signup/shared/signup-success-before-email.component.html
- 7,8
+ 7,9Your account request has been sent!src/app/+signup/shared/signup-success-before-email.component.html
- 13
+ 13,14Your account has been created!src/app/+signup/shared/signup-success-before-email.component.html
- 14
+ 14,16
- Check your email to validate your account and complete your registration request.
+ Check your email to validate your account and complete your registration request. src/app/+signup/shared/signup-success-before-email.component.html
- 18,19
+ 18,21
- Check your email to validate your account and complete your registration.
+ Check your email to validate your account and complete your registration. src/app/+signup/shared/signup-success-before-email.component.html
- 22,23
+ 22,24
@@ -11110,7 +11111,7 @@ The link will expire within 1 hour.
You can select a part of the graph to zoom insrc/app/+stats/video/video-stats.component.html
- 58
+ 58,60
@@ -11269,7 +11270,7 @@ The link will expire within 1 hour.
Created src/app/+video-channels/video-channel-playlists/video-channel-playlists.component.html
- 2,4
+ 3,6
@@ -11283,21 +11284,21 @@ The link will expire within 1 hour.
This channel does not have playlists.src/app/+video-channels/video-channel-playlists/video-channel-playlists.component.html
- 6
+ 6,8 Manage channel src/app/+video-channels/video-channels.component.html
- 9,11
+ 10,11OWNER ACCOUNTsrc/app/+video-channels/video-channels.component.html
- 23
+ 23,25
@@ -11311,28 +11312,28 @@ The link will expire within 1 hour.
View account src/app/+video-channels/video-channels.component.html
- 46,48
+ 47,48 View owner account src/app/+video-channels/video-channels.component.html
- 50,52
+ 51,52VIDEO CHANNELsrc/app/+video-channels/video-channels.component.html
- 60
+ 60,62Handle copiedsrc/app/+video-channels/video-channels.component.html
- 72
+ 72,73
@@ -11371,91 +11372,91 @@ The link will expire within 1 hour.
CUT VIDEOsrc/app/+video-studio/edit/video-studio-edit.component.html
- 8
+ 8,10Set a new start/end.src/app/+video-studio/edit/video-studio-edit.component.html
- 10
+ 10,12New startsrc/app/+video-studio/edit/video-studio-edit.component.html
- 13
+ 13,14New endsrc/app/+video-studio/edit/video-studio-edit.component.html
- 18
+ 18,19ADD INTROsrc/app/+video-studio/edit/video-studio-edit.component.html
- 24
+ 24,26Concatenate a file at the beginning of the video.src/app/+video-studio/edit/video-studio-edit.component.html
- 26
+ 26,28Select the intro video filesrc/app/+video-studio/edit/video-studio-edit.component.html
- 30
+ 30,31ADD OUTROsrc/app/+video-studio/edit/video-studio-edit.component.html
- 38
+ 38,40Concatenate a file at the end of the video.src/app/+video-studio/edit/video-studio-edit.component.html
- 40
+ 40,42Select the outro video filesrc/app/+video-studio/edit/video-studio-edit.component.html
- 44
+ 44,45ADD WATERMARKsrc/app/+video-studio/edit/video-studio-edit.component.html
- 52
+ 52,54Add a watermark image to the video.src/app/+video-studio/edit/video-studio-edit.component.html
- 54
+ 54,56Select watermark image filesrc/app/+video-studio/edit/video-studio-edit.component.html
- 58
+ 58,59
@@ -11469,32 +11470,32 @@ The link will expire within 1 hour.
Video before editionsrc/app/+video-studio/edit/video-studio-edit.component.html
- 75
+ 75,76Edition tasks:src/app/+video-studio/edit/video-studio-edit.component.html
- 80
+ 80,82
- Are you sure you want to edit ""?
+ Are you sure you want to edit ""?src/app/+video-studio/edit/video-studio-edit.component.ts93
- The current video will be overwritten by this edited video and <strong>you won't be able to recover it</strong>.<br /><br />
+ The current video will be overwritten by this edited video and <strong>you won't be able to recover it</strong>.<br /><br />src/app/+video-studio/edit/video-studio-edit.component.ts97
- As a reminder, the following tasks will be executed: <ol></ol>
+ As a reminder, the following tasks will be executed: <ol></ol>src/app/+video-studio/edit/video-studio-edit.component.ts98
@@ -11508,7 +11509,7 @@ The link will expire within 1 hour.
- (extensions: )
+ (extensions: )src/app/+video-studio/edit/video-studio-edit.component.ts127
@@ -11519,21 +11520,21 @@ The link will expire within 1 hour.
- "" will be added at the beginning of the video
+ "" will be added at the beginning of the videosrc/app/+video-studio/edit/video-studio-edit.component.ts143
- "" will be added at the end of the video
+ "" will be added at the end of the videosrc/app/+video-studio/edit/video-studio-edit.component.ts147
- "" image watermark will be added to the video
+ "" image watermark will be added to the videosrc/app/+video-studio/edit/video-studio-edit.component.ts151
@@ -11968,14 +11969,14 @@ The link will expire within 1 hour.
Use this framesrc/app/+videos/+video-edit/shared/thumbnail-manager/thumbnail-manager.component.html
- 18
+ 18,20Select from videosrc/app/+videos/+video-edit/shared/thumbnail-manager/thumbnail-manager.component.html
- 31
+ 31,32
@@ -12004,21 +12005,21 @@ The link will expire within 1 hour.
Add captionsrc/app/+videos/+video-edit/shared/video-caption-add-modal.component.html
- 5
+ 5,7Select the caption filesrc/app/+videos/+video-edit/shared/video-caption-add-modal.component.html
- 27
+ 27,28 This will replace an existing caption! src/app/+videos/+video-edit/shared/video-caption-add-modal.component.html
- 33,35
+ 34,35
@@ -12032,14 +12033,14 @@ The link will expire within 1 hour.
Edit captionsrc/app/+videos/+video-edit/shared/video-caption-edit-modal-content/video-caption-edit-modal-content.component.html
- 3
+ 3,4Captionsrc/app/+videos/+video-edit/shared/video-caption-edit-modal-content/video-caption-edit-modal-content.component.html
- 10
+ 10,11
@@ -12053,32 +12054,32 @@ The link will expire within 1 hour.
Basic infosrc/app/+videos/+video-edit/shared/video-edit.component.html
- 11
+ 11,13Titlesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 17
+ 17,18Tagssrc/app/+videos/+video-edit/shared/video-edit.component.html
- 25
+ 25,27src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html
- 59
+ 59,60
- Tags could be used to suggest relevant recommendations. There is a maximum of 5 tags. Press Enter to add a new tag.
+ Tags could be used to suggest relevant recommendations. There is a maximum of 5 tags. Press Enter to add a new tag. src/app/+videos/+video-edit/shared/video-edit.component.html
- 29,33
+ 30,33
@@ -12089,14 +12090,14 @@ The link will expire within 1 hour.
- A timestamp (00:05 for example) is automatically converted into a link to a part of the video.
+ A timestamp (00:05 for example) is automatically converted into a link to a part of the video.src/app/+videos/+video-edit/shared/video-edit.component.html
- 52
+ 52,53
- Choose the appropriate licence for your work.
+ Choose the appropriate licence for your work. src/app/+videos/+video-edit/shared/video-edit.component.html86,87
@@ -12106,7 +12107,7 @@ The link will expire within 1 hour.
Schedule publication ()src/app/+videos/+video-edit/shared/video-edit.component.html
- 129
+ 129,130
@@ -12131,7 +12132,7 @@ The link will expire within 1 hour.
- The video may be unplayable during the transcoding process. It's the reason why we prefer to publish publicly the video after transcoding.
+ The video may be unplayable during the transcoding process. It's the reason why we prefer to publish publicly the video after transcoding.src/app/+videos/+video-edit/shared/video-edit.component.html157
@@ -12141,7 +12142,7 @@ The link will expire within 1 hour.
Captionssrc/app/+videos/+video-edit/shared/video-edit.component.html
- 172
+ 172,174src/app/shared/shared-abuse-list/abuse-details.component.ts
@@ -12170,156 +12171,156 @@ The link will expire within 1 hour.
Already uploaded on ✔src/app/+videos/+video-edit/shared/video-edit.component.html
- 193
+ 193,195Will be created on updatesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 202
+ 202,204Cancel createsrc/app/+videos/+video-edit/shared/video-edit.component.html
- 204
+ 204,205Will be edited on updatesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 210
+ 210,212Cancel editionsrc/app/+videos/+video-edit/shared/video-edit.component.html
- 212
+ 212,213Will be deleted on updatesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 218
+ 218,220Cancel deletionsrc/app/+videos/+video-edit/shared/video-edit.component.html
- 220
+ 220,221 No captions for now. src/app/+videos/+video-edit/shared/video-edit.component.html
- 225,227
+ 226Chapterssrc/app/+videos/+video-edit/shared/video-edit.component.html
- 234
+ 234,236Timecodesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 244
+ 244,246Chapter namesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 246
+ 246,248Live settingssrc/app/+videos/+video-edit/shared/video-edit.component.html
- 285
+ 285,287Live RTMP Urlsrc/app/+videos/+video-edit/shared/video-edit.component.html
- 295
+ 295,296src/app/shared/shared-video-live/live-stream-information.component.html
- 21
+ 21,22Live RTMPS Urlsrc/app/+videos/+video-edit/shared/video-edit.component.html
- 300
+ 300,301src/app/shared/shared-video-live/live-stream-information.component.html
- 26
+ 26,27Live stream keysrc/app/+videos/+video-edit/shared/video-edit.component.html
- 305
+ 305,306src/app/shared/shared-video-live/live-stream-information.component.html
- 31
+ 31,32⚠️ Never share your stream key with anyone.src/app/+videos/+video-edit/shared/video-edit.component.html
- 308
+ 308,309src/app/shared/shared-video-live/live-stream-information.component.html
- 34
+ 34,35This is a normal livesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 314
+ 314,316 You can stream only once in a normal live. If you enable replay, it will be saved under the same URL as your live src/app/+videos/+video-edit/shared/video-edit.component.html
- 316,318
+ 317This is a permanent/recurring livesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 323
+ 323,325 You can stream multiple times in a permanent/recurring live. If you enable replays, they will be saved as separate videos src/app/+videos/+video-edit/shared/video-edit.component.html
- 325,327
+ 326
@@ -12333,91 +12334,91 @@ The link will expire within 1 hour.
⚠️ If you enable this option, your live will be terminated if you exceed your video quotasrc/app/+videos/+video-edit/shared/video-edit.component.html
- 338
+ 338,339Privacy of the new replaysrc/app/+videos/+video-edit/shared/video-edit.component.html
- 344
+ 344,345Latency modesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 351
+ 351,352Advanced settingssrc/app/+videos/+video-edit/shared/video-edit.component.html
- 367
+ 367,369Video thumbnailsrc/app/+videos/+video-edit/shared/video-edit.component.html
- 376
+ 376,378 Short text to tell people how they can support you (membership platform...). src/app/+videos/+video-edit/shared/video-edit.component.html
- 385,387
+ 386Filenamesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 401
+ 401,403 Name of the uploaded file src/app/+videos/+video-edit/shared/video-edit.component.html
- 405,407
+ 406Original publication datesrc/app/+videos/+video-edit/shared/video-edit.component.html
- 416
+ 416,418 This is the date when the content was originally published (e.g. the release date for a film) src/app/+videos/+video-edit/shared/video-edit.component.html
- 423,425
+ 424Comments policysrc/app/+videos/+video-edit/shared/video-edit.component.html
- 439
+ 439,440Enable downloadsrc/app/+videos/+video-edit/shared/video-edit.component.html
- 449
+ 449,450Plugin settingssrc/app/+videos/+video-edit/shared/video-edit.component.html
- 457
+ 457,459
@@ -12509,14 +12510,14 @@ The link will expire within 1 hour.
Normal livesrc/app/+videos/+video-edit/video-add-components/video-go-live.component.html
- 22
+ 22,24Permanent/recurring livesrc/app/+videos/+video-edit/video-add-components/video-go-live.component.html
- 29
+ 29,31
@@ -12530,19 +12531,19 @@ The link will expire within 1 hour.
Sorry, but something went wrongsrc/app/+videos/+video-edit/video-add-components/video-go-live.component.html
- 43
+ 43,44src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
- 51
+ 51,52src/app/+videos/+video-edit/video-add-components/video-import-url.component.html
- 48
+ 48,49src/app/shared/standalone-upload/upload-progress.component.html
- 31
+ 31,32
@@ -12550,7 +12551,7 @@ The link will expire within 1 hour.
src/app/+videos/+video-edit/video-add-components/video-go-live.component.html
- 47,50
+ 48,52
@@ -12606,7 +12607,7 @@ The link will expire within 1 hour.
Select the torrent to importsrc/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
- 6
+ 6,7src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
@@ -12617,32 +12618,32 @@ The link will expire within 1 hour.
ORsrc/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
- 13
+ 13,15Paste magnet URIsrc/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
- 16
+ 16,17 You can import any torrent file that points to a media file. You should make sure you have diffusion rights over the content it points to, otherwise it could cause legal trouble to yourself and your instance. src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
- 19,22
+ 20,21Importsrc/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
- 44
+ 45src/app/+videos/+video-edit/video-add-components/video-import-url.component.html
- 40
+ 41
@@ -12650,7 +12651,7 @@ The link will expire within 1 hour.
src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html
- 55,57
+ 56,59
@@ -12675,29 +12676,29 @@ The link will expire within 1 hour.
URLsrc/app/+videos/+video-edit/video-add-components/video-import-url.component.html
- 6
+ 6,8src/app/shared/shared-share-modal/video-share.component.html
- 27
+ 29src/app/shared/shared-share-modal/video-share.component.html
- 117
+ 119
- You can import any URL supported by youtube-dl or URL that points to a media file. You should make sure you have diffusion rights over the content it points to, otherwise it could cause legal trouble to yourself and your instance.
+ You can import any URL supported by youtube-dl or URL that points to a media file. You should make sure you have diffusion rights over the content it points to, otherwise it could cause legal trouble to yourself and your instance. src/app/+videos/+video-edit/video-add-components/video-import-url.component.html
- 10,14
+ 11,13
- You can also synchronize a remote channel in your library
+ You can also synchronize a remote channel in your librarysrc/app/+videos/+video-edit/video-add-components/video-import-url.component.html
- 20,23
+ 21,23
@@ -12705,36 +12706,36 @@ The link will expire within 1 hour.
src/app/+videos/+video-edit/video-add-components/video-import-url.component.html
- 52,54
+ 53,56Select the file to uploadsrc/app/+videos/+video-edit/video-add-components/video-upload.component.html
- 6
+ 6,7src/app/+videos/+video-edit/video-add-components/video-upload.component.html
- 8
+ 8,9src/app/+videos/+video-edit/video-update.component.html
- 35
+ 35,36Video background imagesrc/app/+videos/+video-edit/video-add-components/video-upload.component.html
- 34
+ 34,36
- Image that will be merged with your audio file. The chosen image will be definitive and cannot be modified.
+ Image that will be merged with your audio file. The chosen image will be definitive and cannot be modified. src/app/+videos/+video-edit/video-add-components/video-upload.component.html
- 36,40
+ 37,40
@@ -12742,14 +12743,14 @@ The link will expire within 1 hour.
src/app/+videos/+video-edit/video-add-components/video-upload.component.html
- 61,63
+ 62,65Publish will be available when upload is finishedsrc/app/+videos/+video-edit/video-add-components/video-upload.component.html
- 75
+ 75,77
@@ -12760,7 +12761,7 @@ The link will expire within 1 hour.
src/app/header/header.component.html
- 5
+ 5,6
@@ -12838,14 +12839,14 @@ The link will expire within 1 hour.
Read instance rules for helpsrc/app/+videos/+video-edit/video-add.component.html
- 2
+ 2,3
- We recommend you to not use the root user to publish your videos, since it's the super-admin account of your instance. Instead, create a dedicated account to upload your videos.
+ We recommend you to not use the root user to publish your videos, since it's the super-admin account of your instance. Instead, create a dedicated account to upload your videos. src/app/+videos/+video-edit/video-add.component.html
- 33,37
+ 34,38
@@ -12866,28 +12867,28 @@ The link will expire within 1 hour.
Upload a filesrc/app/+videos/+video-edit/video-add.component.html
- 53
+ 53,54Import with URLsrc/app/+videos/+video-edit/video-add.component.html
- 63
+ 63,64Import with torrentsrc/app/+videos/+video-edit/video-add.component.html
- 73
+ 73,74Go livesrc/app/+videos/+video-edit/video-add.component.html
- 83
+ 83,84
@@ -12922,14 +12923,14 @@ The link will expire within 1 hour.
Replace video filesrc/app/+videos/+video-edit/video-update.component.html
- 28
+ 28,30⚠️ Uploading a new version of your video will completely erase the current versionsrc/app/+videos/+video-edit/video-update.component.html
- 30
+ 30,32
@@ -12968,7 +12969,7 @@ The link will expire within 1 hour.
- <br /><br />Do you still want to replace your video file?
+ <br /><br />Do you still want to replace your video file?src/app/+videos/+video-edit/video-update.component.ts305
@@ -12985,28 +12986,28 @@ The link will expire within 1 hour.
SUPPORTsrc/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.html
- 13
+ 13,14SHAREsrc/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.html
- 18
+ 18,19SAVEsrc/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.html
- 29
+ 29,30DOWNLOADsrc/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.html
- 44
+ 44,45
@@ -13073,14 +13074,14 @@ The link will expire within 1 hour.
Markdown compatiblesrc/app/+videos/+video-watch/shared/comment/video-comment-add.component.html
- 17
+ 17,19Markdown compatible that supports:src/app/+videos/+video-watch/shared/comment/video-comment-add.component.html
- 20
+ 20,22
@@ -13112,7 +13113,7 @@ The link will expire within 1 hour.
Emphasissrc/app/+videos/+video-watch/shared/comment/video-comment-add.component.html
- 27
+ 27,28src/app/shared/shared-main/misc/help.component.ts
@@ -13137,46 +13138,46 @@ The link will expire within 1 hour.
Emoji shortcutssrc/app/+videos/+video-watch/shared/comment/video-comment-add.component.html
- 31
+ 31,32Emoji markupsrc/app/+videos/+video-watch/shared/comment/video-comment-add.component.html
- 35
+ 35,36See complete listsrc/app/+videos/+video-watch/shared/comment/video-comment-add.component.html
- 37
+ 37,38 Cancel src/app/+videos/+video-watch/shared/comment/video-comment-add.component.html
- 49,51
+ 50,51src/app/shared/shared-video-miniature/videos-selection.component.html
- 23,25
+ 24,25You are one step away from commentingsrc/app/+videos/+video-watch/shared/comment/video-comment-add.component.html
- 61
+ 61,63 You can comment using an account on any ActivityPub-compatible instance (PeerTube/Mastodon/Pleroma account for example). src/app/+videos/+video-watch/shared/comment/video-comment-add.component.html
- 69,71
+ 70,71
@@ -13190,7 +13191,7 @@ The link will expire within 1 hour.
Markdown Emoji Listsrc/app/+videos/+video-watch/shared/comment/video-comment-add.component.html
- 88
+ 88,90
@@ -13201,7 +13202,7 @@ The link will expire within 1 hour.
src/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html
- 39
+ 39,40
@@ -13212,25 +13213,25 @@ The link will expire within 1 hour.
src/app/+videos/+video-watch/shared/comment/video-comment.component.html
- 42
+ 42,44Highlighted commentsrc/app/+videos/+video-watch/shared/comment/video-comment.component.html
- 14
+ 14,16Pending reviewsrc/app/+videos/+video-watch/shared/comment/video-comment.component.html
- 31
+ 31,32src/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html
- 82
+ 82,84
@@ -13244,7 +13245,7 @@ The link will expire within 1 hour.
Deletedsrc/app/+videos/+video-watch/shared/comment/video-comment.component.html
- 53
+ 53,54src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html
@@ -13255,7 +13256,7 @@ The link will expire within 1 hour.
This comment has been deletedsrc/app/+videos/+video-watch/shared/comment/video-comment.component.html
- 59
+ 59,60
@@ -13301,35 +13302,35 @@ The link will expire within 1 hour.
SORT BY src/app/+videos/+video-watch/shared/comment/video-comments.component.html
- 10,12
+ 11,12Most recent first (default)src/app/+videos/+video-watch/shared/comment/video-comments.component.html
- 14
+ 14,15Most replies firstsrc/app/+videos/+video-watch/shared/comment/video-comments.component.html
- 15
+ 15,16No comments.src/app/+videos/+video-watch/shared/comment/video-comments.component.html
- 29
+ 29,31
- View from and others
+ View from and others src/app/+videos/+video-watch/shared/comment/video-comments.component.html
- 78,80
+ 79,80
@@ -13348,10 +13349,10 @@ The link will expire within 1 hour.
- View from
+ View from src/app/+videos/+video-watch/shared/comment/video-comments.component.html
- 81,83
+ 82,83
@@ -13365,7 +13366,7 @@ The link will expire within 1 hour.
Comments are disabled.src/app/+videos/+video-watch/shared/comment/video-comments.component.html
- 95
+ 95,97
@@ -13425,7 +13426,7 @@ The link will expire within 1 hour.
the sharing system used for this video implies that some technical information about your system (such as a public IP address) can be sent to other peers. src/app/+videos/+video-watch/shared/information/privacy-concerns.component.html
- 5,7
+ 6,7
@@ -13443,15 +13444,15 @@ The link will expire within 1 hour.
OK src/app/+videos/+video-watch/shared/information/privacy-concerns.component.html
- 13,15
+ 15
- This video will be published on .
+ This video will be published on .
src/app/+videos/+video-watch/shared/information/video-alert.component.html
- 1,3
+ 2,5
@@ -13459,7 +13460,7 @@ The link will expire within 1 hour.
src/app/+videos/+video-watch/shared/information/video-alert.component.html
- 5,7
+ 6,9
@@ -13467,7 +13468,7 @@ The link will expire within 1 hour.
src/app/+videos/+video-watch/shared/information/video-alert.component.html
- 9,11
+ 10,13
@@ -13475,14 +13476,14 @@ The link will expire within 1 hour.
src/app/+videos/+video-watch/shared/information/video-alert.component.html
- 17,19
+ 18,21This video is blocked.src/app/+videos/+video-watch/shared/information/video-alert.component.html
- 22
+ 22,23
@@ -13490,7 +13491,7 @@ The link will expire within 1 hour.
src/app/+videos/+video-watch/shared/information/video-alert.component.html
- 26,28
+ 27,29
@@ -13553,28 +13554,28 @@ The link will expire within 1 hour.
Originsrc/app/+videos/+video-watch/shared/metadata/video-attributes.component.html
- 7
+ 7,8Open the video on the origin instancesrc/app/+videos/+video-watch/shared/metadata/video-attributes.component.html
- 14
+ 14,15Video re-uploadsrc/app/+videos/+video-watch/shared/metadata/video-attributes.component.html
- 22
+ 22,23Originally publishedsrc/app/+videos/+video-watch/shared/metadata/video-attributes.component.html
- 27
+ 27,28
@@ -13621,7 +13622,7 @@ The link will expire within 1 hour.
Unlistedsrc/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.html
- 9
+ 9,10src/app/shared/shared-video-miniature/video-miniature.component.html
@@ -13632,7 +13633,7 @@ The link will expire within 1 hour.
Privatesrc/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.html
- 10
+ 10,11src/app/shared/shared-video-miniature/video-miniature.component.html
@@ -13640,7 +13641,7 @@ The link will expire within 1 hour.
src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html
- 24
+ 24,25src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html
@@ -13651,7 +13652,7 @@ The link will expire within 1 hour.
Publicsrc/app/+videos/+video-watch/shared/playlist/video-watch-playlist.component.html
- 11
+ 11,12
@@ -13686,28 +13687,28 @@ The link will expire within 1 hour.
Other videossrc/app/+videos/+video-watch/shared/recommendations/recommended-videos.component.html
- 4
+ 4,6AUTOPLAYsrc/app/+videos/+video-watch/shared/recommendations/recommended-videos.component.html
- 10
+ 10,12Toggle autoplay next videosrc/app/+videos/+video-watch/shared/recommendations/recommended-videos.component.html
- 13
+ 13,14Next video to be playedsrc/app/+videos/+video-watch/shared/recommendations/recommended-videos.component.html
- 21
+ 21,23
@@ -13732,7 +13733,7 @@ The link will expire within 1 hour.
- Published
+ Published src/app/+videos/+video-watch/video-watch.component.html32,33
@@ -13742,11 +13743,11 @@ The link will expire within 1 hour.
Account pagesrc/app/+videos/+video-watch/video-watch.component.html
- 71
+ 71,72src/app/+videos/+video-watch/video-watch.component.html
- 77
+ 77,78
@@ -13757,7 +13758,7 @@ The link will expire within 1 hour.
- This video is not available on this instance. Do you want to be redirected on the origin instance: <a href=""></a>?
+ This video is not available on this instance. Do you want to be redirected on the origin instance: <a href=""></a>?src/app/+videos/+video-watch/video-watch.component.ts419
@@ -13911,7 +13912,7 @@ The link will expire within 1 hour.
Discoversrc/app/+videos/video-list/overview/video-overview.component.html
- 1
+ 1,2src/app/core/menu/menu.service.ts
@@ -13922,11 +13923,11 @@ The link will expire within 1 hour.
No results.src/app/+videos/video-list/overview/video-overview.component.html
- 4
+ 4,6src/app/shared/shared-video-miniature/videos-list.component.html
- 41
+ 41,42src/app/shared/shared-video-miniature/videos-selection.component.ts
@@ -14001,7 +14002,7 @@ The link will expire within 1 hour.
Skip to main contentsrc/app/app.component.html
- 3
+ 3,5
@@ -14118,7 +14119,7 @@ The link will expire within 1 hour.
Cannot retrieve OAuth Client credentials: .
-Ensure you have correctly configured PeerTube (config/ directory), in particular the "webserver" section.
+Ensure you have correctly configured PeerTube (config/ directory), in particular the "webserver" section.
src/app/core/auth/auth.service.ts104,105
@@ -14210,7 +14211,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
src/app/shared/shared-video-live/live-stream-information.component.html
- 41
+ 41,42
@@ -14329,85 +14330,85 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Search videos, playlists, channels…src/app/header/search-typeahead.component.html
- 3
+ 3,4GLOBAL SEARCHsrc/app/header/search-typeahead.component.html
- 30
+ 30,32using src/app/header/search-typeahead.component.html
- 32
+ 32,33Results will be augmented with those of a third-party index. Only data necessary to make the query will be sent.src/app/header/search-typeahead.component.html
- 35
+ 35,36Your query will be matched against video names or descriptions, channel names.src/app/header/search-typeahead.component.html
- 40
+ 40,41ADVANCED SEARCHsrc/app/header/search-typeahead.component.html
- 41
+ 41,43will list the matching channelsrc/app/header/search-typeahead.component.html
- 45
+ 45,46src/app/header/search-typeahead.component.html
- 49
+ 49,50will list the matching videosrc/app/header/search-typeahead.component.html
- 53
+ 53,54
- In this instance's network
+ In this instance's networksrc/app/header/suggestion.component.html
- 16
+ 16,17In the vidiversesrc/app/header/suggestion.component.html
- 17
+ 17,18
- Search "" in this instance's network
+ Search "" in this instance's networksrc/app/header/suggestion.component.ts32
- Search "" in the vidiverse
+ Search "" in the vidiversesrc/app/header/suggestion.component.ts33
@@ -14435,7 +14436,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Your file couldn't be transferred before the server proxy timeout
+ Your file couldn't be transferred before the server proxy timeoutsrc/app/helpers/utils/upload.ts59
@@ -14459,7 +14460,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Enable hotkeys in this web browsersrc/app/hotkeys/hotkeys-cheat-sheet.component.html
- 8
+ 8,9
@@ -14473,14 +14474,14 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Change the languagesrc/app/menu/language-chooser.component.html
- 3
+ 3,4 Help to translate PeerTube! src/app/menu/language-chooser.component.html
- 10,12
+ 11,13
@@ -14494,21 +14495,21 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Interface:src/app/menu/menu.component.html
- 39
+ 39,40Videos:src/app/menu/menu.component.html
- 46
+ 46,47Sensitive:src/app/menu/menu.component.html
- 56
+ 56,57
@@ -14526,7 +14527,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
src/app/menu/menu.component.html
- 178
+ 178,179
@@ -14551,7 +14552,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
src/app/menu/quick-settings-modal.component.html
- 3
+ 3,4
@@ -14572,7 +14573,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Helpsrc/app/menu/menu.component.html
- 162
+ 163
@@ -14586,14 +14587,14 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
FAQsrc/app/menu/menu.component.html
- 166
+ 167Statssrc/app/menu/menu.component.html
- 170
+ 170,171src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts
@@ -14611,21 +14612,21 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
APIsrc/app/menu/menu.component.html
- 174
+ 175powered by PeerTube - CopyLeft 2015-2024src/app/menu/menu.component.html
- 183
+ 183,184powered by PeerTubesrc/app/menu/menu.component.html
- 185
+ 185,186
@@ -14636,7 +14637,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
src/app/shared/shared-video-miniature/video-download.component.html
- 88
+ 88,89
@@ -14671,7 +14672,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
View your notificationssrc/app/menu/notification.component.html
- 8
+ 8,9src/app/menu/notification.component.html
@@ -14682,70 +14683,70 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Update your notification preferencessrc/app/menu/notification.component.html
- 40
+ 40,41See all your notificationssrc/app/menu/notification.component.html
- 60
+ 60,61These settings apply only to your session on this instance.src/app/menu/quick-settings-modal.component.html
- 10
+ 10,12Interfacesrc/app/menu/quick-settings-modal.component.html
- 20
+ 20,22Welcome to , dear user!src/app/modal/account-setup-warning-modal.component.html
- 3
+ 3,4
- It's time to set up your account profile!
+ It's time to set up your account profile!src/app/modal/account-setup-warning-modal.component.html
- 12
+ 12,14
- Help moderators and other users to know who you are by:
+ Help moderators and other users to know who you are by:src/app/modal/account-setup-warning-modal.component.html
- 14
+ 14,17
- Uploading an avatar
+ Uploading an avatarsrc/app/modal/account-setup-warning-modal.component.html
- 17
+ 17,18
- Writing a description
+ Writing a descriptionsrc/app/modal/account-setup-warning-modal.component.html
- 18
+ 18,20
- Don't show me this anymore
+ Don't show me this anymoresrc/app/modal/account-setup-warning-modal.component.html
- 25
+ 25,27
@@ -14767,98 +14768,98 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Set up src/app/modal/account-setup-warning-modal.component.html
- 36,38
+ 37,38Welcome to PeerTube, dear administrator!src/app/modal/admin-welcome-modal.component.html
- 3
+ 3,4CLI documentationsrc/app/modal/admin-welcome-modal.component.html
- 14
+ 14,16Upload or import videos, parse logs, prune storage directories, reset user password...src/app/modal/admin-welcome-modal.component.html
- 16
+ 16,17Administer documentationsrc/app/modal/admin-welcome-modal.component.html
- 20
+ 20,22Managing users, following other instances, dealing with spammers...src/app/modal/admin-welcome-modal.component.html
- 22
+ 22,23Use documentationsrc/app/modal/admin-welcome-modal.component.html
- 26
+ 26,28Setup your account, managing video playlists, discover third-party applications...src/app/modal/admin-welcome-modal.component.html
- 28
+ 28,29Useful linkssrc/app/modal/admin-welcome-modal.component.html
- 38
+ 38,40
- Official PeerTube website (news, support, contribute...): https://joinpeertube.org
+ Official PeerTube website (news, support, contribute...): https://joinpeertube.orgsrc/app/modal/admin-welcome-modal.component.html
- 41,42
+ 42,43
- Put your instance on the public PeerTube index: https://instances.joinpeertube.org/instances
+ Put your instance on the public PeerTube index: https://instances.joinpeertube.org/instancessrc/app/modal/admin-welcome-modal.component.html
- 45,46
+ 46,47
- It's time to configure your instance!
+ It's time to configure your instance!src/app/modal/admin-welcome-modal.component.html
- 56
+ 56,58
- Choosing your instance name, setting up a description, specifying who you are, why you created your instance and how long you plan to maintain it is very important for visitors to understand on what type of instance they are.
+ Choosing your instance name, setting up a description, specifying who you are, why you created your instance and how long you plan to maintain it is very important for visitors to understand on what type of instance they are. src/app/modal/admin-welcome-modal.component.html
- 58,62
+ 59,62
- If you want to open registrations, please decide what your moderation rules and instance terms of service are, as well as specify the categories and languages and your moderators speak. This way, you will help users to register on the appropriate PeerTube instance.
+ If you want to open registrations, please decide what your moderation rules and instance terms of service are, as well as specify the categories and languages and your moderators speak. This way, you will help users to register on the appropriate PeerTube instance. src/app/modal/admin-welcome-modal.component.html
- 64,68
+ 65,69
@@ -14872,7 +14873,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Configure my instance src/app/modal/admin-welcome-modal.component.html
- 81,83
+ 82,83
@@ -14886,84 +14887,84 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Configuration warning!src/app/modal/instance-config-warning-modal.component.html
- 3
+ 3,4You enabled user registration on your instance but did not configure the following fields:src/app/modal/instance-config-warning-modal.component.html
- 12
+ 12,14Instance namesrc/app/modal/instance-config-warning-modal.component.html
- 15
+ 15,16Instance short descriptionsrc/app/modal/instance-config-warning-modal.component.html
- 16
+ 16,18Who you aresrc/app/modal/instance-config-warning-modal.component.html
- 18
+ 18,19How long you plan to maintain your instancesrc/app/modal/instance-config-warning-modal.component.html
- 19
+ 19,20How you plan to pay for keeping your instance runningsrc/app/modal/instance-config-warning-modal.component.html
- 20
+ 20,22How you will moderate your instancesrc/app/modal/instance-config-warning-modal.component.html
- 22
+ 22,23Instance termssrc/app/modal/instance-config-warning-modal.component.html
- 23
+ 23,24
- Please consider configuring these fields to help people to choose the appropriate instance. Without them, your instance may not be referenced on the JoinPeerTube website.
+ Please consider configuring these fields to help people to choose the appropriate instance. Without them, your instance may not be referenced on the JoinPeerTube website. src/app/modal/instance-config-warning-modal.component.html
- 26,29
+ 27,30
- Don't show me this warning anymore
+ Don't show me this warning anymoresrc/app/modal/instance-config-warning-modal.component.html
- 35
+ 35,37 Configure src/app/modal/instance-config-warning-modal.component.html
- 45,47
+ 46,47
@@ -15732,7 +15733,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- External channel URL must begin with "https://" or "http://"
+ External channel URL must begin with "https://" or "http://"src/app/shared/form-validators/video-channel-validators.ts60
@@ -16008,22 +16009,22 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Reportersrc/app/shared/shared-abuse-list/abuse-details.component.html
- 7
+ 7,9src/app/shared/shared-abuse-list/abuse-list-table.component.html
- 23
+ 23,24
-
+ src/app/shared/shared-abuse-list/abuse-details.component.html
- 21,23
+ 22,26src/app/shared/shared-abuse-list/abuse-details.component.html
- 42,44
+ 43,47
@@ -16041,42 +16042,42 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Reporteesrc/app/shared/shared-abuse-list/abuse-details.component.html
- 29
+ 29,30Updatedsrc/app/shared/shared-abuse-list/abuse-details.component.html
- 50
+ 50,51Reported partsrc/app/shared/shared-abuse-list/abuse-details.component.html
- 74
+ 74,75Notesrc/app/shared/shared-abuse-list/abuse-details.component.html
- 81
+ 81,82The video was deletedsrc/app/shared/shared-abuse-list/abuse-details.component.html
- 90
+ 90,91Comment:src/app/shared/shared-abuse-list/abuse-details.component.html
- 96
+ 96,97
@@ -16133,35 +16134,35 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Video/Comment/Accountsrc/app/shared/shared-abuse-list/abuse-list-table.component.html
- 24
+ 24,25Messagessrc/app/shared/shared-abuse-list/abuse-list-table.component.html
- 27
+ 27,28Internal notesrc/app/shared/shared-abuse-list/abuse-list-table.component.html
- 28
+ 28,29 Deleted account src/app/shared/shared-abuse-list/abuse-list-table.component.html
- 56,58
+ 57,58This video has been reported multiple times.src/app/shared/shared-abuse-list/abuse-list-table.component.html
- 68
+ 68,69
@@ -16175,28 +16176,28 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Video was deletedsrc/app/shared/shared-abuse-list/abuse-list-table.component.html
- 81
+ 81,82(Deleted video)src/app/shared/shared-abuse-list/abuse-list-table.component.html
- 86
+ 86,87by on src/app/shared/shared-abuse-list/abuse-list-table.component.html
- 89
+ 89,90 Account deleted src/app/shared/shared-abuse-list/abuse-list-table.component.html
- 115,117
+ 116,117
@@ -16470,7 +16471,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
No messages for now. src/app/shared/shared-abuse-list/abuse-message-modal.component.html
- 29,31
+ 30,31
@@ -16498,14 +16499,14 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Moderation commentsrc/app/shared/shared-abuse-list/moderation-comment-modal.component.html
- 3
+ 3,5 This comment can only be seen by you or the other moderators. src/app/shared/shared-abuse-list/moderation-comment-modal.component.html
- 22,24
+ 23,24
@@ -16526,25 +16527,25 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Upload a new avatarsrc/app/shared/shared-actor-image-edit/actor-avatar-edit.component.html
- 7
+ 7,8src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.html
- 20
+ 20,21Change your avatarsrc/app/shared/shared-actor-image-edit/actor-avatar-edit.component.html
- 14
+ 14,15Remove avatarsrc/app/shared/shared-actor-image-edit/actor-avatar-edit.component.html
- 26
+ 26,27
@@ -16569,21 +16570,21 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Change your bannersrc/app/shared/shared-actor-image-edit/actor-banner-edit.component.html
- 14
+ 14,15Remove bannersrc/app/shared/shared-actor-image-edit/actor-banner-edit.component.html
- 24
+ 24,25Upload a new bannersrc/app/shared/shared-actor-image-edit/actor-banner-edit.component.html
- 33
+ 33,34
@@ -16594,10 +16595,10 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Markdown compatible that also supports custom PeerTube HTML tags
+ Markdown compatible that also supports custom PeerTube HTML tagssrc/app/shared/shared-custom-markup/custom-markup-help.component.html
- 2
+ 2,3
@@ -16611,14 +16612,14 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
{VAR_PLURAL, plural, =1 {1 videos} other { videos}}src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.html
- 16
+ 16,17Latest published videosrc/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.html
- 24
+ 24,26
@@ -16660,7 +16661,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Filter...src/app/shared/shared-forms/advanced-input-filter.component.html
- 21
+ 21,22
@@ -16685,28 +16686,28 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Copiedsrc/app/shared/shared-forms/input-text.component.html
- 15
+ 16 COPY src/app/shared/shared-forms/input-text.component.html
- 17,19
+ 18,19Truncated previewsrc/app/shared/shared-forms/markdown-textarea.component.html
- 12
+ 12,14Complete previewsrc/app/shared/shared-forms/markdown-textarea.component.html
- 20
+ 20,22
@@ -16727,7 +16728,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Recommendedsrc/app/shared/shared-forms/peertube-checkbox.component.html
- 34
+ 34,35
@@ -16752,7 +16753,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- You can't select more than {maxItems, plural, =1 {1 item} other { items}}
+ You can't select more than {maxItems, plural, =1 {1 item} other { items}}src/app/shared/shared-forms/select/select-checkbox-all.component.ts84
@@ -16797,14 +16798,14 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
yessrc/app/shared/shared-instance/feature-boolean.component.html
- 2
+ 2,3nosrc/app/shared/shared-instance/feature-boolean.component.html
- 5
+ 5,6
@@ -16815,7 +16816,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
src/app/shared/shared-instance/instance-features-table.component.html
- 4
+ 4,5
@@ -16829,21 +16830,21 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Who are we?src/app/shared/shared-instance/instance-about-accordion.component.html
- 38
+ 38,39How long do we plan to maintain this instance?src/app/shared/shared-instance/instance-about-accordion.component.html
- 43
+ 43,44How will we finance this instance?src/app/shared/shared-instance/instance-about-accordion.component.html
- 48
+ 48,49
@@ -16857,172 +16858,172 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
PeerTube versionsrc/app/shared/shared-instance/instance-features-table.component.html
- 6
+ 6,8Default NSFW/sensitive videos policysrc/app/shared/shared-instance/instance-features-table.component.html
- 13
+ 13,14can be redefined by the userssrc/app/shared/shared-instance/instance-features-table.component.html
- 14
+ 14,15User registrationsrc/app/shared/shared-instance/instance-features-table.component.html
- 21
+ 21,23Video uploadssrc/app/shared/shared-instance/instance-features-table.component.html
- 27
+ 27,28src/app/shared/shared-instance/instance-features-table.component.html
- 38
+ 38,39Transcoding in multiple resolutionssrc/app/shared/shared-instance/instance-features-table.component.html
- 31
+ 31,32Requires manual validation by moderatorssrc/app/shared/shared-instance/instance-features-table.component.html
- 40
+ 40,41Automatically publishedsrc/app/shared/shared-instance/instance-features-table.component.html
- 41
+ 41,42
- Unlimited ( per day)
+ Unlimited ( per day)src/app/shared/shared-instance/instance-features-table.component.html
- 59,60
+ 60,62Live streaming enabledsrc/app/shared/shared-instance/instance-features-table.component.html
- 70
+ 70,71Transcode live video in multiple resolutionssrc/app/shared/shared-instance/instance-features-table.component.html
- 77
+ 77,78Max parallel livessrc/app/shared/shared-instance/instance-features-table.component.html
- 84
+ 84,85 per user / per instance src/app/shared/shared-instance/instance-features-table.component.html
- 85,87
+ 86,88Video Importsrc/app/shared/shared-instance/instance-features-table.component.html
- 91
+ 91,92HTTP import (YouTube, Vimeo, direct URL...)src/app/shared/shared-instance/instance-features-table.component.html
- 95
+ 95,96Torrent importsrc/app/shared/shared-instance/instance-features-table.component.html
- 102
+ 102,103Channel synchronization with other platforms (YouTube, Vimeo, ...)src/app/shared/shared-instance/instance-features-table.component.html
- 109
+ 109,110User Import/Exportsrc/app/shared/shared-instance/instance-features-table.component.html
- 116
+ 116,117Users can export their datasrc/app/shared/shared-instance/instance-features-table.component.html
- 120
+ 120,121Users can import their datasrc/app/shared/shared-instance/instance-features-table.component.html
- 127
+ 127,128Users can resolve distant contentsrc/app/shared/shared-instance/instance-features-table.component.html
- 138
+ 138,139Plugins & Themessrc/app/shared/shared-instance/instance-features-table.component.html
- 145
+ 145,146Available themessrc/app/shared/shared-instance/instance-features-table.component.html
- 149
+ 149,150Plugins enabledsrc/app/shared/shared-instance/instance-features-table.component.html
- 158
+ 158,159
@@ -17251,7 +17252,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Toggle this date format to ""
+ Toggle this date format to ""src/app/shared/shared-main/date/date-toggle.component.ts32
@@ -17272,17 +17273,17 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Some of your channels are not fully set up. Make them welcoming and explicit about what you publish by adding a banner, an avatar and a description.
+ Some of your channels are not fully set up. Make them welcoming and explicit about what you publish by adding a banner, an avatar and a description.src/app/shared/shared-main/misc/channels-setup-message.component.html
- 5
+ 5,6Set up my channelssrc/app/shared/shared-main/misc/channels-setup-message.component.html
- 6
+ 6,7
@@ -17293,7 +17294,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- <a href="https://en.wikipedia.org/wiki/Markdown#Example" target="_blank" rel="noopener noreferrer">Markdown</a> compatible that supports:
+ <a href="https://en.wikipedia.org/wiki/Markdown#Example" target="_blank" rel="noopener noreferrer">Markdown</a> compatible that supports:src/app/shared/shared-main/misc/help.component.ts80
@@ -17342,7 +17343,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- PeerTube considers video "" is already being transcoded.
+ PeerTube considers video "" is already being transcoded.src/app/shared/shared-main/video/video.service.ts351
@@ -17492,59 +17493,59 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Instance mutedsrc/app/shared/shared-moderation/account-block-badges.component.html
- 2
+ 2,3Muted by your instancesrc/app/shared/shared-moderation/account-block-badges.component.html
- 3
+ 3,4Instance muted by your instancesrc/app/shared/shared-moderation/account-block-badges.component.html
- 4
+ 4,5
- Muted at
+ Muted at src/app/shared/shared-moderation/account-blocklist.component.html
- 24
+ 24,26src/app/shared/shared-moderation/account-blocklist.component.html
- 24
+ 24,26src/app/shared/shared-moderation/server-blocklist.component.html
- 32
+ 32,34src/app/shared/shared-moderation/server-blocklist.component.html
- 32
+ 32,34Unmutesrc/app/shared/shared-moderation/account-blocklist.component.html
- 31
+ 31,32src/app/shared/shared-moderation/account-blocklist.component.html
- 31
+ 31,32src/app/shared/shared-moderation/server-blocklist.component.html
- 39
+ 39,40src/app/shared/shared-moderation/server-blocklist.component.html
- 39
+ 39,40
@@ -17592,10 +17593,10 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- 1 host (without "http://") per line
+ 1 host (without "http://") per linesrc/app/shared/shared-moderation/batch-domains-modal.component.html
- 13
+ 13,15
@@ -17637,26 +17638,26 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
What is the issue?src/app/shared/shared-moderation/report-modals/report.component.html
- 15
+ 15,17src/app/shared/shared-moderation/report-modals/report.component.html
- 15
+ 15,17src/app/shared/shared-moderation/report-modals/video-report.component.html
- 14
+ 14,16
- Your report will be sent to moderators of and will be forwarded to the comment origin () too.
+ Your report will be sent to moderators of and will be forwarded to the comment origin () too. src/app/shared/shared-moderation/report-modals/report.component.html
- 37,39
+ 38,41src/app/shared/shared-moderation/report-modals/report.component.html
- 37,39
+ 38,41
@@ -17675,55 +17676,55 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Report video ""
+ Report video ""src/app/shared/shared-moderation/report-modals/video-report.component.html
- 3
+ 3,4Start atsrc/app/shared/shared-moderation/report-modals/video-report.component.html
- 41
+ 41,42src/app/shared/shared-share-modal/video-share.component.html
- 163
+ 163,164src/app/shared/shared-video-playlist/video-add-to-playlist.component.html
- 36
+ 36,37src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html
- 75
+ 75,76Stop atsrc/app/shared/shared-moderation/report-modals/video-report.component.html
- 56
+ 57src/app/shared/shared-share-modal/video-share.component.html
- 210
+ 211src/app/shared/shared-video-playlist/video-add-to-playlist.component.html
- 37
+ 37,39src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html
- 89
+ 90
- Your report will be sent to moderators of and will be forwarded to the video origin () too.
+ Your report will be sent to moderators of and will be forwarded to the video origin () too. src/app/shared/shared-moderation/report-modals/video-report.component.html
- 68,70
+ 69,72
@@ -17817,7 +17818,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
A banned user will no longer be able to login. src/app/shared/shared-moderation/user-ban-modal.component.html
- 11,13
+ 12,13
@@ -17831,7 +17832,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Mute to also hide videos/commentssrc/app/shared/shared-moderation/user-ban-modal.component.html
- 29
+ 29,30
@@ -17856,7 +17857,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Ban ""
+ Ban ""src/app/shared/shared-moderation/user-ban-modal.component.ts104
@@ -17877,7 +17878,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- If you remove this user, you won't be able to create another user or channel with <strong></strong> username!
+ If you remove this user, you won't be able to create another user or channel with <strong></strong> username!src/app/shared/shared-moderation/user-moderation-dropdown.component.ts108
@@ -18093,7 +18094,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Show this user's content to the users of this instance again.
+ Show this user's content to the users of this instance again.src/app/shared/shared-moderation/user-moderation-dropdown.component.ts385
@@ -18145,21 +18146,21 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Block videossrc/app/shared/shared-moderation/video-block.component.html
- 4
+ 4,5
- Block video ""
+ Block video ""src/app/shared/shared-moderation/video-block.component.html
- 8
+ 8,9
- Block live ""
+ Block live ""src/app/shared/shared-moderation/video-block.component.html
- 9
+ 9,10
@@ -18173,28 +18174,28 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Unfederatesrc/app/shared/shared-moderation/video-block.component.html
- 33
+ 33,34This will ask remote instances to delete local videossrc/app/shared/shared-moderation/video-block.component.html
- 36
+ 36,37This will ask remote instances to delete this videosrc/app/shared/shared-moderation/video-block.component.html
- 37
+ 37,38 Blocking a live will automatically terminate the live stream. src/app/shared/shared-moderation/video-block.component.html
- 42,44
+ 43,44
@@ -18215,153 +18216,153 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Share the playlistsrc/app/shared/shared-share-modal/video-share.component.html
- 14
+ 14,16
- This playlist is private so you won't be able to share it with external users
+ This playlist is private so you won't be able to share it with external userssrc/app/shared/shared-share-modal/video-share.component.html
- 17
+ 17,19 Update playlist privacy src/app/shared/shared-share-modal/video-share.component.html
- 19,21
+ 20,21QR-Codesrc/app/shared/shared-share-modal/video-share.component.html
- 37
+ 37,39src/app/shared/shared-share-modal/video-share.component.html
- 127
+ 127,129Embedsrc/app/shared/shared-share-modal/video-share.component.html
- 47
+ 47,49src/app/shared/shared-share-modal/video-share.component.html
- 137
+ 137,139
- The url is not secured (no HTTPS), so the embed video won't work on HTTPS websites (web browsers block non secured HTTP requests on HTTPS websites).
+ The url is not secured (no HTTPS), so the embed video won't work on HTTPS websites (web browsers block non secured HTTP requests on HTTPS websites). src/app/shared/shared-share-modal/video-share.component.html
- 56,58
+ 57src/app/shared/shared-share-modal/video-share.component.html
- 146,148
+ 147Share the playlist at this video positionsrc/app/shared/shared-share-modal/video-share.component.html
- 74
+ 74,75Only display embed URLsrc/app/shared/shared-share-modal/video-share.component.html
- 82
+ 82,83src/app/shared/shared-share-modal/video-share.component.html
- 192
+ 192,193Responsive embedsrc/app/shared/shared-share-modal/video-share.component.html
- 89
+ 89,90src/app/shared/shared-share-modal/video-share.component.html
- 199
+ 199,200Share the videosrc/app/shared/shared-share-modal/video-share.component.html
- 100
+ 100,102
- This video is private so you won't be able to share it with external users
+ This video is private so you won't be able to share it with external userssrc/app/shared/shared-share-modal/video-share.component.html
- 103
+ 103,105 Update video privacy src/app/shared/shared-share-modal/video-share.component.html
- 105,107
+ 106,107 This video is password protected, please note that recipients will require the corresponding password to access the content. src/app/shared/shared-share-modal/video-share.component.html
- 110,112
+ 111,112Auto select subtitlesrc/app/shared/shared-share-modal/video-share.component.html
- 178
+ 178,179Autoplaysrc/app/shared/shared-share-modal/video-share.component.html
- 225
+ 225,226Loopsrc/app/shared/shared-share-modal/video-share.component.html
- 239
+ 240Use origin instance URLsrc/app/shared/shared-share-modal/video-share.component.html
- 246
+ 246,247Display video titlesrc/app/shared/shared-share-modal/video-share.component.html
- 254
+ 254,255P2Psrc/app/shared/shared-share-modal/video-share.component.html
- 261
+ 262
@@ -18375,35 +18376,35 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Display player control barsrc/app/shared/shared-share-modal/video-share.component.html
- 275
+ 275,276Display PeerTube button linksrc/app/shared/shared-share-modal/video-share.component.html
- 282
+ 282,283 More customization src/app/shared/shared-share-modal/video-share.component.html
- 296,298
+ 297 Less customization src/app/shared/shared-share-modal/video-share.component.html
- 304,306
+ 305Support src/app/shared/shared-support-modal/support-modal.component.html
- 3
+ 3,4
@@ -18438,7 +18439,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
default theme ()src/app/shared/shared-user-settings/user-interface-settings.component.html
- 8
+ 8,9
@@ -18463,21 +18464,21 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Default policy on videos containing sensitive contentsrc/app/shared/shared-user-settings/user-video-settings.component.html
- 4
+ 4,5Policy for sensitive videossrc/app/shared/shared-user-settings/user-video-settings.component.html
- 15
+ 15,16Only display videos in the following languages/subtitlessrc/app/shared/shared-user-settings/user-video-settings.component.html
- 25
+ 25,26
@@ -18491,42 +18492,42 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Help share videos being playedsrc/app/shared/shared-user-settings/user-video-settings.component.html
- 42
+ 42,44
- The sharing system implies that some technical information about your system (such as a public IP address) can be sent to other peers, but greatly helps to reduce server load.
+ The sharing system implies that some technical information about your system (such as a public IP address) can be sent to other peers, but greatly helps to reduce server load.src/app/shared/shared-user-settings/user-video-settings.component.html
- 45
+ 45,46Automatically play videossrc/app/shared/shared-user-settings/user-video-settings.component.html
- 53
+ 53,55When on a video page, directly start playing the video.src/app/shared/shared-user-settings/user-video-settings.component.html
- 56
+ 56,57Automatically start playing the next videosrc/app/shared/shared-user-settings/user-video-settings.component.html
- 64
+ 64,66When a video ends, follow up with the next suggested video.src/app/shared/shared-user-settings/user-video-settings.component.html
- 67
+ 67,68
@@ -18558,24 +18559,24 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Remote subscribeRemote interact
+ Remote subscribeRemote interactsrc/app/shared/shared-user-subscription/remote-subscribe.component.html
- 11,12
+ 11,15 You can subscribe to the channel via any ActivityPub-capable fediverse instance (PeerTube, Mastodon or Pleroma for example). src/app/shared/shared-user-subscription/remote-subscribe.component.html
- 17,19
+ 18,19 You can interact with this via any ActivityPub-capable fediverse instance (PeerTube, Mastodon or Pleroma for example). src/app/shared/shared-user-subscription/remote-subscribe.component.html
- 25,27
+ 26,27
@@ -18596,7 +18597,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Subscribe to all channelssrc/app/shared/shared-user-subscription/subscribe-button.component.html
- 11
+ 11,12
@@ -18631,42 +18632,42 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Using an ActivityPub accountsrc/app/shared/shared-user-subscription/subscribe-button.component.html
- 49
+ 49,51Subscribe with an account on this instancesrc/app/shared/shared-user-subscription/subscribe-button.component.html
- 52
+ 52,53Subscribe with your local accountsrc/app/shared/shared-user-subscription/subscribe-button.component.html
- 53
+ 53,54Subscribe with a remote account:src/app/shared/shared-user-subscription/subscribe-button.component.html
- 57
+ 57,58Using a syndication feedsrc/app/shared/shared-user-subscription/subscribe-button.component.html
- 63
+ 63,64Subscribe via RSSsrc/app/shared/shared-user-subscription/subscribe-button.component.html
- 64
+ 64,66
@@ -18715,7 +18716,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Auto tagssrc/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html
- 40
+ 40,41
@@ -18729,14 +18730,14 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Commented videosrc/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html
- 76
+ 76,78Only display comments with this tagsrc/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html
- 92
+ 92,93
@@ -18838,74 +18839,74 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- See the documentation to learn how to use the PeerTube live streaming feature.
+ See the documentation to learn how to use the PeerTube live streaming feature.
src/app/shared/shared-video-live/live-documentation-link.component.html
- 1,4
+ 2,5Live informationsrc/app/shared/shared-video-live/live-stream-information.component.html
- 3
+ 3,5Permanent/Recurring livesrc/app/shared/shared-video-live/live-stream-information.component.html
- 12
+ 12,13Replay will be savedsrc/app/shared/shared-video-live/live-stream-information.component.html
- 13
+ 13,14Latest live sessionssrc/app/shared/shared-video-live/live-stream-information.component.html
- 38
+ 38,40
- Started on
+ Started on src/app/shared/shared-video-live/live-stream-information.component.html
- 44
+ 44,45
- Ended on
+ Ended on src/app/shared/shared-video-live/live-stream-information.component.html
- 45
+ 45,46Go to replaysrc/app/shared/shared-video-live/live-stream-information.component.html
- 46
+ 46,47Replay is being processed...src/app/shared/shared-video-live/live-stream-information.component.html
- 47
+ 47,48Update live settingssrc/app/shared/shared-video-live/live-stream-information.component.html
- 57
+ 57,58
@@ -18993,7 +18994,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- The live stream will be automatically terminated and replays won't be saved.
+ The live stream will be automatically terminated and replays won't be saved.src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts262
@@ -19014,14 +19015,14 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Do you really want to remove "" files?
+ Do you really want to remove "" files?src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts321
- Remove "" files
+ Remove "" filessrc/app/shared/shared-video-miniature/video-actions-dropdown.component.ts323
@@ -19035,7 +19036,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Transcoding jobs created for "".
+ Transcoding jobs created for "".src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts341
@@ -19088,18 +19089,18 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Subtitlessrc/app/shared/shared-video-miniature/video-download.component.html
- 9
+ 9,10 The following link contains a private token and should not be shared with anyone. src/app/shared/shared-video-miniature/video-download.component.html
- 20,22
+ 21,22
- Original file
+ Original filesrc/app/shared/shared-video-miniature/video-download.component.html57,62
@@ -19109,35 +19110,35 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Formatsrc/app/shared/shared-video-miniature/video-download.component.html
- 94
+ 94,96Video streamsrc/app/shared/shared-video-miniature/video-download.component.html
- 106
+ 106,108Audio streamsrc/app/shared/shared-video-miniature/video-download.component.html
- 118
+ 118,120Direct downloadsrc/app/shared/shared-video-miniature/video-download.component.html
- 135
+ 135,136Torrent (.torrent file)src/app/shared/shared-video-miniature/video-download.component.html
- 140
+ 140,141
@@ -19243,10 +19244,11 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Update your settings
+ Update your settingssrc/app/shared/shared-video-miniature/video-filters-header.component.html
- 2,6
+ 3,7
@@ -19267,7 +19269,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Remove this filtersrc/app/shared/shared-video-miniature/video-filters-header.component.html
- 41
+ 41,42src/app/shared/shared-video-miniature/video-filters-header.component.ts
@@ -19275,122 +19277,122 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Sort by "Recently Added"
+ Sort by "Recently Added"src/app/shared/shared-video-miniature/video-filters-header.component.html
- 55
+ 55,56
- Sort by "Original Publication Date"
+ Sort by "Original Publication Date"src/app/shared/shared-video-miniature/video-filters-header.component.html
- 56
+ 56,58
- Sort by "Name"
+ Sort by "Name"src/app/shared/shared-video-miniature/video-filters-header.component.html
- 58
+ 58,60
- Sort by "Recent Views"
+ Sort by "Recent Views"src/app/shared/shared-video-miniature/video-filters-header.component.html
- 61
+ 61,62
- Sort by "Hot"
+ Sort by "Hot"src/app/shared/shared-video-miniature/video-filters-header.component.html
- 65
+ 65,66
- Sort by "Likes"
+ Sort by "Likes"src/app/shared/shared-video-miniature/video-filters-header.component.html
- 69
+ 69,70
- Sort by "Global Views"
+ Sort by "Global Views"src/app/shared/shared-video-miniature/video-filters-header.component.html
- 72
+ 72,73Languages:src/app/shared/shared-video-miniature/video-filters-header.component.html
- 80
+ 80,81Sensitive content:src/app/shared/shared-video-miniature/video-filters-header.component.html
- 87
+ 87,88Scope:src/app/shared/shared-video-miniature/video-filters-header.component.html
- 102
+ 102,104Local videos (this instance)src/app/shared/shared-video-miniature/video-filters-header.component.html
- 106
+ 106,107Federated videos (this instance + followed instances)src/app/shared/shared-video-miniature/video-filters-header.component.html
- 111
+ 111,112Type:src/app/shared/shared-video-miniature/video-filters-header.component.html
- 116
+ 116,118VOD & Live videossrc/app/shared/shared-video-miniature/video-filters-header.component.html
- 120
+ 120,121Categories:src/app/shared/shared-video-miniature/video-filters-header.component.html
- 135
+ 135,137Moderation:src/app/shared/shared-video-miniature/video-filters-header.component.html
- 141
+ 141,143Display all videos (private, unlisted, password protected or not yet published)src/app/shared/shared-video-miniature/video-filters-header.component.html
- 146
+ 146,147
@@ -19471,14 +19473,14 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html
- 25
+ 25,26 Sensitive src/app/shared/shared-video-miniature/video-miniature.component.html
- 70,72
+ 71,72
@@ -19570,42 +19572,42 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- Subscribe to RSS feed ""
+ Subscribe to RSS feed ""src/app/shared/shared-video-miniature/videos-list.component.html
- 8
+ 8,10
- Today's videos
+ Today's videossrc/app/shared/shared-video-miniature/videos-list.component.ts172
- Yesterday's videos
+ Yesterday's videossrc/app/shared/shared-video-miniature/videos-list.component.ts173
- This week's videos
+ This week's videossrc/app/shared/shared-video-miniature/videos-list.component.ts174
- This month's videos
+ This month's videossrc/app/shared/shared-video-miniature/videos-list.component.ts175
- Last month's videos
+ Last month's videossrc/app/shared/shared-video-miniature/videos-list.component.ts176
@@ -19633,7 +19635,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Save tosrc/app/shared/shared-video-playlist/video-add-to-playlist.component.html
- 4
+ 4,5
@@ -19647,7 +19649,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Create a private playlistsrc/app/shared/shared-video-playlist/video-add-to-playlist.component.html
- 67
+ 67,68
@@ -19715,7 +19717,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Delete from src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html
- 106
+ 106,107
@@ -19747,7 +19749,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
src/app/shared/shared-video-playlist/video-playlist-miniature.component.html
- 25,27
+ 26,29
@@ -19772,228 +19774,228 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
- You don't have notifications.
+ You don't have notifications.src/app/shared/standalone-notifications/user-notifications.component.html
- 1
+ 1,3
- published a new video:
+ published a new video: src/app/shared/standalone-notifications/user-notifications.component.html
- 14,15
+ 15,16 The notification concerns a video now unavailable src/app/shared/standalone-notifications/user-notifications.component.html
- 20,22
+ 21src/app/shared/standalone-notifications/user-notifications.component.html
- 236,238
+ 237
- Your video has been unblocked
+ Your video has been unblocked src/app/shared/standalone-notifications/user-notifications.component.html
- 29,31
+ 30,31
- Your video has been blocked
+ Your video has been blocked src/app/shared/standalone-notifications/user-notifications.component.html
- 37,39
+ 38,39
- A new video abuse has been created on video
+ A new video abuse has been created on video src/app/shared/standalone-notifications/user-notifications.component.html
- 46
+ 46,47
- A new comment abuse has been created on video
+ A new comment abuse has been created on video src/app/shared/standalone-notifications/user-notifications.component.html
- 50
+ 50,51
- A new account abuse has been created on account
+ A new account abuse has been created on account src/app/shared/standalone-notifications/user-notifications.component.html
- 54
+ 54,55
- A new abuse has been created
+ A new abuse has been created src/app/shared/standalone-notifications/user-notifications.component.html59,60
- Your abuse has been acceptedrejected
+ Your abuse has been acceptedrejectedsrc/app/shared/standalone-notifications/user-notifications.component.html
- 67,69
+ 67,71
- Abuse has a new message
+ Abuse has a new message src/app/shared/standalone-notifications/user-notifications.component.html77,78
- The recently added video has been automatically blocked
+ The recently added video has been automatically blockedsrc/app/shared/standalone-notifications/user-notifications.component.html
- 84,85
+ 85,86
- commented your video . This comment requires your approval
+ commented your video . This comment requires your approvalsrc/app/shared/standalone-notifications/user-notifications.component.html
- 96,97
+ 96,99 The notification concerns a comment now unavailable src/app/shared/standalone-notifications/user-notifications.component.html
- 104,106
+ 105src/app/shared/standalone-notifications/user-notifications.component.html
- 169,171
+ 170
- Your video has been published
+ Your video has been published src/app/shared/standalone-notifications/user-notifications.component.html
- 113,115
+ 114,115
- Your video import succeeded
+ Your video import succeeded src/app/shared/standalone-notifications/user-notifications.component.html
- 122,123
+ 122,124
- Your video import failed
+ Your video import failed src/app/shared/standalone-notifications/user-notifications.component.html
- 130,131
+ 130,132
- User registered on your instance
+ User registered on your instance src/app/shared/standalone-notifications/user-notifications.component.html
- 137,139
+ 138,139
- is following your channel your account
+ is following your channel your accountsrc/app/shared/standalone-notifications/user-notifications.component.html
- 148,151
+ 148,153
- mentioned you on video
+ mentioned you on video src/app/shared/standalone-notifications/user-notifications.component.html
- 162
+ 162,163
- Your instance has a new follower () awaiting your approval
+ Your instance has a new follower () awaiting your approvalsrc/app/shared/standalone-notifications/user-notifications.component.html
- 178,180
+ 179,182
- Your instance automatically followed
+ Your instance automatically followed src/app/shared/standalone-notifications/user-notifications.component.html
- 187,188
+ 188,189
- A new version of the plugin/theme is available:
+ A new version of the plugin/theme is available: src/app/shared/standalone-notifications/user-notifications.component.html
- 196,197
+ 196,198
- A new version of PeerTube is available:
+ A new version of PeerTube is available: src/app/shared/standalone-notifications/user-notifications.component.html
- 204,205
+ 204,206
- Your video edition has finished
+ Your video edition has finished src/app/shared/standalone-notifications/user-notifications.component.html
- 211,213
+ 212,213
- User wants to register on your instance
+ User wants to register on your instance src/app/shared/standalone-notifications/user-notifications.component.html
- 219,221
+ 220,221
- is live streaming in
+ is live streaming in src/app/shared/standalone-notifications/user-notifications.component.html
- 230,231
+ 231,232 The notification points to content now unavailable src/app/shared/standalone-notifications/user-notifications.component.html
- 245,247
+ 246,247Total uploadedsrc/app/shared/standalone-upload/upload-progress.component.html
- 3
+ 3,4Processing…src/app/shared/standalone-upload/upload-progress.component.html
- 8
+ 8,9Retrysrc/app/shared/standalone-upload/upload-progress.component.html
- 26
+ 26,27Retry failed upload
@@ -20008,22 +20010,22 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
List namesrc/app/shared/standalone-watched-words/watched-words-list-admin-owner.component.html
- 31
+ 31,32src/app/shared/standalone-watched-words/watched-words-list-save-modal.component.html
- 15
+ 15,17Wordssrc/app/shared/standalone-watched-words/watched-words-list-admin-owner.component.html
- 32
+ 32,33src/app/shared/standalone-watched-words/watched-words-list-save-modal.component.html
- 26
+ 26,28
@@ -20037,7 +20039,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
words src/app/shared/standalone-watched-words/watched-words-list-admin-owner.component.html
- 55,57
+ 56,59
@@ -20072,14 +20074,14 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular
Save watched words listsrc/app/shared/standalone-watched-words/watched-words-list-save-modal.component.html
- 5
+ 5,7One word or group of words per line.src/app/shared/standalone-watched-words/watched-words-list-save-modal.component.html
- 28
+ 28,30
diff --git a/client/src/main.ts b/client/src/main.ts
index b7bbd5b33..94ae2716b 100644
--- a/client/src/main.ts
+++ b/client/src/main.ts
@@ -1,31 +1,32 @@
-import { ApplicationRef, enableProdMode, APP_INITIALIZER, importProvidersFrom } from '@angular/core'
-import { enableDebugTools, BrowserModule, bootstrapApplication } from '@angular/platform-browser'
-import { environment } from './environments/environment'
-import { logger } from './root-helpers'
-import { AppComponent } from './app/app.component'
-import routes from './app/app.routes'
-import { ServiceWorkerModule } from '@angular/service-worker'
-import { polyfillICU } from './app/helpers'
-import { tap } from 'rxjs/operators'
-import {
- ServerService,
- PluginService,
- RedirectService, PreloadSelectedModulesList,
- MenuGuards,
- CustomReuseStrategy,
- getCoreProviders
-} from './app/core'
import { APP_BASE_HREF, registerLocaleData } from '@angular/common'
-import localeOc from '@app/helpers/locales/oc'
-import { RouteReuseStrategy, provideRouter, withInMemoryScrolling, withPreloading } from '@angular/router'
import { provideHttpClient } from '@angular/common/http'
+import { APP_INITIALIZER, ApplicationRef, enableProdMode, importProvidersFrom, provideZoneChangeDetection } from '@angular/core'
+import { BrowserModule, bootstrapApplication, enableDebugTools } from '@angular/platform-browser'
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations'
+import { RouteReuseStrategy, provideRouter, withInMemoryScrolling, withPreloading } from '@angular/router'
+import { ServiceWorkerModule } from '@angular/service-worker'
+import localeOc from '@app/helpers/locales/oc'
+import { getFormProviders } from '@app/shared/shared-forms/shared-form-providers'
+import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap'
import { LoadingBarModule } from '@ngx-loading-bar/core'
import { LoadingBarHttpClientModule } from '@ngx-loading-bar/http-client'
-import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap'
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations'
import { ToastModule } from 'primeng/toast'
+import { tap } from 'rxjs/operators'
+import { AppComponent } from './app/app.component'
+import routes from './app/app.routes'
+import {
+ CustomReuseStrategy,
+ MenuGuards,
+ PluginService,
+ PreloadSelectedModulesList,
+ RedirectService,
+ ServerService,
+ getCoreProviders
+} from './app/core'
+import { polyfillICU } from './app/helpers'
import { getMainProviders } from './app/shared/shared-main/main-providers'
-import { getFormProviders } from '@app/shared/shared-forms/shared-form-providers'
+import { environment } from './environments/environment'
+import { logger } from './root-helpers'
registerLocaleData(localeOc, 'oc')
@@ -51,6 +52,8 @@ logger.registerServerSending(environment.apiUrl)
const bootstrap = () => bootstrapApplication(AppComponent, {
providers: [
+ provideZoneChangeDetection({ eventCoalescing: true }),
+
importProvidersFrom(
BrowserModule,
BrowserAnimationsModule,
diff --git a/client/src/root-helpers/plugins-manager.ts b/client/src/root-helpers/plugins-manager.ts
index 8c168b0f9..c00230b54 100644
--- a/client/src/root-helpers/plugins-manager.ts
+++ b/client/src/root-helpers/plugins-manager.ts
@@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-implied-eval */
-import * as debug from 'debug'
+import debug from 'debug'
import { firstValueFrom, ReplaySubject } from 'rxjs'
import { first, shareReplay } from 'rxjs/operators'
import { RegisterClientHelpers } from 'src/types/register-client-option.model'
diff --git a/client/src/sass/primeng-custom.scss b/client/src/sass/primeng-custom.scss
index 0595ad574..2550ef1fe 100644
--- a/client/src/sass/primeng-custom.scss
+++ b/client/src/sass/primeng-custom.scss
@@ -3,7 +3,7 @@
@use '_icons' as *;
/* stylelint-disable */
-@import '~primeng/resources/primeng.css';
+@import 'primeng/resources/primeng.css';
// Override primeng style we don't want
input[type=button] {
diff --git a/client/src/shims/path.ts b/client/src/shims/path.ts
deleted file mode 100644
index 1f8c61a07..000000000
--- a/client/src/shims/path.ts
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('path-browserify')
diff --git a/client/src/standalone/embed-player-api/.npmignore b/client/src/standalone/embed-player-api/.npmignore
index 870b6315b..ef214bfc6 100644
--- a/client/src/standalone/embed-player-api/.npmignore
+++ b/client/src/standalone/embed-player-api/.npmignore
@@ -1,3 +1,3 @@
tsconfig.json
*.ts
-webpack.config.ts
+vite.config.mjs
diff --git a/client/src/standalone/embed-player-api/package.json b/client/src/standalone/embed-player-api/package.json
index a2d34a00d..017dccc72 100644
--- a/client/src/standalone/embed-player-api/package.json
+++ b/client/src/standalone/embed-player-api/package.json
@@ -4,7 +4,7 @@
"version": "0.0.7",
"description": "API to communicate with the PeerTube player embed",
"scripts": {
- "build": "../../../node_modules/.bin/tsc && ../../../node_modules/.bin/webpack --mode production --config ./webpack.config.js"
+ "build": "rm -rf ./build ./dist && ../../../node_modules/.bin/tsc && ../../../node_modules/.bin/vite build --mode production --config ./vite.config.mjs"
},
"repository": {
"type": "git",
diff --git a/client/src/standalone/embed-player-api/vite.config.mjs b/client/src/standalone/embed-player-api/vite.config.mjs
new file mode 100644
index 000000000..aad8ef4c7
--- /dev/null
+++ b/client/src/standalone/embed-player-api/vite.config.mjs
@@ -0,0 +1,30 @@
+import { dirname, resolve } from 'path'
+import { fileURLToPath } from 'url'
+import { defineConfig } from 'vite'
+import checker from 'vite-plugin-checker'
+
+const __dirname = dirname(fileURLToPath(import.meta.url));
+
+export default defineConfig(() => {
+ return {
+ build: {
+ outDir: resolve(__dirname, 'build'),
+ emptyOutDir: true,
+ minify: 'esbuild',
+ lib: {
+ name: 'PeerTubePlayer',
+ fileName: () => `player.min.js`,
+ formats: [ 'umd' ],
+ entry: './player.ts'
+ }
+ },
+
+ plugins: [
+ checker({
+ typescript: {
+ tsconfigPath: resolve(__dirname, 'tsconfig.json')
+ }
+ })
+ ]
+ }
+})
diff --git a/client/src/standalone/videos/embed.html b/client/src/standalone/videos/embed.html
index c0f9d4bb4..6c904669e 100644
--- a/client/src/standalone/videos/embed.html
+++ b/client/src/standalone/videos/embed.html
@@ -84,5 +84,7 @@
}
+
+