You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hellion/config/production.yaml.example

1060 lines
37 KiB
Plaintext

new file: .dockerignore new file: .editorconfig new file: .eslintrc.json new file: .gitignore new file: .gitpod.yml new file: .mocharc.cjs new file: CHANGELOG.md new file: CODE_OF_CONDUCT.md new file: CREDITS.md new file: SECURITY.md new file: apps/peertube-cli/.npmignore new file: apps/peertube-cli/README.md new file: apps/peertube-cli/package.json new file: apps/peertube-cli/scripts/build.js new file: apps/peertube-cli/scripts/watch.js new file: apps/peertube-cli/src/peertube-auth.ts new file: apps/peertube-cli/src/peertube-get-access-token.ts new file: apps/peertube-cli/src/peertube-plugins.ts new file: apps/peertube-cli/src/peertube-redundancy.ts new file: apps/peertube-cli/src/peertube-upload.ts new file: apps/peertube-cli/src/peertube.ts new file: apps/peertube-cli/src/shared/cli.ts new file: apps/peertube-cli/src/shared/index.ts new file: apps/peertube-cli/tsconfig.json new file: apps/peertube-cli/yarn.lock new file: apps/peertube-runner/.gitignore new file: apps/peertube-runner/.npmignore new file: apps/peertube-runner/README.md new file: apps/peertube-runner/package.json new file: apps/peertube-runner/scripts/build.js new file: apps/peertube-runner/scripts/watch.js new file: apps/peertube-runner/src/peertube-runner.ts new file: apps/peertube-runner/src/register/index.ts new file: apps/peertube-runner/src/register/register.ts new file: apps/peertube-runner/src/server/index.ts new file: apps/peertube-runner/src/server/process/index.ts new file: apps/peertube-runner/src/server/process/process.ts new file: apps/peertube-runner/src/server/process/shared/common.ts new file: apps/peertube-runner/src/server/process/shared/index.ts new file: apps/peertube-runner/src/server/process/shared/process-live.ts new file: apps/peertube-runner/src/server/process/shared/process-studio.ts new file: apps/peertube-runner/src/server/process/shared/process-transcription.ts new file: apps/peertube-runner/src/server/process/shared/process-vod.ts new file: apps/peertube-runner/src/server/process/shared/winston-logger.ts new file: apps/peertube-runner/src/server/server.ts new file: apps/peertube-runner/src/server/shared/index.ts new file: apps/peertube-runner/src/server/shared/supported-job.ts new file: apps/peertube-runner/src/shared/config-manager.ts new file: apps/peertube-runner/src/shared/http.ts new file: apps/peertube-runner/src/shared/index.ts new file: apps/peertube-runner/src/shared/ipc/index.ts new file: apps/peertube-runner/src/shared/ipc/ipc-client.ts new file: apps/peertube-runner/src/shared/ipc/ipc-server.ts new file: apps/peertube-runner/src/shared/ipc/shared/index.ts new file: apps/peertube-runner/src/shared/ipc/shared/ipc-request.model.ts new file: apps/peertube-runner/src/shared/ipc/shared/ipc-response.model.ts new file: apps/peertube-runner/src/shared/logger.ts new file: apps/peertube-runner/tsconfig.json new file: apps/peertube-runner/yarn.lock new file: client/.browserslistrc new file: client/.eslintrc.json new file: client/.gitignore new file: client/.stylelintrc.json new file: client/.xliffmerge.json new file: client/angular.json new file: client/e2e/fixtures/video.mp4 new file: client/e2e/fixtures/video2.mp4 new file: client/e2e/fixtures/video3.mp4 new file: client/e2e/src/commands/upload.ts new file: client/e2e/src/po/admin-config.po.ts new file: client/e2e/src/po/admin-plugin.po.ts new file: client/e2e/src/po/admin-registration.po.ts new file: client/e2e/src/po/anonymous-settings.po.ts new file: client/e2e/src/po/login.po.ts new file: client/e2e/src/po/my-account.po.ts new file: client/e2e/src/po/player.po.ts new file: client/e2e/src/po/signup.po.ts new file: client/e2e/src/po/video-list.po.ts new file: client/e2e/src/po/video-search.po.ts new file: client/e2e/src/po/video-update.po.ts new file: client/e2e/src/po/video-upload.po.ts new file: client/e2e/src/po/video-watch.po.ts new file: client/e2e/src/suites-all/live.e2e-spec.ts new file: client/e2e/src/suites-all/private-videos.e2e-spec.ts new file: client/e2e/src/suites-all/videos.e2e-spec.ts new file: client/e2e/src/suites-local/custom-server-defaults.e2e-spec.ts new file: client/e2e/src/suites-local/plugins.e2e-spec.ts new file: client/e2e/src/suites-local/signup.e2e-spec.ts new file: client/e2e/src/suites-local/user-settings.e2e-spec.ts new file: client/e2e/src/suites-local/video-password.e2e-spec.ts new file: client/e2e/src/suites-local/videos-list.e2e-spec.ts new file: client/e2e/src/types/common.ts new file: client/e2e/src/types/wdio.d.ts new file: client/e2e/src/utils/common.ts new file: client/e2e/src/utils/elements.ts new file: client/e2e/src/utils/email.ts new file: client/e2e/src/utils/files.ts new file: client/e2e/src/utils/hooks.ts new file: client/e2e/src/utils/index.ts new file: client/e2e/src/utils/mock-smtp.ts new file: client/e2e/src/utils/server.ts new file: client/e2e/src/utils/urls.ts new file: client/e2e/tsconfig.json new file: client/e2e/wdio.browserstack.conf.ts new file: client/e2e/wdio.local-test.conf.ts new file: client/e2e/wdio.local.conf.ts new file: client/e2e/wdio.main.conf.ts new file: client/package.json new file: client/proxy.config.json new file: client/src/app/+about/about-follows/about-follows.component.html new file: client/src/app/+about/about-follows/about-follows.component.scss new file: client/src/app/+about/about-follows/about-follows.component.ts new file: client/src/app/+about/about-instance/about-instance.component.html new file: client/src/app/+about/about-instance/about-instance.component.scss new file: client/src/app/+about/about-instance/about-instance.component.ts new file: client/src/app/+about/about-instance/about-instance.resolver.ts new file: client/src/app/+about/about-instance/contact-admin-modal.component.html new file: client/src/app/+about/about-instance/contact-admin-modal.component.scss new file: client/src/app/+about/about-instance/contact-admin-modal.component.ts new file: client/src/app/+about/about-instance/instance-statistics.component.html new file: client/src/app/+about/about-instance/instance-statistics.component.scss new file: client/src/app/+about/about-instance/instance-statistics.component.ts new file: client/src/app/+about/about-peertube/about-peertube.component.html new file: client/src/app/+about/about-peertube/about-peertube.component.scss new file: client/src/app/+about/about-peertube/about-peertube.component.ts new file: client/src/app/+about/about.component.html new file: client/src/app/+about/about.component.ts new file: client/src/app/+about/routes.ts new file: client/src/app/+accounts/account-video-channels/account-video-channels.component.html new file: client/src/app/+accounts/account-video-channels/account-video-channels.component.scss new file: client/src/app/+accounts/account-video-channels/account-video-channels.component.ts new file: client/src/app/+accounts/account-videos/account-videos.component.html new file: client/src/app/+accounts/account-videos/account-videos.component.ts new file: client/src/app/+accounts/accounts.component.html new file: client/src/app/+accounts/accounts.component.scss new file: client/src/app/+accounts/accounts.component.ts new file: client/src/app/+accounts/routes.ts new file: client/src/app/+admin/admin-moderation.component.html new file: client/src/app/+admin/admin-moderation.component.ts new file: client/src/app/+admin/admin-overview.component.html new file: client/src/app/+admin/admin-overview.component.ts new file: client/src/app/+admin/admin-settings.component.html new file: client/src/app/+admin/admin-settings.component.ts new file: client/src/app/+admin/config/config.routes.ts new file: client/src/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.html new file: client/src/app/+admin/config/edit-custom-config/edit-advanced-configuration.component.ts new file: client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.html new file: client/src/app/+admin/config/edit-custom-config/edit-basic-configuration.component.ts new file: client/src/app/+admin/config/edit-custom-config/edit-configuration.service.ts new file: client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html new file: client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.scss new file: client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts new file: client/src/app/+admin/config/edit-custom-config/edit-homepage.component.html new file: client/src/app/+admin/config/edit-custom-config/edit-homepage.component.ts new file: client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.html new file: client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.ts new file: client/src/app/+admin/config/edit-custom-config/edit-live-configuration.component.html new file: client/src/app/+admin/config/edit-custom-config/edit-live-configuration.component.ts new file: client/src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.html new file: client/src/app/+admin/config/edit-custom-config/edit-vod-transcoding.component.ts new file: client/src/app/+admin/config/edit-custom-config/index.ts new file: client/src/app/+admin/config/index.ts new file: client/src/app/+admin/config/shared/config.service.ts new file: client/src/app/+admin/follows/followers-list/followers-list.component.html new file: client/src/app/+admin/follows/followers-list/followers-list.component.scss new file: client/src/app/+admin/follows/followers-list/followers-list.component.ts new file: client/src/app/+admin/follows/followers-list/index.ts new file: client/src/app/+admin/follows/following-list/follow-modal.component.html new file: client/src/app/+admin/follows/following-list/follow-modal.component.scss new file: client/src/app/+admin/follows/following-list/follow-modal.component.ts new file: client/src/app/+admin/follows/following-list/following-list.component.html new file: client/src/app/+admin/follows/following-list/following-list.component.scss new file: client/src/app/+admin/follows/following-list/following-list.component.ts new file: client/src/app/+admin/follows/following-list/index.ts new file: client/src/app/+admin/follows/follows.routes.ts new file: client/src/app/+admin/follows/index.ts new file: client/src/app/+admin/follows/shared/redundancy-checkbox.component.html new file: client/src/app/+admin/follows/shared/redundancy-checkbox.component.ts new file: client/src/app/+admin/follows/video-redundancies-list/index.ts new file: client/src/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.html new file: client/src/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.scss new file: client/src/app/+admin/follows/video-redundancies-list/video-redundancies-list.component.ts new file: client/src/app/+admin/follows/video-redundancies-list/video-redundancy-information.component.html new file: client/src/app/+admin/follows/video-redundancies-list/video-redundancy-information.component.scss new file: client/src/app/+admin/follows/video-redundancies-list/video-redundancy-information.component.ts new file: client/src/app/+admin/moderation/abuse-list/abuse-list.component.html new file: client/src/app/+admin/moderation/abuse-list/abuse-list.component.ts new file: client/src/app/+admin/moderation/abuse-list/index.ts new file: client/src/app/+admin/moderation/instance-blocklist/index.ts new file: client/src/app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.ts new file: client/src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.ts new file: client/src/app/+admin/moderation/moderation.routes.ts new file: client/src/app/+admin/moderation/registration-list/admin-registration.service.ts new file: client/src/app/+admin/moderation/registration-list/index.ts new file: client/src/app/+admin/moderation/registration-list/process-registration-modal.component.html new file: client/src/app/+admin/moderation/registration-list/process-registration-modal.component.ts new file: client/src/app/+admin/moderation/registration-list/process-registration-validators.ts new file: client/src/app/+admin/moderation/registration-list/registration-list.component.html new file: client/src/app/+admin/moderation/registration-list/registration-list.component.scss new file: client/src/app/+admin/moderation/registration-list/registration-list.component.ts new file: client/src/app/+admin/moderation/video-block-list/index.ts new file: client/src/app/+admin/moderation/video-block-list/video-block-list.component.html new file: client/src/app/+admin/moderation/video-block-list/video-block-list.component.ts new file: client/src/app/+admin/moderation/watched-words-list/watched-words-list-admin.component.html new file: client/src/app/+admin/moderation/watched-words-list/watched-words-list-admin.component.ts new file: client/src/app/+admin/overview/comments/index.ts new file: client/src/app/+admin/overview/comments/video-comment-list.component.html new file: client/src/app/+admin/overview/comments/video-comment-list.component.ts new file: client/src/app/+admin/overview/index.ts new file: client/src/app/+admin/overview/overview.routes.ts new file: client/src/app/+admin/overview/users/index.ts new file: client/src/app/+admin/overview/users/user-edit/index.ts new file: client/src/app/+admin/overview/users/user-edit/user-create.component.ts new file: client/src/app/+admin/overview/users/user-edit/user-edit.component.html new file: client/src/app/+admin/overview/users/user-edit/user-edit.component.scss new file: client/src/app/+admin/overview/users/user-edit/user-edit.ts new file: client/src/app/+admin/overview/users/user-edit/user-password.component.html new file: client/src/app/+admin/overview/users/user-edit/user-password.component.scss new file: client/src/app/+admin/overview/users/user-edit/user-password.component.ts new file: client/src/app/+admin/overview/users/user-edit/user-update.component.ts new file: client/src/app/+admin/overview/users/user-list/index.ts new file: client/src/app/+admin/overview/users/user-list/user-list.component.html new file: client/src/app/+admin/overview/users/user-list/user-list.component.scss new file: client/src/app/+admin/overview/users/user-list/user-list.component.ts new file: client/src/app/+admin/overview/videos/index.ts new file: client/src/app/+admin/overview/videos/video-admin.service.ts new file: client/src/app/+admin/overview/videos/video-list.component.html new file: client/src/app/+admin/overview/videos/video-list.component.scss new file: client/src/app/+admin/overview/videos/video-list.component.ts new file: client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.html new file: client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.scss new file: client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts new file: client/src/app/+admin/plugins/plugin-search/plugin-search.component.html new file: client/src/app/+admin/plugins/plugin-search/plugin-search.component.scss new file: client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts new file: client/src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.html new file: client/src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.ts new file: client/src/app/+admin/plugins/plugins.routes.ts new file: client/src/app/+admin/plugins/shared/plugin-api.service.ts new file: client/src/app/+admin/plugins/shared/plugin-card.component.html new file: client/src/app/+admin/plugins/shared/plugin-card.component.scss new file: client/src/app/+admin/plugins/shared/plugin-card.component.ts new file: client/src/app/+admin/routes.ts new file: client/src/app/+admin/shared/user-email-info.component.html new file: client/src/app/+admin/shared/user-email-info.component.scss new file: client/src/app/+admin/shared/user-email-info.component.ts new file: client/src/app/+admin/shared/user-real-quota-info.component.html new file: client/src/app/+admin/shared/user-real-quota-info.component.ts new file: client/src/app/+admin/system/debug/debug.component.html new file: client/src/app/+admin/system/debug/debug.component.scss new file: client/src/app/+admin/system/debug/debug.component.ts new file: client/src/app/+admin/system/debug/debug.service.ts new file: client/src/app/+admin/system/debug/index.ts new file: client/src/app/+admin/system/index.ts new file: client/src/app/+admin/system/jobs/index.ts new file: client/src/app/+admin/system/jobs/job.service.ts new file: client/src/app/+admin/system/jobs/jobs.component.html new file: client/src/app/+admin/system/jobs/jobs.component.scss new file: client/src/app/+admin/system/jobs/jobs.component.ts new file: client/src/app/+admin/system/logs/index.ts new file: client/src/app/+admin/system/logs/log-row.model.ts new file: client/src/app/+admin/system/logs/logs.component.html new file: client/src/app/+admin/system/logs/logs.component.scss new file: client/src/app/+admin/system/logs/logs.component.ts new file: client/src/app/+admin/system/logs/logs.service.ts new file: client/src/app/+admin/system/runners/index.ts new file: client/src/app/+admin/system/runners/runner-job-list/index.ts new file: client/src/app/+admin/system/runners/runner-job-list/runner-job-list.component.html new file: client/src/app/+admin/system/runners/runner-job-list/runner-job-list.component.ts new file: client/src/app/+admin/system/runners/runner-list/index.ts new file: client/src/app/+admin/system/runners/runner-list/runner-list.component.html new file: client/src/app/+admin/system/runners/runner-list/runner-list.component.ts new file: client/src/app/+admin/system/runners/runner-registration-token-list/index.ts new file: client/src/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.html new file: client/src/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.scss new file: client/src/app/+admin/system/runners/runner-registration-token-list/runner-registration-token-list.component.ts new file: client/src/app/+admin/system/runners/runner.service.ts new file: client/src/app/+admin/system/runners/runners.routes.ts new file: client/src/app/+admin/system/system.routes.ts new file: client/src/app/+error-page/error-page.component.html new file: client/src/app/+error-page/error-page.component.scss new file: client/src/app/+error-page/error-page.component.ts new file: client/src/app/+error-page/routes.ts new file: client/src/app/+home/home.component.html new file: client/src/app/+home/home.component.ts new file: client/src/app/+home/routes.ts new file: client/src/app/+login/login.component.html new file: client/src/app/+login/login.component.scss new file: client/src/app/+login/login.component.ts new file: client/src/app/+login/routes.ts new file: client/src/app/+manage/routes.ts new file: client/src/app/+my-account/my-account-abuses/my-account-abuses-list.component.html new file: client/src/app/+my-account/my-account-abuses/my-account-abuses-list.component.ts new file: client/src/app/+my-account/my-account-applications/my-account-applications.component.html new file: client/src/app/+my-account/my-account-applications/my-account-applications.component.scss new file: client/src/app/+my-account/my-account-applications/my-account-applications.component.ts new file: client/src/app/+my-account/my-account-blocklist/my-account-blocklist.component.ts new file: client/src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.ts new file: client/src/app/+my-account/my-account-import-export/index.ts new file: client/src/app/+my-account/my-account-import-export/my-account-export.component.html new file: client/src/app/+my-account/my-account-import-export/my-account-export.component.scss new file: client/src/app/+my-account/my-account-import-export/my-account-export.component.ts new file: client/src/app/+my-account/my-account-import-export/my-account-import-export.component.html new file: client/src/app/+my-account/my-account-import-export/my-account-import-export.component.ts new file: client/src/app/+my-account/my-account-import-export/my-account-import.component.html new file: client/src/app/+my-account/my-account-import-export/my-account-import.component.scss new file: client/src/app/+my-account/my-account-import-export/my-account-import.component.ts new file: client/src/app/+my-account/my-account-import-export/user-import-export.service.ts new file: client/src/app/+my-account/my-account-notifications/my-account-notifications.component.html new file: client/src/app/+my-account/my-account-notifications/my-account-notifications.component.scss new file: client/src/app/+my-account/my-account-notifications/my-account-notifications.component.ts new file: client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html new file: client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.scss new file: client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts new file: client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html new file: client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.scss new file: client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts new file: client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.html new file: client/src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts new file: client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.html new file: client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.scss new file: client/src/app/+my-account/my-account-settings/my-account-email-preferences/my-account-email-preferences.component.ts new file: client/src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.html new file: client/src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.scss new file: client/src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts new file: client/src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.html new file: client/src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.scss new file: client/src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.ts new file: client/src/app/+my-account/my-account-settings/my-account-settings.component.html new file: client/src/app/+my-account/my-account-settings/my-account-settings.component.scss new file: client/src/app/+my-account/my-account-settings/my-account-settings.component.ts new file: client/src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor-button.component.html new file: client/src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor-button.component.ts new file: client/src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.html new file: client/src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.scss new file: client/src/app/+my-account/my-account-settings/my-account-two-factor/my-account-two-factor.component.ts new file: client/src/app/+my-account/my-account.component.html new file: client/src/app/+my-account/my-account.component.ts new file: client/src/app/+my-account/routes.ts new file: client/src/app/+my-library/+my-video-channels/my-video-channels.component.html new file: client/src/app/+my-library/+my-video-channels/my-video-channels.component.scss new file: client/src/app/+my-library/+my-video-channels/my-video-channels.component.ts new file: client/src/app/+my-library/+my-video-channels/routes.ts new file: client/src/app/+my-library/comments-on-my-videos/comments-on-my-videos.component.html new file: client/src/app/+my-library/comments-on-my-videos/comments-on-my-videos.component.ts new file: client/src/app/+my-library/my-auto-tag-policies/automatic-tag.service.ts new file: client/src/app/+my-library/my-auto-tag-policies/my-auto-tag-policies.component.html new file: client/src/app/+my-library/my-auto-tag-policies/my-auto-tag-policies.component.ts new file: client/src/app/+my-library/my-follows/my-followers.component.html new file: client/src/app/+my-library/my-follows/my-followers.component.scss new file: client/src/app/+my-library/my-follows/my-followers.component.ts new file: client/src/app/+my-library/my-follows/my-subscriptions.component.html new file: client/src/app/+my-library/my-follows/my-subscriptions.component.scss new file: client/src/app/+my-library/my-follows/my-subscriptions.component.ts new file: client/src/app/+my-library/my-history/my-history.component.html new file: client/src/app/+my-library/my-history/my-history.component.scss new file: client/src/app/+my-library/my-history/my-history.component.ts new file: client/src/app/+my-library/my-library.component.html new file: client/src/app/+my-library/my-library.component.ts new file: client/src/app/+my-library/my-ownership/my-accept-ownership/my-accept-ownership.component.html new file: client/src/app/+my-library/my-ownership/my-accept-ownership/my-accept-ownership.component.scss new file: client/src/app/+my-library/my-ownership/my-accept-ownership/my-accept-ownership.component.ts new file: client/src/app/+my-library/my-ownership/my-ownership.component.html new file: client/src/app/+my-library/my-ownership/my-ownership.component.ts new file: client/src/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.html new file: client/src/app/+my-library/my-video-channel-syncs/my-video-channel-syncs.component.ts new file: client/src/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.html new file: client/src/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.scss new file: client/src/app/+my-library/my-video-channel-syncs/video-channel-sync-edit/video-channel-sync-edit.component.ts new file: client/src/app/+my-library/my-video-imports/my-video-imports.component.html new file: client/src/app/+my-library/my-video-imports/my-video-imports.component.scss new file: client/src/app/+my-library/my-video-imports/my-video-imports.component.ts new file: client/src/app/+my-library/my-video-playlists/my-video-playlist-create.component.ts new file: client/src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.html new file: client/src/app/+my-library/my-video-playlists/my-video-playlist-edit.component.scss new file: client/src/app/+my-library/my-video-playlists/my-video-playlist-edit.ts new file: client/src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.html new file: client/src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.scss new file: client/src/app/+my-library/my-video-playlists/my-video-playlist-elements.component.ts new file: client/src/app/+my-library/my-video-playlists/my-video-playlist-update.component.ts new file: client/src/app/+my-library/my-video-playlists/my-video-playlists.component.html new file: client/src/app/+my-library/my-video-playlists/my-video-playlists.component.scss new file: client/src/app/+my-library/my-video-playlists/my-video-playlists.component.ts new file: client/src/app/+my-library/my-video-space.component.html new file: client/src/app/+my-library/my-video-space.component.ts new file: client/src/app/+my-library/my-videos/modals/video-change-ownership.component.html new file: client/src/app/+my-library/my-videos/modals/video-change-ownership.component.scss new file: client/src/app/+my-library/my-videos/modals/video-change-ownership.component.ts new file: client/src/app/+my-library/my-videos/my-videos.component.html new file: client/src/app/+my-library/my-videos/my-videos.component.scss new file: client/src/app/+my-library/my-videos/my-videos.component.ts new file: client/src/app/+my-library/my-watched-words-list/my-watched-words-list.component.html new file: client/src/app/+my-library/my-watched-words-list/my-watched-words-list.component.ts new file: client/src/app/+my-library/routes.ts new file: client/src/app/+remote-interaction/remote-interaction.component.html new file: client/src/app/+remote-interaction/remote-interaction.component.ts new file: client/src/app/+remote-interaction/routes.ts new file: client/src/app/+reset-password/reset-password.component.html new file: client/src/app/+reset-password/reset-password.component.scss new file: client/src/app/+reset-password/reset-password.component.ts new file: client/src/app/+reset-password/routes.ts new file: client/src/app/+search/routes.ts new file: client/src/app/+search/search-filters.component.html new file: client/src/app/+search/search-filters.component.scss new file: client/src/app/+search/search-filters.component.ts new file: client/src/app/+search/search.component.html new file: client/src/app/+search/search.component.scss new file: client/src/app/+search/search.component.ts new file: client/src/app/+search/shared/abstract-lazy-load.resolver.ts new file: client/src/app/+search/shared/channel-lazy-load.resolver.ts new file: client/src/app/+search/shared/index.ts new file: client/src/app/+search/shared/playlist-lazy-load.resolver.ts new file: client/src/app/+search/shared/video-lazy-load.resolver.ts new file: client/src/app/+signup/+register/custom-stepper.component.html new file: client/src/app/+signup/+register/custom-stepper.component.scss new file: client/src/app/+signup/+register/custom-stepper.component.ts new file: client/src/app/+signup/+register/register.component.html new file: client/src/app/+signup/+register/register.component.scss new file: client/src/app/+signup/+register/register.component.ts new file: client/src/app/+signup/+register/routes.ts new file: client/src/app/+signup/+register/shared/index.ts new file: client/src/app/+signup/+register/shared/register-validators.ts new file: client/src/app/+signup/+register/steps/register-step-about.component.html new file: client/src/app/+signup/+register/steps/register-step-about.component.scss new file: client/src/app/+signup/+register/steps/register-step-about.component.ts new file: client/src/app/+signup/+register/steps/register-step-channel.component.html new file: client/src/app/+signup/+register/steps/register-step-channel.component.ts new file: client/src/app/+signup/+register/steps/register-step-terms.component.html new file: client/src/app/+signup/+register/steps/register-step-terms.component.ts new file: client/src/app/+signup/+register/steps/register-step-user.component.html new file: client/src/app/+signup/+register/steps/register-step-user.component.ts new file: client/src/app/+signup/+register/steps/step.component.scss new file: client/src/app/+signup/+verify-account/routes.ts new file: client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html new file: client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.scss new file: client/src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts new file: client/src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html new file: client/src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.ts new file: client/src/app/+signup/shared/signup-mascot.component.scss new file: client/src/app/+signup/shared/signup-mascot.component.ts new file: client/src/app/+signup/shared/signup-step-title.component.html new file: client/src/app/+signup/shared/signup-step-title.component.scss new file: client/src/app/+signup/shared/signup-step-title.component.ts new file: client/src/app/+signup/shared/signup-success-after-email.component.html new file: client/src/app/+signup/shared/signup-success-after-email.component.ts new file: client/src/app/+signup/shared/signup-success-before-email.component.html new file: client/src/app/+signup/shared/signup-success-before-email.component.ts new file: client/src/app/+signup/shared/signup-success.component.scss new file: client/src/app/+signup/shared/signup.service.ts new file: client/src/app/+stats/routes.ts new file: client/src/app/+stats/video/index.ts new file: client/src/app/+stats/video/video-stats.component.html new file: client/src/app/+stats/video/video-stats.component.scss new file: client/src/app/+stats/video/video-stats.component.ts new file: client/src/app/+stats/video/video-stats.service.ts new file: client/src/app/+video-channels/routes.ts new file: client/src/app/+video-channels/video-channel-playlists/video-channel-playlists.component.html new file: client/src/app/+video-channels/video-channel-playlists/video-channel-playlists.component.scss new file: client/src/app/+video-channels/video-channel-playlists/video-channel-playlists.component.ts new file: client/src/app/+video-channels/video-channel-videos/video-channel-videos.component.html new file: client/src/app/+video-channels/video-channel-videos/video-channel-videos.component.ts new file: client/src/app/+video-channels/video-channels.component.html new file: client/src/app/+video-channels/video-channels.component.scss new file: client/src/app/+video-channels/video-channels.component.ts new file: client/src/app/+video-studio/edit/index.ts new file: client/src/app/+video-studio/edit/video-studio-edit.component.html new file: client/src/app/+video-studio/edit/video-studio-edit.component.scss new file: client/src/app/+video-studio/edit/video-studio-edit.component.ts new file: client/src/app/+video-studio/routes.ts new file: client/src/app/+video-studio/shared/index.ts new file: client/src/app/+video-studio/shared/video-studio.service.ts new file: client/src/app/+videos/+video-edit/add-routes.ts new file: client/src/app/+videos/+video-edit/shared/caption/video-caption-add-modal.component.html new file: client/src/app/+videos/+video-edit/shared/caption/video-caption-add-modal.component.scss new file: client/src/app/+videos/+video-edit/shared/caption/video-caption-add-modal.component.ts new file: client/src/app/+videos/+video-edit/shared/caption/video-caption-edit-modal-content.component.html new file: client/src/app/+videos/+video-edit/shared/caption/video-caption-edit-modal-content.component.scss new file: client/src/app/+videos/+video-edit/shared/caption/video-caption-edit-modal-content.component.ts new file: client/src/app/+videos/+video-edit/shared/i18n-primeng-calendar.service.ts new file: client/src/app/+videos/+video-edit/shared/thumbnail-manager/thumbnail-manager.component.html new file: client/src/app/+videos/+video-edit/shared/thumbnail-manager/thumbnail-manager.component.scss new file: client/src/app/+videos/+video-edit/shared/thumbnail-manager/thumbnail-manager.component.ts new file: client/src/app/+videos/+video-edit/shared/uploaderx-form-data.ts new file: client/src/app/+videos/+video-edit/shared/video-edit-utils.ts new file: client/src/app/+videos/+video-edit/shared/video-edit.component.html new file: client/src/app/+videos/+video-edit/shared/video-edit.component.scss new file: client/src/app/+videos/+video-edit/shared/video-edit.component.ts new file: client/src/app/+videos/+video-edit/shared/video-edit.type.ts new file: client/src/app/+videos/+video-edit/shared/video-upload.service.ts new file: client/src/app/+videos/+video-edit/update-routes.ts new file: client/src/app/+videos/+video-edit/video-add-components/drag-drop.directive.ts new file: client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.html new file: client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.scss new file: client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts new file: client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.html new file: client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.scss new file: client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts new file: client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.html new file: client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts new file: client/src/app/+videos/+video-edit/video-add-components/video-send.scss new file: client/src/app/+videos/+video-edit/video-add-components/video-send.ts new file: client/src/app/+videos/+video-edit/video-add-components/video-upload.component.html new file: client/src/app/+videos/+video-edit/video-add-components/video-upload.component.scss new file: client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts new file: client/src/app/+videos/+video-edit/video-add.component.html new file: client/src/app/+videos/+video-edit/video-add.component.scss new file: client/src/app/+videos/+video-edit/video-add.component.ts new file: client/src/app/+videos/+video-edit/video-update.component.html new file: client/src/app/+videos/+video-edit/video-update.component.ts new file: client/src/app/+videos/+video-edit/video-update.resolver.ts new file: client/src/app/+videos/+video-watch/player-styles.component.scss new file: client/src/app/+videos/+video-watch/player-styles.component.ts new file: client/src/app/+videos/+video-watch/routes.ts new file: client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.html new file: client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.scss new file: client/src/app/+videos/+video-watch/shared/action-buttons/action-buttons.component.ts new file: client/src/app/+videos/+video-watch/shared/action-buttons/index.ts new file: client/src/app/+videos/+video-watch/shared/action-buttons/video-rate.component.html new file: client/src/app/+videos/+video-watch/shared/action-buttons/video-rate.component.scss new file: client/src/app/+videos/+video-watch/shared/action-buttons/video-rate.component.ts new file: client/src/app/+videos/+video-watch/shared/comment/index.ts new file: client/src/app/+videos/+video-watch/shared/comment/video-comment-add.component.html new file: client/src/app/+videos/+video-watch/shared/comment/video-comment-add.component.scss new file: client/src/app/+videos/+video-watch/shared/comment/video-comment-add.component.ts new file: client/src/app/+videos/+video-watch/shared/comment/video-comment.component.html new file: client/src/app/+videos/+video-watch/shared/comment/video-comment.component.scss new file: client/src/app/+videos/+video-watch/shared/comment/video-comment.component.ts new file: client/src/app/+videos/+video-watch/shared/comment/video-comments.component.html new file: client/src/app/+videos/+video-watch/shared/comment/video-comments.component.scss new file: client/src/app/+videos/+video-watch/shared/comment/video-comments.component.ts new file: client/src/app/+videos/+video-watch/shared/index.ts new file: client/src/app/+videos/+video-watch/shared/information/index.ts new file: client/src/app/+videos/+video-watch/shared/information/privacy-concerns.component.html new file: client/src/app/+videos/+video-watch/shared/information/privacy-concerns.component.scss new file: client/src/app/+videos/+video-watch/shared/information/privacy-concerns.component.ts new file: client/src/app/+videos/+video-watch/shared/information/video-alert.component.html new file: client/src/app/+videos/+video-watch/shared/information/video-alert.component.ts new file: client/src/app/+videos/+video-watch/shared/metadata/index.ts new file: client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.html new file: client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.scss new file: client/src/app/+videos/+video-watch/shared/metadata/video-attributes.component.ts new file: client/src/app/+videos/+video-watch/shared/metadata/video-avatar-channel.component.html new file: client/src/app/+videos/+video-watch/shared/metadata/video-avatar-channel.component.scss new file: client/src/app/+videos/+video-watch/shared/metadata/video-avatar-channel.component.ts new file: client/src/app/+videos/+video-watch/shared/metadata/video-description.component.html new file: client/src/app/+videos/+video-watch/shared/metadata/video-description.component.scss new file: client/src/app/+videos/+video-watch/shared/metadata/video-description.component.ts new file: client/src/app/+videos/+video-watch/shared/player-widgets/player-widget.component.scss new file: client/src/app/+videos/+video-watch/shared/player-widgets/video-transcription.component.html new file: client/src/app/+videos/+video-watch/shared/player-widgets/video-transcription.component.scss new file: client/src/app/+videos/+video-watch/shared/player-widgets/video-transcription.component.ts new file: client/src/app/+videos/+video-watch/shared/player-widgets/video-watch-playlist.component.html new file: client/src/app/+videos/+video-watch/shared/player-widgets/video-watch-playlist.component.scss new file: client/src/app/+videos/+video-watch/shared/player-widgets/video-watch-playlist.component.ts new file: client/src/app/+videos/+video-watch/shared/recommendations/index.ts new file: client/src/app/+videos/+video-watch/shared/recommendations/recommended-videos.component.html new file: client/src/app/+videos/+video-watch/shared/recommendations/recommended-videos.component.scss new file: client/src/app/+videos/+video-watch/shared/recommendations/recommended-videos.component.ts new file: client/src/app/+videos/+video-watch/shared/recommendations/video-recommendation.service.ts new file: client/src/app/+videos/+video-watch/shared/timestamp-route-transformer.directive.ts new file: client/src/app/+videos/+video-watch/video-watch.component.html new file: client/src/app/+videos/+video-watch/video-watch.component.scss new file: client/src/app/+videos/+video-watch/video-watch.component.ts new file: client/src/app/+videos/routes.ts new file: client/src/app/+videos/video-list/index.ts new file: client/src/app/+videos/video-list/overview/index.ts new file: client/src/app/+videos/video-list/overview/overview.service.ts new file: client/src/app/+videos/video-list/overview/video-overview.component.html new file: client/src/app/+videos/video-list/overview/video-overview.component.scss new file: client/src/app/+videos/video-list/overview/video-overview.component.ts new file: client/src/app/+videos/video-list/overview/videos-overview.model.ts new file: client/src/app/+videos/video-list/video-user-subscriptions.component.html new file: client/src/app/+videos/video-list/video-user-subscriptions.component.ts new file: client/src/app/+videos/video-list/videos-list-all.component.html new file: client/src/app/+videos/video-list/videos-list-all.component.ts new file: client/src/app/app.component.html new file: client/src/app/app.component.scss new file: client/src/app/app.component.ts new file: client/src/app/app.routes.ts new file: client/src/app/core/auth/auth-status.model.ts new file: client/src/app/core/auth/auth-user.model.ts new file: client/src/app/core/auth/auth.service.ts new file: client/src/app/core/auth/index.ts new file: client/src/app/core/confirm/confirm.service.ts new file: client/src/app/core/confirm/index.ts new file: client/src/app/core/core-providers.ts new file: client/src/app/core/hotkeys/hotkey.model.ts new file: client/src/app/core/hotkeys/hotkeys.service.ts new file: client/src/app/core/hotkeys/index.ts new file: client/src/app/core/index.ts new file: client/src/app/core/menu/index.ts new file: client/src/app/core/menu/menu.service.ts new file: client/src/app/core/notification/index.ts new file: client/src/app/core/notification/notifier.service.ts new file: client/src/app/core/notification/peertube-socket.service.ts new file: client/src/app/core/plugins/hooks.service.ts new file: client/src/app/core/plugins/index.ts new file: client/src/app/core/plugins/plugin.service.ts new file: client/src/app/core/renderer/html-renderer.service.ts new file: client/src/app/core/renderer/index.ts new file: client/src/app/core/renderer/linkifier.service.ts new file: client/src/app/core/renderer/markdown.service.ts new file: client/src/app/core/rest/component-pagination.model.ts new file: client/src/app/core/rest/index.ts new file: client/src/app/core/rest/rest-extractor.service.ts new file: client/src/app/core/rest/rest-pagination.ts new file: client/src/app/core/rest/rest-table.ts new file: client/src/app/core/rest/rest.service.ts new file: client/src/app/core/routing/can-deactivate-guard.service.ts new file: client/src/app/core/routing/custom-reuse-strategy.ts new file: client/src/app/core/routing/disable-for-reuse-hook.ts new file: client/src/app/core/routing/index.ts new file: client/src/app/core/routing/login-guard.service.ts new file: client/src/app/core/routing/meta-guard.service.ts new file: client/src/app/core/routing/meta.service.ts new file: client/src/app/core/routing/peertube-router.service.ts new file: client/src/app/core/routing/preload-selected-modules-list.ts new file: client/src/app/core/routing/redirect.service.ts new file: client/src/app/core/routing/scroll.service.ts new file: client/src/app/core/routing/server-config-resolver.service.ts new file: client/src/app/core/routing/unlogged-guard.service.ts new file: client/src/app/core/routing/user-right-guard.service.ts new file: client/src/app/core/routing/user.resolver.ts new file: client/src/app/core/scoped-tokens/index.ts new file: client/src/app/core/scoped-tokens/scoped-tokens.service.ts new file: client/src/app/core/server/index.ts new file: client/src/app/core/server/server.service.ts new file: client/src/app/core/theme/index.ts new file: client/src/app/core/theme/theme.service.ts new file: client/src/app/core/users/index.ts new file: client/src/app/core/users/user-local-storage.service.ts new file: client/src/app/core/users/user.model.ts new file: client/src/app/core/users/user.service.ts new file: client/src/app/core/wrappers/index.ts new file: client/src/app/core/wrappers/screen.service.ts new file: client/src/app/core/wrappers/storage.service.ts new file: client/src/app/empty.component.ts new file: client/src/app/header/header.component.html new file: client/src/app/header/header.component.scss new file: client/src/app/header/header.component.ts new file: client/src/app/header/notification-dropdown.component.html new file: client/src/app/header/notification-dropdown.component.scss new file: client/src/app/header/notification-dropdown.component.ts new file: client/src/app/header/search-typeahead.component.html new file: client/src/app/header/search-typeahead.component.scss new file: client/src/app/header/search-typeahead.component.ts new file: client/src/app/header/suggestion.component.html new file: client/src/app/header/suggestion.component.scss new file: client/src/app/header/suggestion.component.ts new file: client/src/app/helpers/constants.ts new file: client/src/app/helpers/i18n-utils.ts new file: client/src/app/helpers/index.ts new file: client/src/app/helpers/locales/index.ts new file: client/src/app/helpers/locales/oc.ts new file: client/src/app/helpers/rxjs.ts new file: client/src/app/helpers/utils/channel.ts new file: client/src/app/helpers/utils/date.ts new file: client/src/app/helpers/utils/dom.ts new file: client/src/app/helpers/utils/html.ts new file: client/src/app/helpers/utils/index.ts new file: client/src/app/helpers/utils/object.ts new file: client/src/app/helpers/utils/simple-memoize.ts new file: client/src/app/helpers/utils/upload.ts new file: client/src/app/helpers/utils/url.ts new file: client/src/app/homepage-redirect.component.ts new file: client/src/app/hotkeys/hotkeys-cheat-sheet.component.html new file: client/src/app/hotkeys/hotkeys-cheat-sheet.component.scss new file: client/src/app/hotkeys/hotkeys-cheat-sheet.component.ts new file: client/src/app/menu/home-menu.component.html new file: client/src/app/menu/home-menu.component.ts new file: client/src/app/menu/language-chooser.component.html new file: client/src/app/menu/language-chooser.component.scss new file: client/src/app/menu/language-chooser.component.ts new file: client/src/app/menu/menu.component.html new file: client/src/app/menu/menu.component.scss new file: client/src/app/menu/menu.component.ts new file: client/src/app/menu/quick-settings-modal.component.html new file: client/src/app/menu/quick-settings-modal.component.ts new file: client/src/app/modal/account-setup-warning-modal.component.html new file: client/src/app/modal/account-setup-warning-modal.component.scss new file: client/src/app/modal/account-setup-warning-modal.component.ts new file: client/src/app/modal/admin-welcome-modal.component.html new file: client/src/app/modal/admin-welcome-modal.component.scss new file: client/src/app/modal/admin-welcome-modal.component.ts new file: client/src/app/modal/confirm.component.html new file: client/src/app/modal/confirm.component.scss new file: client/src/app/modal/confirm.component.ts new file: client/src/app/modal/custom-modal.component.html new file: client/src/app/modal/custom-modal.component.scss new file: client/src/app/modal/custom-modal.component.ts new file: client/src/app/modal/instance-config-warning-modal.component.html new file: client/src/app/modal/instance-config-warning-modal.component.scss new file: client/src/app/modal/instance-config-warning-modal.component.ts new file: client/src/app/shared/form-validators/abuse-validators.ts new file: client/src/app/shared/form-validators/common-validators.ts new file: client/src/app/shared/form-validators/custom-config-validators.ts new file: client/src/app/shared/form-validators/form-validator.model.ts new file: client/src/app/shared/form-validators/host-validators.ts new file: client/src/app/shared/form-validators/instance-validators.ts new file: client/src/app/shared/form-validators/login-validators.ts new file: client/src/app/shared/form-validators/reset-password-validators.ts new file: client/src/app/shared/form-validators/shared/validator-utils.ts new file: client/src/app/shared/form-validators/user-validators.ts new file: client/src/app/shared/form-validators/video-block-validators.ts new file: client/src/app/shared/form-validators/video-captions-validators.ts new file: client/src/app/shared/form-validators/video-channel-validators.ts new file: client/src/app/shared/form-validators/video-chapter-validators.ts new file: client/src/app/shared/form-validators/video-comment-validators.ts new file: client/src/app/shared/form-validators/video-ownership-change-validators.ts new file: client/src/app/shared/form-validators/video-playlist-validators.ts new file: client/src/app/shared/form-validators/video-validators.ts new file: client/src/app/shared/form-validators/watched-words-list-validators.ts new file: client/src/app/shared/shared-abuse-list/abuse-details.component.html new file: client/src/app/shared/shared-abuse-list/abuse-details.component.scss new file: client/src/app/shared/shared-abuse-list/abuse-details.component.ts new file: client/src/app/shared/shared-abuse-list/abuse-list-table.component.html new file: client/src/app/shared/shared-abuse-list/abuse-list-table.component.scss new file: client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts new file: client/src/app/shared/shared-abuse-list/abuse-message-modal.component.html new file: client/src/app/shared/shared-abuse-list/abuse-message-modal.component.scss new file: client/src/app/shared/shared-abuse-list/abuse-message-modal.component.ts new file: client/src/app/shared/shared-abuse-list/moderation-comment-modal.component.html new file: client/src/app/shared/shared-abuse-list/moderation-comment-modal.component.scss new file: client/src/app/shared/shared-abuse-list/moderation-comment-modal.component.ts new file: client/src/app/shared/shared-abuse-list/processed-abuse.model.ts new file: client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.html new file: client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.scss new file: client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.ts new file: client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.html new file: client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.scss new file: client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.ts new file: client/src/app/shared/shared-actor-image-edit/actor-image-edit.scss new file: client/src/app/shared/shared-actor-image/actor-avatar.component.html new file: client/src/app/shared/shared-actor-image/actor-avatar.component.scss new file: client/src/app/shared/shared-actor-image/actor-avatar.component.ts new file: client/src/app/shared/shared-custom-markup/custom-markup-container.component.html new file: client/src/app/shared/shared-custom-markup/custom-markup-container.component.ts new file: client/src/app/shared/shared-custom-markup/custom-markup-help.component.html new file: client/src/app/shared/shared-custom-markup/custom-markup-help.component.ts new file: client/src/app/shared/shared-custom-markup/custom-markup.service.ts new file: client/src/app/shared/shared-custom-markup/dynamic-element.service.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/button-markup.component.html new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/button-markup.component.scss new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/button-markup.component.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.html new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.scss new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/embed-markup.component.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/index.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/instance-avatar-markup.component.html new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/instance-avatar-markup.component.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/instance-banner-markup.component.html new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/instance-banner-markup.component.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/playlist-miniature-markup.component.html new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/playlist-miniature-markup.component.scss new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/playlist-miniature-markup.component.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/shared/custom-markup.component.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/shared/index.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/video-miniature-markup.component.html new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/video-miniature-markup.component.scss new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/video-miniature-markup.component.ts new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/videos-list-markup.component.html new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/videos-list-markup.component.scss new file: client/src/app/shared/shared-custom-markup/peertube-custom-tags/videos-list-markup.component.ts new file: client/src/app/shared/shared-forms/advanced-input-filter.component.html new file: client/src/app/shared/shared-forms/advanced-input-filter.component.scss new file: client/src/app/shared/shared-forms/advanced-input-filter.component.ts new file: client/src/app/shared/shared-forms/dynamic-form-field.component.html new file: client/src/app/shared/shared-forms/dynamic-form-field.component.scss new file: client/src/app/shared/shared-forms/dynamic-form-field.component.ts new file: client/src/app/shared/shared-forms/form-reactive.service.ts new file: client/src/app/shared/shared-forms/form-reactive.ts new file: client/src/app/shared/shared-forms/form-validator.service.ts new file: client/src/app/shared/shared-forms/input-switch.component.html new file: client/src/app/shared/shared-forms/input-switch.component.scss new file: client/src/app/shared/shared-forms/input-switch.component.ts new file: client/src/app/shared/shared-forms/input-text.component.html new file: client/src/app/shared/shared-forms/input-text.component.scss new file: client/src/app/shared/shared-forms/input-text.component.ts new file: client/src/app/shared/shared-forms/markdown-textarea.component.html new file: client/src/app/shared/shared-forms/markdown-textarea.component.scss new file: client/src/app/shared/shared-forms/markdown-textarea.component.ts new file: client/src/app/shared/shared-forms/peertube-checkbox.component.html new file: client/src/app/shared/shared-forms/peertube-checkbox.component.scss new file: client/src/app/shared/shared-forms/peertube-checkbox.component.ts new file: client/src/app/shared/shared-forms/preview-upload.component.html new file: client/src/app/shared/shared-forms/preview-upload.component.scss new file: client/src/app/shared/shared-forms/preview-upload.component.ts new file: client/src/app/shared/shared-forms/reactive-file.component.html new file: client/src/app/shared/shared-forms/reactive-file.component.scss new file: client/src/app/shared/shared-forms/reactive-file.component.ts new file: client/src/app/shared/shared-forms/select/select-categories.component.ts new file: client/src/app/shared/shared-forms/select/select-channel.component.ts new file: client/src/app/shared/shared-forms/select/select-checkbox-default-all.component.ts new file: client/src/app/shared/shared-forms/select/select-checkbox.component.html new file: client/src/app/shared/shared-forms/select/select-checkbox.component.ts new file: client/src/app/shared/shared-forms/select/select-custom-value.component.html new file: client/src/app/shared/shared-forms/select/select-custom-value.component.ts new file: client/src/app/shared/shared-forms/select/select-languages.component.ts new file: client/src/app/shared/shared-forms/select/select-options.component.html new file: client/src/app/shared/shared-forms/select/select-options.component.scss new file: client/src/app/shared/shared-forms/select/select-options.component.ts new file: client/src/app/shared/shared-forms/select/select-tags.component.html new file: client/src/app/shared/shared-forms/select/select-tags.component.ts new file: client/src/app/shared/shared-forms/shared-form-providers.ts new file: client/src/app/shared/shared-forms/textarea-autoresize.directive.ts new file: client/src/app/shared/shared-forms/timestamp-input.component.html new file: client/src/app/shared/shared-forms/timestamp-input.component.scss new file: client/src/app/shared/shared-forms/timestamp-input.component.ts new file: client/src/app/shared/shared-icons/global-icon.component.scss new file: client/src/app/shared/shared-icons/global-icon.component.ts new file: client/src/app/shared/shared-instance/feature-boolean.component.html new file: client/src/app/shared/shared-instance/feature-boolean.component.scss new file: client/src/app/shared/shared-instance/feature-boolean.component.ts new file: client/src/app/shared/shared-instance/instance-about-accordion.component.html new file: client/src/app/shared/shared-instance/instance-about-accordion.component.scss new file: client/src/app/shared/shared-instance/instance-about-accordion.component.ts new file: client/src/app/shared/shared-instance/instance-banner.component.html new file: client/src/app/shared/shared-instance/instance-banner.component.ts new file: client/src/app/shared/shared-instance/instance-features-table.component.html new file: client/src/app/shared/shared-instance/instance-features-table.component.scss new file: client/src/app/shared/shared-instance/instance-features-table.component.ts new file: client/src/app/shared/shared-instance/instance-follow.service.ts new file: client/src/app/shared/shared-main/account/account.model.ts new file: client/src/app/shared/shared-main/account/account.service.ts new file: client/src/app/shared/shared-main/account/actor.model.ts new file: client/src/app/shared/shared-main/auth/auth-interceptor.service.ts new file: client/src/app/shared/shared-main/buttons/action-dropdown.component.html new file: client/src/app/shared/shared-main/buttons/action-dropdown.component.scss new file: client/src/app/shared/shared-main/buttons/action-dropdown.component.ts new file: client/src/app/shared/shared-main/buttons/button.component.html new file: client/src/app/shared/shared-main/buttons/button.component.scss new file: client/src/app/shared/shared-main/buttons/button.component.ts new file: client/src/app/shared/shared-main/buttons/copy-button.component.html new file: client/src/app/shared/shared-main/buttons/copy-button.component.scss new file: client/src/app/shared/shared-main/buttons/copy-button.component.ts new file: client/src/app/shared/shared-main/buttons/delete-button.component.ts new file: client/src/app/shared/shared-main/buttons/edit-button.component.ts new file: client/src/app/shared/shared-main/buttons/help.component.html new file: client/src/app/shared/shared-main/buttons/help.component.scss new file: client/src/app/shared/shared-main/buttons/help.component.ts new file: client/src/app/shared/shared-main/channel/channels-setup-message.component.html new file: client/src/app/shared/shared-main/channel/channels-setup-message.component.scss new file: client/src/app/shared/shared-main/channel/channels-setup-message.component.ts new file: client/src/app/shared/shared-main/channel/video-channel-sync.service.ts new file: client/src/app/shared/shared-main/channel/video-channel.model.ts new file: client/src/app/shared/shared-main/channel/video-channel.service.ts new file: client/src/app/shared/shared-main/common/alert.component.html new file: client/src/app/shared/shared-main/common/alert.component.scss new file: client/src/app/shared/shared-main/common/alert.component.ts new file: client/src/app/shared/shared-main/common/auto-colspan.directive.ts new file: client/src/app/shared/shared-main/common/autofocus.directive.ts new file: client/src/app/shared/shared-main/common/bytes.pipe.ts new file: client/src/app/shared/shared-main/common/date.pipe.ts new file: client/src/app/shared/shared-main/common/defer-loading.directive.ts new file: client/src/app/shared/shared-main/common/infinite-scroller.directive.ts new file: client/src/app/shared/shared-main/common/link.component.html new file: client/src/app/shared/shared-main/common/link.component.scss new file: client/src/app/shared/shared-main/common/link.component.ts new file: client/src/app/shared/shared-main/common/loader.component.ts new file: client/src/app/shared/shared-main/common/nl2br.pipe.ts new file: client/src/app/shared/shared-main/common/number-formatter.pipe.ts new file: client/src/app/shared/shared-main/common/peertube-template.directive.ts new file: client/src/app/shared/shared-main/common/progress-bar.component.html new file: client/src/app/shared/shared-main/common/progress-bar.component.scss new file: client/src/app/shared/shared-main/common/progress-bar.component.ts new file: client/src/app/shared/shared-main/custom-page/custom-page.service.ts new file: client/src/app/shared/shared-main/date/date-toggle.component.html new file: client/src/app/shared/shared-main/date/date-toggle.component.scss new file: client/src/app/shared/shared-main/date/date-toggle.component.ts new file: client/src/app/shared/shared-main/date/days-duration-formatter.pipe.ts new file: client/src/app/shared/shared-main/date/from-now.pipe.ts new file: client/src/app/shared/shared-main/date/time-duration-formatter.pipe.ts new file: client/src/app/shared/shared-main/feeds/feed.component.html new file: client/src/app/shared/shared-main/feeds/feed.component.scss new file: client/src/app/shared/shared-main/feeds/feed.component.ts new file: client/src/app/shared/shared-main/feeds/syndication.model.ts new file: client/src/app/shared/shared-main/instance/instance.service.ts new file: client/src/app/shared/shared-main/main-providers.ts new file: client/src/app/shared/shared-main/menu/horizontal-menu.component.html new file: client/src/app/shared/shared-main/menu/horizontal-menu.component.scss new file: client/src/app/shared/shared-main/menu/horizontal-menu.component.ts new file: client/src/app/shared/shared-main/menu/list-overflow.component.html new file: client/src/app/shared/shared-main/menu/list-overflow.component.scss new file: client/src/app/shared/shared-main/menu/list-overflow.component.ts new file: client/src/app/shared/shared-main/peertube-modal/peertube-modal.service.ts new file: client/src/app/shared/shared-main/plugins/plugin-placeholder.component.scss new file: client/src/app/shared/shared-main/plugins/plugin-placeholder.component.ts new file: client/src/app/shared/shared-main/plugins/plugin-selector.directive.ts new file: client/src/app/shared/shared-main/router/actor-redirect-guard.service.ts new file: client/src/app/shared/shared-main/search/simple-search-input.component.html new file: client/src/app/shared/shared-main/search/simple-search-input.component.scss new file: client/src/app/shared/shared-main/search/simple-search-input.component.ts new file: client/src/app/shared/shared-main/users/login-link.component.html new file: client/src/app/shared/shared-main/users/login-link.component.scss new file: client/src/app/shared/shared-main/users/login-link.component.ts new file: client/src/app/shared/shared-main/users/signup-label.component.html new file: client/src/app/shared/shared-main/users/signup-label.component.ts new file: client/src/app/shared/shared-main/users/user-history.service.ts new file: client/src/app/shared/shared-main/users/user-notification.model.ts new file: client/src/app/shared/shared-main/users/user-notification.service.ts new file: client/src/app/shared/shared-main/users/user-quota.component.html new file: client/src/app/shared/shared-main/users/user-quota.component.ts new file: client/src/app/shared/shared-main/video-caption/video-caption-edit.model.ts new file: client/src/app/shared/shared-main/video-caption/video-caption.service.ts new file: client/src/app/shared/shared-main/video/embed.component.html new file: client/src/app/shared/shared-main/video/embed.component.scss new file: client/src/app/shared/shared-main/video/embed.component.ts new file: client/src/app/shared/shared-main/video/redundancy.service.ts new file: client/src/app/shared/shared-main/video/video-chapter.service.ts new file: client/src/app/shared/shared-main/video/video-chapters-edit.model.ts new file: client/src/app/shared/shared-main/video/video-details.model.ts new file: client/src/app/shared/shared-main/video/video-edit.model.ts new file: client/src/app/shared/shared-main/video/video-file-token.service.ts new file: client/src/app/shared/shared-main/video/video-import.service.ts new file: client/src/app/shared/shared-main/video/video-ownership.service.ts new file: client/src/app/shared/shared-main/video/video-password.service.ts new file: client/src/app/shared/shared-main/video/video.model.ts new file: client/src/app/shared/shared-main/video/video.resolver.ts new file: client/src/app/shared/shared-main/video/video.service.ts new file: client/src/app/shared/shared-moderation/abuse.service.ts new file: client/src/app/shared/shared-moderation/account-block-badges.component.html new file: client/src/app/shared/shared-moderation/account-block-badges.component.scss new file: client/src/app/shared/shared-moderation/account-block-badges.component.ts new file: client/src/app/shared/shared-moderation/account-block.model.ts new file: client/src/app/shared/shared-moderation/account-blocklist.component.html new file: client/src/app/shared/shared-moderation/account-blocklist.component.ts new file: client/src/app/shared/shared-moderation/batch-domains-modal.component.html new file: client/src/app/shared/shared-moderation/batch-domains-modal.component.scss new file: client/src/app/shared/shared-moderation/batch-domains-modal.component.ts new file: client/src/app/shared/shared-moderation/blocklist.service.ts new file: client/src/app/shared/shared-moderation/bulk.service.ts new file: client/src/app/shared/shared-moderation/moderation.scss new file: client/src/app/shared/shared-moderation/report-modals/account-report.component.ts new file: client/src/app/shared/shared-moderation/report-modals/comment-report.component.ts new file: client/src/app/shared/shared-moderation/report-modals/index.ts new file: client/src/app/shared/shared-moderation/report-modals/report.component.html new file: client/src/app/shared/shared-moderation/report-modals/report.component.scss new file: client/src/app/shared/shared-moderation/report-modals/video-report.component.html new file: client/src/app/shared/shared-moderation/report-modals/video-report.component.ts new file: client/src/app/shared/shared-moderation/server-blocklist.component.html new file: client/src/app/shared/shared-moderation/server-blocklist.component.scss new file: client/src/app/shared/shared-moderation/server-blocklist.component.ts new file: client/src/app/shared/shared-moderation/user-ban-modal.component.html new file: client/src/app/shared/shared-moderation/user-ban-modal.component.scss new file: client/src/app/shared/shared-moderation/user-ban-modal.component.ts new file: client/src/app/shared/shared-moderation/user-moderation-dropdown.component.html new file: client/src/app/shared/shared-moderation/user-moderation-dropdown.component.ts new file: client/src/app/shared/shared-moderation/video-block.component.html new file: client/src/app/shared/shared-moderation/video-block.component.scss new file: client/src/app/shared/shared-moderation/video-block.component.ts new file: client/src/app/shared/shared-moderation/video-block.service.ts new file: client/src/app/shared/shared-plugin-pages/index.ts new file: client/src/app/shared/shared-plugin-pages/plugin-pages.component.html new file: client/src/app/shared/shared-plugin-pages/plugin-pages.component.ts new file: client/src/app/shared/shared-plugin-pages/routes.ts new file: client/src/app/shared/shared-search/advanced-search.model.ts new file: client/src/app/shared/shared-search/find-in-bulk.service.ts new file: client/src/app/shared/shared-search/search.service.ts new file: client/src/app/shared/shared-share-modal/video-share.component.html new file: client/src/app/shared/shared-share-modal/video-share.component.scss new file: client/src/app/shared/shared-share-modal/video-share.component.ts new file: client/src/app/shared/shared-support-modal/support-modal.component.html new file: client/src/app/shared/shared-support-modal/support-modal.component.ts new file: client/src/app/shared/shared-tables/table-expander-icon.component.ts new file: client/src/app/shared/shared-tables/video-cell.component.html new file: client/src/app/shared/shared-tables/video-cell.component.scss new file: client/src/app/shared/shared-tables/video-cell.component.ts new file: client/src/app/shared/shared-thumbnail/video-thumbnail.component.html new file: client/src/app/shared/shared-thumbnail/video-thumbnail.component.scss new file: client/src/app/shared/shared-thumbnail/video-thumbnail.component.ts new file: client/src/app/shared/shared-user-settings/user-interface-settings.component.html new file: client/src/app/shared/shared-user-settings/user-interface-settings.component.scss new file: client/src/app/shared/shared-user-settings/user-interface-settings.component.ts new file: client/src/app/shared/shared-user-settings/user-video-settings.component.html new file: client/src/app/shared/shared-user-settings/user-video-settings.component.scss new file: client/src/app/shared/shared-user-settings/user-video-settings.component.ts new file: client/src/app/shared/shared-user-subscription/remote-subscribe.component.html new file: client/src/app/shared/shared-user-subscription/remote-subscribe.component.ts new file: client/src/app/shared/shared-user-subscription/subscribe-button.component.html new file: client/src/app/shared/shared-user-subscription/subscribe-button.component.scss new file: client/src/app/shared/shared-user-subscription/subscribe-button.component.ts new file: client/src/app/shared/shared-user-subscription/user-subscription.service.ts new file: client/src/app/shared/shared-users/two-factor.service.ts new file: client/src/app/shared/shared-users/user-admin.service.ts new file: client/src/app/shared/shared-video-comment/video-comment-list-admin-owner.component.html new file: client/src/app/shared/shared-video-comment/video-comment-list-admin-owner.component.scss new file: client/src/app/shared/shared-video-comment/video-comment-list-admin-owner.component.ts new file: client/src/app/shared/shared-video-comment/video-comment-thread-tree.model.ts new file: client/src/app/shared/shared-video-comment/video-comment.model.ts new file: client/src/app/shared/shared-video-comment/video-comment.service.ts new file: client/src/app/shared/shared-video-live/live-documentation-link.component.html new file: client/src/app/shared/shared-video-live/live-documentation-link.component.ts new file: client/src/app/shared/shared-video-live/live-stream-information.component.html new file: client/src/app/shared/shared-video-live/live-stream-information.component.scss new file: client/src/app/shared/shared-video-live/live-stream-information.component.ts new file: client/src/app/shared/shared-video-live/live-video.service.ts new file: client/src/app/shared/shared-video-miniature/download/subtitle-files-download.component.html new file: client/src/app/shared/shared-video-miniature/download/subtitle-files-download.component.ts new file: client/src/app/shared/shared-video-miniature/download/video-download.component.html new file: client/src/app/shared/shared-video-miniature/download/video-download.component.scss new file: client/src/app/shared/shared-video-miniature/download/video-download.component.ts new file: client/src/app/shared/shared-video-miniature/download/video-files-download.component.html new file: client/src/app/shared/shared-video-miniature/download/video-files-download.component.scss new file: client/src/app/shared/shared-video-miniature/download/video-files-download.component.ts new file: client/src/app/shared/shared-video-miniature/download/video-generate-download.component.html new file: client/src/app/shared/shared-video-miniature/download/video-generate-download.component.scss new file: client/src/app/shared/shared-video-miniature/download/video-generate-download.component.ts new file: client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.html new file: client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.scss new file: client/src/app/shared/shared-video-miniature/video-actions-dropdown.component.ts new file: client/src/app/shared/shared-video-miniature/video-filters-header.component.html new file: client/src/app/shared/shared-video-miniature/video-filters-header.component.scss new file: client/src/app/shared/shared-video-miniature/video-filters-header.component.ts new file: client/src/app/shared/shared-video-miniature/video-filters.model.ts new file: client/src/app/shared/shared-video-miniature/video-miniature.component.html new file: client/src/app/shared/shared-video-miniature/video-miniature.component.scss new file: client/src/app/shared/shared-video-miniature/video-miniature.component.ts new file: client/src/app/shared/shared-video-miniature/videos-list.component.html new file: client/src/app/shared/shared-video-miniature/videos-list.component.scss new file: client/src/app/shared/shared-video-miniature/videos-list.component.ts new file: client/src/app/shared/shared-video-miniature/videos-selection.component.html new file: client/src/app/shared/shared-video-miniature/videos-selection.component.scss new file: client/src/app/shared/shared-video-miniature/videos-selection.component.ts new file: client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.html new file: client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.scss new file: client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts new file: client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html new file: client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.scss new file: client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.ts new file: client/src/app/shared/shared-video-playlist/video-playlist-element.model.ts new file: client/src/app/shared/shared-video-playlist/video-playlist-miniature.component.html new file: client/src/app/shared/shared-video-playlist/video-playlist-miniature.component.scss new file: client/src/app/shared/shared-video-playlist/video-playlist-miniature.component.ts new file: client/src/app/shared/shared-video-playlist/video-playlist.model.ts new file: client/src/app/shared/shared-video-playlist/video-playlist.service.ts new file: client/src/app/shared/shared-video/video-views-counter.component.html new file: client/src/app/shared/shared-video/video-views-counter.component.scss new file: client/src/app/shared/shared-video/video-views-counter.component.ts new file: client/src/app/shared/standalone-channels/video-channel-create.component.ts new file: client/src/app/shared/standalone-channels/video-channel-edit.component.html new file: client/src/app/shared/standalone-channels/video-channel-edit.component.scss new file: client/src/app/shared/standalone-channels/video-channel-edit.ts new file: client/src/app/shared/standalone-channels/video-channel-update.component.ts new file: client/src/app/shared/standalone-notifications/user-notifications.component.html new file: client/src/app/shared/standalone-notifications/user-notifications.component.scss new file: client/src/app/shared/standalone-notifications/user-notifications.component.ts new file: client/src/app/shared/standalone-upload/upload-progress.component.html new file: client/src/app/shared/standalone-upload/upload-progress.component.scss new file: client/src/app/shared/standalone-upload/upload-progress.component.ts new file: client/src/app/shared/standalone-watched-words/watched-words-list-admin-owner.component.html new file: client/src/app/shared/standalone-watched-words/watched-words-list-admin-owner.component.ts new file: client/src/app/shared/standalone-watched-words/watched-words-list-save-modal.component.html new file: client/src/app/shared/standalone-watched-words/watched-words-list-save-modal.component.scss new file: client/src/app/shared/standalone-watched-words/watched-words-list-save-modal.component.ts new file: client/src/app/shared/standalone-watched-words/watched-words-list.service.ts new file: client/src/app/videos-parent.component.html new file: client/src/app/videos-parent.component.ts new file: client/src/assets/images/default-avatar-account-48x48.png new file: client/src/assets/images/default-avatar-account.png new file: client/src/assets/images/default-avatar-video-channel-48x48.png new file: client/src/assets/images/default-avatar-video-channel.png new file: client/src/assets/images/default-playlist.jpg new file: client/src/assets/images/favicon.png new file: client/src/assets/images/feather/airplay.svg new file: client/src/assets/images/feather/alert.svg new file: client/src/assets/images/feather/award.svg new file: client/src/assets/images/feather/bell.svg new file: client/src/assets/images/feather/channel.svg new file: client/src/assets/images/feather/check-circle.svg new file: client/src/assets/images/feather/check.svg new file: client/src/assets/images/feather/chevron-left.svg new file: client/src/assets/images/feather/chevrons-up.svg new file: client/src/assets/images/feather/clock-arrow-down.svg new file: client/src/assets/images/feather/clock.svg new file: client/src/assets/images/feather/cloud-download.svg new file: client/src/assets/images/feather/cloud-off.svg new file: client/src/assets/images/feather/codesandbox.svg new file: client/src/assets/images/feather/cog.svg new file: client/src/assets/images/feather/columns.svg new file: client/src/assets/images/feather/config.svg new file: client/src/assets/images/feather/copy.svg new file: client/src/assets/images/feather/corner-up-left.svg new file: client/src/assets/images/feather/delete.svg new file: client/src/assets/images/feather/dislike.svg new file: client/src/assets/images/feather/download.svg new file: client/src/assets/images/feather/edit-2.svg new file: client/src/assets/images/feather/external-link.svg new file: client/src/assets/images/feather/eye-off.svg new file: client/src/assets/images/feather/eye.svg new file: client/src/assets/images/feather/film.svg new file: client/src/assets/images/feather/filter.svg new file: client/src/assets/images/feather/flag.svg new file: client/src/assets/images/feather/globe.svg new file: client/src/assets/images/feather/help.svg new file: client/src/assets/images/feather/history.svg new file: client/src/assets/images/feather/home.svg new file: client/src/assets/images/feather/keyboard.svg new file: client/src/assets/images/feather/like.svg new file: client/src/assets/images/feather/live.svg new file: client/src/assets/images/feather/log-in.svg new file: client/src/assets/images/feather/log-out.svg new file: client/src/assets/images/feather/maximize.svg new file: client/src/assets/images/feather/menu.svg new file: client/src/assets/images/feather/message-circle.svg new file: client/src/assets/images/feather/minimize.svg new file: client/src/assets/images/feather/moderation.svg new file: client/src/assets/images/feather/more-horizontal.svg new file: client/src/assets/images/feather/more-vertical.svg new file: client/src/assets/images/feather/move-right.svg new file: client/src/assets/images/feather/no.svg new file: client/src/assets/images/feather/opened-bell.svg new file: client/src/assets/images/feather/overview.svg new file: client/src/assets/images/feather/play.svg new file: client/src/assets/images/feather/playlists.svg new file: client/src/assets/images/feather/plus.svg new file: client/src/assets/images/feather/refresh-cw.svg new file: client/src/assets/images/feather/registry.svg new file: client/src/assets/images/feather/repeat.svg new file: client/src/assets/images/feather/search.svg new file: client/src/assets/images/feather/share-2.svg new file: client/src/assets/images/feather/share.svg new file: client/src/assets/images/feather/skip-back.svg new file: client/src/assets/images/feather/skip-forward.svg new file: client/src/assets/images/feather/stats.svg new file: client/src/assets/images/feather/subscriptions.svg new file: client/src/assets/images/feather/syndication.svg new file: client/src/assets/images/feather/trending.svg new file: client/src/assets/images/feather/undo.svg new file: client/src/assets/images/feather/upload.svg new file: client/src/assets/images/feather/user-plus.svg new file: client/src/assets/images/feather/user-x.svg new file: client/src/assets/images/feather/user.svg new file: client/src/assets/images/feather/users.svg new file: client/src/assets/images/feather/videos.svg new file: client/src/assets/images/feather/x.svg new file: client/src/assets/images/icons/icon-144x144.png new file: client/src/assets/images/icons/icon-192x192.png new file: client/src/assets/images/icons/icon-36x36.png new file: client/src/assets/images/icons/icon-48x48.png new file: client/src/assets/images/icons/icon-512x512.png new file: client/src/assets/images/icons/icon-72x72.png new file: client/src/assets/images/icons/icon-96x96.png new file: client/src/assets/images/logo.svg new file: client/src/assets/images/mascot/arguing.svg new file: client/src/assets/images/mascot/default.svg new file: client/src/assets/images/mascot/defeated.svg new file: client/src/assets/images/mascot/happy.svg new file: client/src/assets/images/mascot/oh.svg new file: client/src/assets/images/mascot/pointing.svg new file: client/src/assets/images/mascot/register/about.svg new file: client/src/assets/images/mascot/register/account.svg new file: client/src/assets/images/mascot/register/channel.svg new file: client/src/assets/images/mascot/register/success.svg new file: client/src/assets/images/mascot/register/terms.svg new file: client/src/assets/images/misc/account-arrow-left.svg new file: client/src/assets/images/misc/account-arrow-right.svg new file: client/src/assets/images/misc/flame.svg new file: client/src/assets/images/misc/language.svg new file: client/src/assets/images/misc/markdown.svg new file: client/src/assets/images/misc/miscellaneous-services.svg new file: client/src/assets/images/misc/peertube-x.svg new file: client/src/assets/images/misc/playlist-add.svg new file: client/src/assets/images/misc/shield.svg new file: client/src/assets/images/misc/support.svg new file: client/src/assets/images/misc/tip.svg new file: client/src/assets/images/misc/video-lang.svg new file: client/src/assets/player/images/arrow-down.svg new file: client/src/assets/player/images/arrow-up.svg new file: client/src/assets/player/images/big-play-button.svg new file: client/src/assets/player/images/code.svg new file: client/src/assets/player/images/fullscreen.svg new file: client/src/assets/player/images/info.svg new file: client/src/assets/player/images/link-2.svg new file: client/src/assets/player/images/next.svg new file: client/src/assets/player/images/repeat.svg new file: client/src/assets/player/images/settings.svg new file: client/src/assets/player/images/theater.svg new file: client/src/assets/player/images/tick-white.svg new file: client/src/assets/player/images/volume-mute.svg new file: client/src/assets/player/images/volume.svg new file: client/src/assets/player/index.ts new file: client/src/assets/player/peertube-player-local-storage.ts new file: client/src/assets/player/peertube-player.ts new file: client/src/assets/player/shared/bezels/bezels-plugin.ts new file: client/src/assets/player/shared/bezels/index.ts new file: client/src/assets/player/shared/bezels/pause-bezel.ts new file: client/src/assets/player/shared/common/index.ts new file: client/src/assets/player/shared/common/utils.ts new file: client/src/assets/player/shared/context-menu/context-menu-item.ts new file: client/src/assets/player/shared/context-menu/context-menu-plugin.ts new file: client/src/assets/player/shared/context-menu/context-menu.ts new file: client/src/assets/player/shared/context-menu/index.ts new file: client/src/assets/player/shared/context-menu/util.ts new file: client/src/assets/player/shared/control-bar/caption-toggle-button.ts new file: client/src/assets/player/shared/control-bar/chapters-plugin.ts new file: client/src/assets/player/shared/control-bar/index.ts new file: client/src/assets/player/shared/control-bar/next-previous-video-button.ts new file: client/src/assets/player/shared/control-bar/p2p-info-button.ts new file: client/src/assets/player/shared/control-bar/peertube-link-button.ts new file: client/src/assets/player/shared/control-bar/peertube-live-display.ts new file: client/src/assets/player/shared/control-bar/progress-bar-marker-component.ts new file: client/src/assets/player/shared/control-bar/storyboard-plugin.ts new file: client/src/assets/player/shared/control-bar/theater-button.ts new file: client/src/assets/player/shared/control-bar/time-tooltip.ts new file: client/src/assets/player/shared/dock/index.ts new file: client/src/assets/player/shared/dock/peertube-dock-component.ts new file: client/src/assets/player/shared/dock/peertube-dock-plugin.ts new file: client/src/assets/player/shared/hotkeys/index.ts new file: client/src/assets/player/shared/hotkeys/peertube-hotkeys-plugin.ts new file: client/src/assets/player/shared/metrics/index.ts new file: client/src/assets/player/shared/metrics/metrics-plugin.ts new file: client/src/assets/player/shared/mobile/index.ts new file: client/src/assets/player/shared/mobile/peertube-mobile-buttons.ts new file: client/src/assets/player/shared/mobile/peertube-mobile-plugin.ts new file: client/src/assets/player/shared/p2p-media-loader/hls-plugin.ts new file: client/src/assets/player/shared/p2p-media-loader/index.ts new file: client/src/assets/player/shared/p2p-media-loader/p2p-media-loader-plugin.ts new file: client/src/assets/player/shared/p2p-media-loader/redundancy-url-manager.ts new file: client/src/assets/player/shared/p2p-media-loader/segment-url-builder.ts new file: client/src/assets/player/shared/p2p-media-loader/segment-validator.ts new file: client/src/assets/player/shared/peertube/index.ts new file: client/src/assets/player/shared/peertube/peertube-plugin.ts new file: client/src/assets/player/shared/player-options-builder/control-bar-options-builder.ts new file: client/src/assets/player/shared/player-options-builder/hls-options-builder.ts new file: client/src/assets/player/shared/player-options-builder/index.ts new file: client/src/assets/player/shared/player-options-builder/web-video-options-builder.ts new file: client/src/assets/player/shared/playlist/index.ts new file: client/src/assets/player/shared/playlist/playlist-button.ts new file: client/src/assets/player/shared/playlist/playlist-menu-item.ts new file: client/src/assets/player/shared/playlist/playlist-menu.ts new file: client/src/assets/player/shared/playlist/playlist-plugin.ts new file: client/src/assets/player/shared/resolutions/index.ts new file: client/src/assets/player/shared/resolutions/peertube-resolutions-plugin.ts new file: client/src/assets/player/shared/settings/index.ts new file: client/src/assets/player/shared/settings/menu-focus-fixed.ts new file: client/src/assets/player/shared/settings/resolution-menu-button.ts new file: client/src/assets/player/shared/settings/resolution-menu-item.ts new file: client/src/assets/player/shared/settings/settings-dialog.ts new file: client/src/assets/player/shared/settings/settings-menu-button.ts new file: client/src/assets/player/shared/settings/settings-menu-item.ts new file: client/src/assets/player/shared/settings/settings-panel-child.ts new file: client/src/assets/player/shared/settings/settings-panel.ts new file: client/src/assets/player/shared/stats/index.ts new file: client/src/assets/player/shared/stats/stats-card.ts new file: client/src/assets/player/shared/stats/stats-plugin.ts new file: client/src/assets/player/shared/upnext/end-card.ts new file: client/src/assets/player/shared/upnext/index.ts new file: client/src/assets/player/shared/upnext/upnext-plugin.ts new file: client/src/assets/player/shared/web-video/web-video-plugin.ts new file: client/src/assets/player/translations-manager.ts new file: client/src/assets/player/types/index.ts new file: client/src/assets/player/types/peertube-player-options.ts new file: client/src/assets/player/types/peertube-videojs-typings.ts new file: client/src/environments/environment.e2e.ts new file: client/src/environments/environment.hmr.ts new file: client/src/environments/environment.prod.ts new file: client/src/environments/environment.ts new file: client/src/index.html new file: client/src/locale/angular.ar.xlf new file: client/src/locale/angular.bg.xlf new file: client/src/locale/angular.bn-BD.xlf new file: client/src/locale/angular.bn.xlf new file: client/src/locale/angular.ca-ES.xlf new file: client/src/locale/angular.cs-CZ.xlf new file: client/src/locale/angular.da-DK.xlf new file: client/src/locale/angular.de-DE.xlf new file: client/src/locale/angular.el-GR.xlf new file: client/src/locale/angular.en-GB.xlf new file: client/src/locale/angular.en-US.xlf new file: client/src/locale/angular.eo.xlf new file: client/src/locale/angular.es-ES.xlf new file: client/src/locale/angular.eu-ES.xlf new file: client/src/locale/angular.fa-IR.xlf new file: client/src/locale/angular.fi-FI.xlf new file: client/src/locale/angular.fr-FR.xlf new file: client/src/locale/angular.fr.xlf new file: client/src/locale/angular.gd.xlf new file: client/src/locale/angular.gl-ES.xlf new file: client/src/locale/angular.he.xlf new file: client/src/locale/angular.hr.xlf new file: client/src/locale/angular.hu-HU.xlf new file: client/src/locale/angular.ia.xlf new file: client/src/locale/angular.id.xlf new file: client/src/locale/angular.is.xlf new file: client/src/locale/angular.it-IT.xlf new file: client/src/locale/angular.ja-JP.xlf new file: client/src/locale/angular.jbo.xlf new file: client/src/locale/angular.kab.xlf new file: client/src/locale/angular.kk.xlf new file: client/src/locale/angular.kn.xlf new file: client/src/locale/angular.ko-KR.xlf new file: client/src/locale/angular.la.xlf new file: client/src/locale/angular.lt-LT.xlf new file: client/src/locale/angular.mk.xlf new file: client/src/locale/angular.ml.xlf new file: client/src/locale/angular.nb-NO.xlf new file: client/src/locale/angular.nl-NL.xlf new file: client/src/locale/angular.nn.xlf new file: client/src/locale/angular.oc.xlf new file: client/src/locale/angular.pl-PL.xlf new file: client/src/locale/angular.pt-BR.xlf new file: client/src/locale/angular.pt-PT.xlf new file: client/src/locale/angular.pt.xlf new file: client/src/locale/angular.ro.xlf new file: client/src/locale/angular.ru-RU.xlf new file: client/src/locale/angular.sc.xlf new file: client/src/locale/angular.sk-SK.xlf new file: client/src/locale/angular.sl-SI.xlf new file: client/src/locale/angular.sq.xlf new file: client/src/locale/angular.sr-Cyrl.xlf new file: client/src/locale/angular.sv-SE.xlf new file: client/src/locale/angular.ta.xlf new file: client/src/locale/angular.th-TH.xlf new file: client/src/locale/angular.tok.xlf new file: client/src/locale/angular.tp.xlf new file: client/src/locale/angular.tr-TR.xlf new file: client/src/locale/angular.tt.xlf new file: client/src/locale/angular.tzm.xlf new file: client/src/locale/angular.uk-UA.xlf new file: client/src/locale/angular.vi-VN.xlf new file: client/src/locale/angular.xlf new file: client/src/locale/angular.zh-Hans-CN.xlf new file: client/src/locale/angular.zh-Hant-HK.xlf new file: client/src/locale/angular.zh-Hant-TW.xlf new file: client/src/locale/player.ar.json new file: client/src/locale/player.bg.json new file: client/src/locale/player.bn.json new file: client/src/locale/player.bn_BD.json new file: client/src/locale/player.ca-ES.json new file: client/src/locale/player.cs-CZ.json new file: client/src/locale/player.da-DK.json new file: client/src/locale/player.de-DE.json new file: client/src/locale/player.el-GR.json new file: client/src/locale/player.en-GB.json new file: client/src/locale/player.en-US.json new file: client/src/locale/player.eo.json new file: client/src/locale/player.es-ES.json new file: client/src/locale/player.eu-ES.json new file: client/src/locale/player.fa-IR.json new file: client/src/locale/player.fi-FI.json new file: client/src/locale/player.fr-FR.json new file: client/src/locale/player.fr.json new file: client/src/locale/player.gd.json new file: client/src/locale/player.gl-ES.json new file: client/src/locale/player.he.json new file: client/src/locale/player.hr.json new file: client/src/locale/player.hu-HU.json new file: client/src/locale/player.id.json new file: client/src/locale/player.is.json new file: client/src/locale/player.it-IT.json new file: client/src/locale/player.ja-JP.json new file: client/src/locale/player.jbo.json new file: client/src/locale/player.kab.json new file: client/src/locale/player.kk.json new file: client/src/locale/player.ko.json new file: client/src/locale/player.la.json new file: client/src/locale/player.lt-LT.json new file: client/src/locale/player.ml.json new file: client/src/locale/player.nb-NO.json new file: client/src/locale/player.nl-NL.json new file: client/src/locale/player.nn.json new file: client/src/locale/player.oc.json new file: client/src/locale/player.pl-PL.json new file: client/src/locale/player.pt-BR.json new file: client/src/locale/player.pt-PT.json new file: client/src/locale/player.pt.json new file: client/src/locale/player.ro.json new file: client/src/locale/player.ru-RU.json new file: client/src/locale/player.si.json new file: client/src/locale/player.sk-SK.json new file: client/src/locale/player.sl-SI.json new file: client/src/locale/player.sq.json new file: client/src/locale/player.sr_Cyrl.json new file: client/src/locale/player.sv-SE.json new file: client/src/locale/player.ta.json new file: client/src/locale/player.th-TH.json new file: client/src/locale/player.tok.json new file: client/src/locale/player.tp.json new file: client/src/locale/player.tr-TR.json new file: client/src/locale/player.tzm.json new file: client/src/locale/player.uk-UA.json new file: client/src/locale/player.vi-VN.json new file: client/src/locale/player.zh-Hans-CN.json new file: client/src/locale/player.zh-Hant-TW.json new file: client/src/locale/player.zh_HANT-TW.json new file: client/src/locale/server.ar.json new file: client/src/locale/server.bg.json new file: client/src/locale/server.bn.json new file: client/src/locale/server.bn_BD.json new file: client/src/locale/server.ca-ES.json new file: client/src/locale/server.cs-CZ.json new file: client/src/locale/server.da-DK.json new file: client/src/locale/server.de-DE.json new file: client/src/locale/server.el-GR.json new file: client/src/locale/server.en-GB.json new file: client/src/locale/server.en-US.json new file: client/src/locale/server.eo.json new file: client/src/locale/server.es-ES.json new file: client/src/locale/server.eu-ES.json new file: client/src/locale/server.fa-IR.json new file: client/src/locale/server.fi-FI.json new file: client/src/locale/server.fr-FR.json new file: client/src/locale/server.fr.json new file: client/src/locale/server.gd.json new file: client/src/locale/server.gl-ES.json new file: client/src/locale/server.he.json new file: client/src/locale/server.hr.json new file: client/src/locale/server.hu-HU.json new file: client/src/locale/server.id.json new file: client/src/locale/server.is.json new file: client/src/locale/server.it-IT.json new file: client/src/locale/server.ja-JP.json new file: client/src/locale/server.jbo.json new file: client/src/locale/server.kab.json new file: client/src/locale/server.kk.json new file: client/src/locale/server.ko-KR.json new file: client/src/locale/server.la.json new file: client/src/locale/server.lt-LT.json new file: client/src/locale/server.nb-NO.json new file: client/src/locale/server.nl-NL.json new file: client/src/locale/server.nn.json new file: client/src/locale/server.oc.json new file: client/src/locale/server.pl-PL.json new file: client/src/locale/server.pt-BR.json new file: client/src/locale/server.pt-PT.json new file: client/src/locale/server.ro.json new file: client/src/locale/server.ru-RU.json new file: client/src/locale/server.si.json new file: client/src/locale/server.sk-SK.json new file: client/src/locale/server.sl-SI.json new file: client/src/locale/server.sq.json new file: client/src/locale/server.sr_Cyrl.json new file: client/src/locale/server.sv-SE.json new file: client/src/locale/server.th-TH.json new file: client/src/locale/server.tok.json new file: client/src/locale/server.tp.json new file: client/src/locale/server.tr-TR.json new file: client/src/locale/server.ug.json new file: client/src/locale/server.uk-UA.json new file: client/src/locale/server.vi-VN.json new file: client/src/locale/server.zh-Hans-CN.json new file: client/src/locale/server.zh-Hant-TW.json new file: client/src/locale/server.zh_HANT-TW.json new file: client/src/locale/videojs.en-US.json new file: client/src/main.ts new file: client/src/manifest.webmanifest new file: client/src/ngsw-config.json new file: client/src/polyfills.ts new file: client/src/root-helpers/bytes.ts new file: client/src/root-helpers/images.ts new file: client/src/root-helpers/index.ts new file: client/src/root-helpers/local-storage-utils.ts new file: client/src/root-helpers/logger.ts new file: client/src/root-helpers/peertube-web-storage.ts new file: client/src/root-helpers/plugins-manager.ts new file: client/src/root-helpers/string.ts new file: client/src/root-helpers/url.ts new file: client/src/root-helpers/users/index.ts new file: client/src/root-helpers/users/oauth-user-tokens.ts new file: client/src/root-helpers/users/user-local-storage-keys.ts new file: client/src/root-helpers/utils.ts new file: client/src/root-helpers/video.ts new file: client/src/root-helpers/web-browser.ts new file: client/src/sass/application.scss new file: client/src/sass/bootstrap.scss new file: client/src/sass/class-helpers/_buttons.scss new file: client/src/sass/class-helpers/_common.scss new file: client/src/sass/class-helpers/_custom-bootstrap-helpers.scss new file: client/src/sass/class-helpers/_forms.scss new file: client/src/sass/class-helpers/_images.scss new file: client/src/sass/class-helpers/_layout.scss new file: client/src/sass/class-helpers/_menu.scss new file: client/src/sass/class-helpers/_position.scss new file: client/src/sass/class-helpers/_text.scss new file: client/src/sass/class-helpers/index.scss new file: client/src/sass/custom-markup.scss new file: client/src/sass/fonts/source-sans/WOFF2/VAR/SourceSans3VF-Italic.otf.woff2 new file: client/src/sass/fonts/source-sans/WOFF2/VAR/SourceSans3VF-Italic.ttf.woff2 new file: client/src/sass/fonts/source-sans/WOFF2/VAR/SourceSans3VF-Roman.otf.woff2 new file: client/src/sass/fonts/source-sans/WOFF2/VAR/SourceSans3VF-Roman.ttf.woff2 new file: client/src/sass/include/_account-channel-page.scss new file: client/src/sass/include/_actor.scss new file: client/src/sass/include/_badges.scss new file: client/src/sass/include/_bootstrap-mixins.scss new file: client/src/sass/include/_bootstrap-variables.scss new file: client/src/sass/include/_button-mixins.scss new file: client/src/sass/include/_fonts.scss new file: client/src/sass/include/_form-mixins.scss new file: client/src/sass/include/_icons.scss new file: client/src/sass/include/_miniature.scss new file: client/src/sass/include/_mixins.scss new file: client/src/sass/include/_nav.scss new file: client/src/sass/include/_variables.scss new file: client/src/sass/player/_player-variables.scss new file: client/src/sass/player/bezels.scss new file: client/src/sass/player/context-menu.scss new file: client/src/sass/player/control-bar.scss new file: client/src/sass/player/dock.scss new file: client/src/sass/player/index.scss new file: client/src/sass/player/mobile.scss new file: client/src/sass/player/offline-notification.scss new file: client/src/sass/player/peertube-skin.scss new file: client/src/sass/player/playlist.scss new file: client/src/sass/player/settings-menu.scss new file: client/src/sass/player/spinner.scss new file: client/src/sass/player/stats.scss new file: client/src/sass/player/storyboard.scss new file: client/src/sass/player/upnext.scss new file: client/src/sass/primeng-custom.scss new file: client/src/sass/z-index.scss new file: client/src/shims/noop.ts new file: client/src/standalone/embed-player-api/.npmignore new file: client/src/standalone/embed-player-api/README.md new file: client/src/standalone/embed-player-api/definitions.ts new file: client/src/standalone/embed-player-api/events.ts new file: client/src/standalone/embed-player-api/package.json new file: client/src/standalone/embed-player-api/player.ts new file: client/src/standalone/embed-player-api/tsconfig.json new file: client/src/standalone/embed-player-api/vite.config.mjs new file: client/src/standalone/videos/.env.development new file: client/src/standalone/videos/embed-api.ts new file: client/src/standalone/videos/embed.html new file: client/src/standalone/videos/embed.scss new file: client/src/standalone/videos/embed.ts new file: client/src/standalone/videos/shared/auth-http.ts new file: client/src/standalone/videos/shared/index.ts new file: client/src/standalone/videos/shared/live-manager.ts new file: client/src/standalone/videos/shared/peertube-plugin.ts new file: client/src/standalone/videos/shared/player-html.ts new file: client/src/standalone/videos/shared/player-options-builder.ts new file: client/src/standalone/videos/shared/playlist-fetcher.ts new file: client/src/standalone/videos/shared/playlist-tracker.ts new file: client/src/standalone/videos/shared/translations.ts new file: client/src/standalone/videos/shared/url.ts new file: client/src/standalone/videos/shared/video-fetcher.ts new file: client/src/standalone/videos/test-embed.html new file: client/src/standalone/videos/test-embed.scss new file: client/src/standalone/videos/test-embed.ts new file: client/src/standalone/videos/tsconfig.json new file: client/src/standalone/videos/vite.config.mjs new file: client/src/types/client-script.model.ts new file: client/src/types/index.ts new file: client/src/types/job-state-client.type.ts new file: client/src/types/job-type-client.type.ts new file: client/src/types/link.type.ts new file: client/src/types/register-client-option.model.ts new file: client/src/types/select-options-item.model.ts new file: client/src/types/server-error.model.ts new file: client/src/typings.d.ts new file: client/tsconfig.eslint.json new file: client/tsconfig.json new file: client/tsconfig.types.json new file: client/yarn.lock new file: config/default.yaml new file: config/dev-1.yaml new file: config/dev.yaml new file: config/production.yaml.example new file: config/test-1.yaml new file: config/test-2.yaml new file: config/test-3.yaml new file: config/test-4.yaml new file: config/test-5.yaml new file: config/test-6.yaml new file: config/test.yaml new file: package.json new file: packages/core-utils/package.json new file: packages/core-utils/src/abuse/abuse-predefined-reasons.ts new file: packages/core-utils/src/abuse/index.ts new file: packages/core-utils/src/common/array.ts new file: packages/core-utils/src/common/date.ts new file: packages/core-utils/src/common/index.ts new file: packages/core-utils/src/common/number.ts new file: packages/core-utils/src/common/object.ts new file: packages/core-utils/src/common/promises.ts new file: packages/core-utils/src/common/random.ts new file: packages/core-utils/src/common/regexp.ts new file: packages/core-utils/src/common/time.ts new file: packages/core-utils/src/common/url.ts new file: packages/core-utils/src/common/version.ts new file: packages/core-utils/src/i18n/i18n.ts new file: packages/core-utils/src/i18n/index.ts new file: packages/core-utils/src/index.ts new file: packages/core-utils/src/plugins/hooks.ts new file: packages/core-utils/src/plugins/index.ts new file: packages/core-utils/src/renderer/html.ts new file: packages/core-utils/src/renderer/index.ts new file: packages/core-utils/src/renderer/markdown.ts new file: packages/core-utils/src/string/chapters.ts new file: packages/core-utils/src/string/index.ts new file: packages/core-utils/src/users/index.ts new file: packages/core-utils/src/users/user-role.ts new file: packages/core-utils/src/videos/bitrate.ts new file: packages/core-utils/src/videos/common.ts new file: packages/core-utils/src/videos/index.ts new file: packages/core-utils/tsconfig.json new file: packages/ffmpeg/package.json new file: packages/ffmpeg/src/ffmpeg-command-wrapper.ts new file: packages/ffmpeg/src/ffmpeg-container.ts new file: packages/ffmpeg/src/ffmpeg-default-transcoding-profile.ts new file: packages/ffmpeg/src/ffmpeg-edition.ts new file: packages/ffmpeg/src/ffmpeg-images.ts new file: packages/ffmpeg/src/ffmpeg-live.ts new file: packages/ffmpeg/src/ffmpeg-utils.ts new file: packages/ffmpeg/src/ffmpeg-version.ts new file: packages/ffmpeg/src/ffmpeg-vod.ts new file: packages/ffmpeg/src/ffprobe.ts new file: packages/ffmpeg/src/index.ts new file: packages/ffmpeg/src/shared/encoder-options.ts new file: packages/ffmpeg/src/shared/index.ts new file: packages/ffmpeg/src/shared/presets.ts new file: packages/ffmpeg/tsconfig.json new file: packages/models/package.json new file: packages/models/src/activitypub/activity.ts new file: packages/models/src/activitypub/activitypub-actor.ts new file: packages/models/src/activitypub/activitypub-collection.ts new file: packages/models/src/activitypub/activitypub-ordered-collection.ts new file: packages/models/src/activitypub/activitypub-root.ts new file: packages/models/src/activitypub/activitypub-signature.ts new file: packages/models/src/activitypub/context.ts new file: packages/models/src/activitypub/index.ts new file: packages/models/src/activitypub/objects/abuse-object.ts new file: packages/models/src/activitypub/objects/activitypub-object.ts new file: packages/models/src/activitypub/objects/cache-file-object.ts new file: packages/models/src/activitypub/objects/common-objects.ts new file: packages/models/src/activitypub/objects/index.ts new file: packages/models/src/activitypub/objects/playlist-element-object.ts new file: packages/models/src/activitypub/objects/playlist-object.ts new file: packages/models/src/activitypub/objects/video-caption-object.ts new file: packages/models/src/activitypub/objects/video-chapters-object.ts new file: packages/models/src/activitypub/objects/video-comment-object.ts new file: packages/models/src/activitypub/objects/video-object.ts new file: packages/models/src/activitypub/objects/watch-action-object.ts new file: packages/models/src/activitypub/webfinger.ts new file: packages/models/src/actors/account.model.ts new file: packages/models/src/actors/actor-image.model.ts new file: packages/models/src/actors/actor-image.type.ts new file: packages/models/src/actors/actor.model.ts new file: packages/models/src/actors/custom-page.model.ts new file: packages/models/src/actors/follow.model.ts new file: packages/models/src/actors/index.ts new file: packages/models/src/bulk/bulk-remove-comments-of-body.model.ts new file: packages/models/src/bulk/index.ts new file: packages/models/src/common/file-storage.enum.ts new file: packages/models/src/common/index.ts new file: packages/models/src/common/result-list.model.ts new file: packages/models/src/common/simple-logger.model.ts new file: packages/models/src/custom-markup/custom-markup-data.model.ts new file: packages/models/src/custom-markup/index.ts new file: packages/models/src/feeds/feed-format.enum.ts new file: packages/models/src/feeds/index.ts new file: packages/models/src/http/http-methods.ts new file: packages/models/src/http/http-status-codes.ts new file: packages/models/src/http/index.ts new file: packages/models/src/import-export/index.ts new file: packages/models/src/import-export/peertube-export-format/account-export.model.ts new file: packages/models/src/import-export/peertube-export-format/actor-export.model.ts new file: packages/models/src/import-export/peertube-export-format/auto-tag-policies-export.ts new file: packages/models/src/import-export/peertube-export-format/blocklist-export.model.ts new file: packages/models/src/import-export/peertube-export-format/channel-export.model.ts new file: packages/models/src/import-export/peertube-export-format/comments-export.model.ts new file: packages/models/src/import-export/peertube-export-format/dislikes-export.model.ts new file: packages/models/src/import-export/peertube-export-format/followers-export.model.ts new file: packages/models/src/import-export/peertube-export-format/following-export.model.ts new file: packages/models/src/import-export/peertube-export-format/index.ts new file: packages/models/src/import-export/peertube-export-format/likes-export.model.ts new file: packages/models/src/import-export/peertube-export-format/user-settings-export.model.ts new file: packages/models/src/import-export/peertube-export-format/user-video-history-export.ts new file: packages/models/src/import-export/peertube-export-format/video-export.model.ts new file: packages/models/src/import-export/peertube-export-format/video-playlists-export.model.ts new file: packages/models/src/import-export/peertube-export-format/watched-words-lists-export.ts new file: packages/models/src/import-export/user-export-request-result.model.ts new file: packages/models/src/import-export/user-export-request.model.ts new file: packages/models/src/import-export/user-export-state.enum.ts new file: packages/models/src/import-export/user-export.model.ts new file: packages/models/src/import-export/user-import-result.model.ts new file: packages/models/src/import-export/user-import-state.enum.ts new file: packages/models/src/import-export/user-import-upload-result.model.ts new file: packages/models/src/import-export/user-import.model.ts new file: packages/models/src/index.ts new file: packages/models/src/metrics/index.ts new file: packages/models/src/metrics/playback-metric-create.model.ts new file: packages/models/src/moderation/abuse/abuse-create.model.ts new file: packages/models/src/moderation/abuse/abuse-filter.type.ts new file: packages/models/src/moderation/abuse/abuse-message.model.ts new file: packages/models/src/moderation/abuse/abuse-reason.model.ts new file: packages/models/src/moderation/abuse/abuse-state.model.ts new file: packages/models/src/moderation/abuse/abuse-update.model.ts new file: packages/models/src/moderation/abuse/abuse-video-is.type.ts new file: packages/models/src/moderation/abuse/abuse.model.ts new file: packages/models/src/moderation/abuse/index.ts new file: packages/models/src/moderation/account-block.model.ts new file: packages/models/src/moderation/automatic-tag-available.model.ts new file: packages/models/src/moderation/automatic-tag-policy.enum.ts new file: packages/models/src/moderation/block-status.model.ts new file: packages/models/src/moderation/comment-automatic-tag-policies-update.model.ts new file: packages/models/src/moderation/comment-automatic-tag-policies.model.ts new file: packages/models/src/moderation/index.ts new file: packages/models/src/moderation/server-block.model.ts new file: packages/models/src/moderation/watched-words-list.model.ts new file: packages/models/src/nodeinfo/index.ts new file: packages/models/src/nodeinfo/nodeinfo.model.ts new file: packages/models/src/overviews/index.ts new file: packages/models/src/overviews/videos-overview.model.ts new file: packages/models/src/plugins/client/client-hook.model.ts new file: packages/models/src/plugins/client/index.ts new file: packages/models/src/plugins/client/plugin-client-scope.type.ts new file: packages/models/src/plugins/client/plugin-element-placeholder.type.ts new file: packages/models/src/plugins/client/plugin-selector-id.type.ts new file: packages/models/src/plugins/client/register-client-form-field.model.ts new file: packages/models/src/plugins/client/register-client-hook.model.ts new file: packages/models/src/plugins/client/register-client-route.model.ts new file: packages/models/src/plugins/client/register-client-settings-script.model.ts new file: packages/models/src/plugins/hook-type.enum.ts new file: packages/models/src/plugins/index.ts new file: packages/models/src/plugins/plugin-index/index.ts new file: packages/models/src/plugins/plugin-index/peertube-plugin-index-list.model.ts new file: packages/models/src/plugins/plugin-index/peertube-plugin-index.model.ts new file: packages/models/src/plugins/plugin-index/peertube-plugin-latest-version.model.ts new file: packages/models/src/plugins/plugin-package-json.model.ts new file: packages/models/src/plugins/plugin.type.ts new file: packages/models/src/plugins/server/api/index.ts new file: packages/models/src/plugins/server/api/install-plugin.model.ts new file: packages/models/src/plugins/server/api/manage-plugin.model.ts new file: packages/models/src/plugins/server/api/peertube-plugin.model.ts new file: packages/models/src/plugins/server/index.ts new file: packages/models/src/plugins/server/managers/index.ts new file: packages/models/src/plugins/server/managers/plugin-playlist-privacy-manager.model.ts new file: packages/models/src/plugins/server/managers/plugin-settings-manager.model.ts new file: packages/models/src/plugins/server/managers/plugin-storage-manager.model.ts new file: packages/models/src/plugins/server/managers/plugin-transcoding-manager.model.ts new file: packages/models/src/plugins/server/managers/plugin-video-category-manager.model.ts new file: packages/models/src/plugins/server/managers/plugin-video-language-manager.model.ts new file: packages/models/src/plugins/server/managers/plugin-video-licence-manager.model.ts new file: packages/models/src/plugins/server/managers/plugin-video-privacy-manager.model.ts new file: packages/models/src/plugins/server/plugin-constant-manager.model.ts new file: packages/models/src/plugins/server/plugin-translation.model.ts new file: packages/models/src/plugins/server/register-server-hook.model.ts new file: packages/models/src/plugins/server/server-hook.model.ts new file: packages/models/src/plugins/server/settings/index.ts new file: packages/models/src/plugins/server/settings/public-server.setting.ts new file: packages/models/src/plugins/server/settings/register-server-setting.model.ts new file: packages/models/src/redundancy/index.ts new file: packages/models/src/redundancy/video-redundancies-filters.model.ts new file: packages/models/src/redundancy/video-redundancy-config-filter.type.ts new file: packages/models/src/redundancy/video-redundancy.model.ts new file: packages/models/src/redundancy/videos-redundancy-strategy.model.ts new file: packages/models/src/runners/abort-runner-job-body.model.ts new file: packages/models/src/runners/accept-runner-job-body.model.ts new file: packages/models/src/runners/accept-runner-job-result.model.ts new file: packages/models/src/runners/error-runner-job-body.model.ts new file: packages/models/src/runners/index.ts new file: packages/models/src/runners/list-runner-jobs-query.model.ts new file: packages/models/src/runners/list-runner-registration-tokens.model.ts new file: packages/models/src/runners/list-runners-query.model.ts new file: packages/models/src/runners/register-runner-body.model.ts new file: packages/models/src/runners/register-runner-result.model.ts new file: packages/models/src/runners/request-runner-job-body.model.ts new file: packages/models/src/runners/request-runner-job-result.model.ts new file: packages/models/src/runners/runner-job-payload.model.ts new file: packages/models/src/runners/runner-job-private-payload.model.ts new file: packages/models/src/runners/runner-job-state.model.ts new file: packages/models/src/runners/runner-job-success-body.model.ts new file: packages/models/src/runners/runner-job-type.type.ts new file: packages/models/src/runners/runner-job-update-body.model.ts new file: packages/models/src/runners/runner-job.model.ts new file: packages/models/src/runners/runner-registration-token.ts new file: packages/models/src/runners/runner.model.ts new file: packages/models/src/runners/unregister-runner-body.model.ts new file: packages/models/src/search/boolean-both-query.model.ts new file: packages/models/src/search/index.ts new file: packages/models/src/search/search-target-query.model.ts new file: packages/models/src/search/video-channels-search-query.model.ts new file: packages/models/src/search/video-playlists-search-query.model.ts new file: packages/models/src/search/videos-common-query.model.ts new file: packages/models/src/search/videos-search-query.model.ts new file: packages/models/src/server/about.model.ts new file: packages/models/src/server/broadcast-message-level.type.ts new file: packages/models/src/server/client-log-create.model.ts new file: packages/models/src/server/client-log-level.type.ts new file: packages/models/src/server/contact-form.model.ts new file: packages/models/src/server/custom-config.model.ts new file: packages/models/src/server/debug.model.ts new file: packages/models/src/server/emailer.model.ts new file: packages/models/src/server/index.ts new file: packages/models/src/server/job.model.ts new file: packages/models/src/server/peertube-problem-document.model.ts new file: packages/models/src/server/server-config.model.ts new file: packages/models/src/server/server-debug.model.ts new file: packages/models/src/server/server-error-code.enum.ts new file: packages/models/src/server/server-follow-create.model.ts new file: packages/models/src/server/server-log-level.type.ts new file: packages/models/src/server/server-stats.model.ts new file: packages/models/src/tokens/index.ts new file: packages/models/src/tokens/oauth-client-local.model.ts new file: packages/models/src/users/index.ts new file: packages/models/src/users/registration/index.ts new file: packages/models/src/users/registration/user-register.model.ts new file: packages/models/src/users/registration/user-registration-request.model.ts new file: packages/models/src/users/registration/user-registration-state.model.ts new file: packages/models/src/users/registration/user-registration-update-state.model.ts new file: packages/models/src/users/registration/user-registration.model.ts new file: packages/models/src/users/two-factor-enable-result.model.ts new file: packages/models/src/users/user-create-result.model.ts new file: packages/models/src/users/user-create.model.ts new file: packages/models/src/users/user-flag.model.ts new file: packages/models/src/users/user-login.model.ts new file: packages/models/src/users/user-notification-setting.model.ts new file: packages/models/src/users/user-notification.model.ts new file: packages/models/src/users/user-refresh-token.model.ts new file: packages/models/src/users/user-right.enum.ts new file: packages/models/src/users/user-role.ts new file: packages/models/src/users/user-scoped-token.ts new file: packages/models/src/users/user-update-me.model.ts new file: packages/models/src/users/user-update.model.ts new file: packages/models/src/users/user-video-quota.model.ts new file: packages/models/src/users/user.model.ts new file: packages/models/src/videos/blacklist/index.ts new file: packages/models/src/videos/blacklist/video-blacklist-create.model.ts new file: packages/models/src/videos/blacklist/video-blacklist-update.model.ts new file: packages/models/src/videos/blacklist/video-blacklist.model.ts new file: packages/models/src/videos/caption/index.ts new file: packages/models/src/videos/caption/video-caption-generate.model.ts new file: packages/models/src/videos/caption/video-caption-update.model.ts new file: packages/models/src/videos/caption/video-caption.model.ts new file: packages/models/src/videos/change-ownership/index.ts new file: packages/models/src/videos/change-ownership/video-change-ownership-accept.model.ts new file: packages/models/src/videos/change-ownership/video-change-ownership-create.model.ts new file: packages/models/src/videos/change-ownership/video-change-ownership.model.ts new file: packages/models/src/videos/channel-sync/index.ts new file: packages/models/src/videos/channel-sync/video-channel-sync-create.model.ts new file: packages/models/src/videos/channel-sync/video-channel-sync-state.enum.ts new file: packages/models/src/videos/channel-sync/video-channel-sync.model.ts new file: packages/models/src/videos/channel/index.ts new file: packages/models/src/videos/channel/video-channel-create-result.model.ts new file: packages/models/src/videos/channel/video-channel-create.model.ts new file: packages/models/src/videos/channel/video-channel-update.model.ts new file: packages/models/src/videos/channel/video-channel.model.ts new file: packages/models/src/videos/chapter/chapter-update.model.ts new file: packages/models/src/videos/chapter/chapter.model.ts new file: packages/models/src/videos/chapter/index.ts new file: packages/models/src/videos/comment/index.ts new file: packages/models/src/videos/comment/video-comment-create.model.ts new file: packages/models/src/videos/comment/video-comment-policy.enum.ts new file: packages/models/src/videos/comment/video-comment.model.ts new file: packages/models/src/videos/file/index.ts new file: packages/models/src/videos/file/video-file-format-flag.enum.ts new file: packages/models/src/videos/file/video-file-metadata.model.ts new file: packages/models/src/videos/file/video-file-stream.enum.ts new file: packages/models/src/videos/file/video-file.model.ts new file: packages/models/src/videos/file/video-resolution.enum.ts new file: packages/models/src/videos/import/index.ts new file: packages/models/src/videos/import/video-import-create.model.ts new file: packages/models/src/videos/import/video-import-state.enum.ts new file: packages/models/src/videos/import/video-import.model.ts new file: packages/models/src/videos/import/videos-import-in-channel-create.model.ts new file: packages/models/src/videos/index.ts new file: packages/models/src/videos/nsfw-policy.type.ts new file: packages/models/src/videos/playlist/index.ts new file: packages/models/src/videos/playlist/video-exist-in-playlist.model.ts new file: packages/models/src/videos/playlist/video-playlist-create-result.model.ts new file: packages/models/src/videos/playlist/video-playlist-create.model.ts new file: packages/models/src/videos/playlist/video-playlist-element-create-result.model.ts new file: packages/models/src/videos/playlist/video-playlist-element-create.model.ts new file: packages/models/src/videos/playlist/video-playlist-element-update.model.ts new file: packages/models/src/videos/playlist/video-playlist-element.model.ts new file: packages/models/src/videos/playlist/video-playlist-privacy.model.ts new file: packages/models/src/videos/playlist/video-playlist-reorder.model.ts new file: packages/models/src/videos/playlist/video-playlist-type.model.ts new file: packages/models/src/videos/playlist/video-playlist-update.model.ts new file: packages/models/src/videos/playlist/video-playlist.model.ts new file: packages/models/src/videos/rate/account-video-rate.model.ts new file: packages/models/src/videos/rate/index.ts new file: packages/models/src/videos/rate/user-video-rate-update.model.ts new file: packages/models/src/videos/rate/user-video-rate.model.ts new file: packages/models/src/videos/rate/user-video-rate.type.ts new file: packages/models/src/videos/stats/index.ts new file: packages/models/src/videos/stats/video-stats-overall-query.model.ts new file: packages/models/src/videos/stats/video-stats-overall.model.ts new file: packages/models/src/videos/stats/video-stats-retention.model.ts new file: packages/models/src/videos/stats/video-stats-timeserie-metric.type.ts new file: packages/models/src/videos/stats/video-stats-timeserie-query.model.ts new file: packages/models/src/videos/stats/video-stats-timeserie.model.ts new file: packages/models/src/videos/storyboard.model.ts new file: packages/models/src/videos/studio/index.ts new file: packages/models/src/videos/studio/video-studio-create-edit.model.ts new file: packages/models/src/videos/thumbnail.type.ts new file: packages/models/src/videos/transcoding/index.ts new file: packages/models/src/videos/transcoding/video-transcoding-create.model.ts new file: packages/models/src/videos/transcoding/video-transcoding.model.ts new file: packages/models/src/videos/video-constant.model.ts new file: packages/models/src/videos/video-create-result.model.ts new file: packages/models/src/videos/video-create.model.ts new file: packages/models/src/videos/video-include.enum.ts new file: packages/models/src/videos/video-password.model.ts new file: packages/models/src/videos/video-privacy.enum.ts new file: packages/models/src/videos/video-rate.type.ts new file: packages/models/src/videos/video-schedule-update.model.ts new file: packages/models/src/videos/video-sort-field.type.ts new file: packages/models/src/videos/video-source.model.ts new file: packages/models/src/videos/video-state.enum.ts new file: packages/models/src/videos/video-streaming-playlist.model.ts new file: packages/models/src/videos/video-streaming-playlist.type.ts new file: packages/models/src/videos/video-token.model.ts new file: packages/models/src/videos/video-update.model.ts new file: packages/models/src/videos/video-view.model.ts new file: packages/models/src/videos/video.model.ts new file: packages/models/tsconfig.json new file: packages/models/tsconfig.types.json new file: packages/node-utils/package.json new file: packages/node-utils/src/crypto.ts new file: packages/node-utils/src/env.ts new file: packages/node-utils/src/file.ts new file: packages/node-utils/src/index.ts new file: packages/node-utils/src/path.ts new file: packages/node-utils/src/uuid.ts new file: packages/node-utils/tsconfig.json new file: packages/server-commands/package.json new file: packages/server-commands/src/bulk/bulk-command.ts new file: packages/server-commands/src/bulk/index.ts new file: packages/server-commands/src/cli/cli-command.ts new file: packages/server-commands/src/cli/index.ts new file: packages/server-commands/src/custom-pages/custom-pages-command.ts new file: packages/server-commands/src/custom-pages/index.ts new file: packages/server-commands/src/feeds/feeds-command.ts new file: packages/server-commands/src/feeds/index.ts new file: packages/server-commands/src/index.ts new file: packages/server-commands/src/logs/index.ts new file: packages/server-commands/src/logs/logs-command.ts new file: packages/server-commands/src/moderation/abuses-command.ts new file: packages/server-commands/src/moderation/automatic-tags-command.ts new file: packages/server-commands/src/moderation/index.ts new file: packages/server-commands/src/moderation/watched-words-command.ts new file: packages/server-commands/src/overviews/index.ts new file: packages/server-commands/src/overviews/overviews-command.ts new file: packages/server-commands/src/requests/index.ts new file: packages/server-commands/src/requests/requests.ts new file: packages/server-commands/src/runners/index.ts new file: packages/server-commands/src/runners/runner-jobs-command.ts new file: packages/server-commands/src/runners/runner-registration-tokens-command.ts new file: packages/server-commands/src/runners/runners-command.ts new file: packages/server-commands/src/search/index.ts new file: packages/server-commands/src/search/search-command.ts new file: packages/server-commands/src/server/config-command.ts new file: packages/server-commands/src/server/contact-form-command.ts new file: packages/server-commands/src/server/debug-command.ts new file: packages/server-commands/src/server/follows-command.ts new file: packages/server-commands/src/server/follows.ts new file: packages/server-commands/src/server/index.ts new file: packages/server-commands/src/server/jobs-command.ts new file: packages/server-commands/src/server/jobs.ts new file: packages/server-commands/src/server/metrics-command.ts new file: packages/server-commands/src/server/object-storage-command.ts new file: packages/server-commands/src/server/plugins-command.ts new file: packages/server-commands/src/server/redundancy-command.ts new file: packages/server-commands/src/server/server.ts new file: packages/server-commands/src/server/servers-command.ts new file: packages/server-commands/src/server/servers.ts new file: packages/server-commands/src/server/stats-command.ts new file: packages/server-commands/src/shared/abstract-command.ts new file: packages/server-commands/src/shared/index.ts new file: packages/server-commands/src/socket/index.ts new file: packages/server-commands/src/socket/socket-io-command.ts new file: packages/server-commands/src/users/accounts-command.ts new file: packages/server-commands/src/users/accounts.ts new file: packages/server-commands/src/users/blocklist-command.ts new file: packages/server-commands/src/users/index.ts new file: packages/server-commands/src/users/login-command.ts new file: packages/server-commands/src/users/login.ts new file: packages/server-commands/src/users/notifications-command.ts new file: packages/server-commands/src/users/registrations-command.ts new file: packages/server-commands/src/users/subscriptions-command.ts new file: packages/server-commands/src/users/two-factor-command.ts new file: packages/server-commands/src/users/user-exports-command.ts new file: packages/server-commands/src/users/user-imports-command.ts new file: packages/server-commands/src/users/users-command.ts new file: packages/server-commands/src/videos/blacklist-command.ts new file: packages/server-commands/src/videos/captions-command.ts new file: packages/server-commands/src/videos/change-ownership-command.ts new file: packages/server-commands/src/videos/channel-syncs-command.ts new file: packages/server-commands/src/videos/channels-command.ts new file: packages/server-commands/src/videos/channels.ts new file: packages/server-commands/src/videos/chapters-command.ts new file: packages/server-commands/src/videos/comments-command.ts new file: packages/server-commands/src/videos/history-command.ts new file: packages/server-commands/src/videos/index.ts new file: packages/server-commands/src/videos/live-command.ts new file: packages/server-commands/src/videos/live.ts new file: packages/server-commands/src/videos/playlists-command.ts new file: packages/server-commands/src/videos/services-command.ts new file: packages/server-commands/src/videos/storyboard-command.ts new file: packages/server-commands/src/videos/streaming-playlists-command.ts new file: packages/server-commands/src/videos/video-imports-command.ts new file: packages/server-commands/src/videos/video-passwords-command.ts new file: packages/server-commands/src/videos/video-stats-command.ts new file: packages/server-commands/src/videos/video-studio-command.ts new file: packages/server-commands/src/videos/video-token-command.ts new file: packages/server-commands/src/videos/videos-command.ts new file: packages/server-commands/src/videos/views-command.ts new file: packages/server-commands/tsconfig.json new file: packages/tests/fixtures/60fps_720p_small.mp4 new file: packages/tests/fixtures/ap-json/mastodon/bad-body-http-signature.json new file: packages/tests/fixtures/ap-json/mastodon/bad-http-signature.json new file: packages/tests/fixtures/ap-json/mastodon/bad-public-key.json new file: packages/tests/fixtures/ap-json/mastodon/create-bad-signature.json new file: packages/tests/fixtures/ap-json/mastodon/create.json new file: packages/tests/fixtures/ap-json/mastodon/http-signature.json new file: packages/tests/fixtures/ap-json/mastodon/public-key.json new file: packages/tests/fixtures/ap-json/peertube/announce-without-context.json new file: packages/tests/fixtures/ap-json/peertube/invalid-keys.json new file: packages/tests/fixtures/ap-json/peertube/keys.json new file: packages/tests/fixtures/avatar-big.png new file: packages/tests/fixtures/avatar-resized-120x120.gif new file: packages/tests/fixtures/avatar-resized-120x120.png new file: packages/tests/fixtures/avatar-resized-120x120.webp new file: packages/tests/fixtures/avatar-resized-1500x1500.png new file: packages/tests/fixtures/avatar-resized-1500x1500.webp new file: packages/tests/fixtures/avatar-resized-48x48.gif new file: packages/tests/fixtures/avatar-resized-48x48.png new file: packages/tests/fixtures/avatar-resized-48x48.webp new file: packages/tests/fixtures/avatar-resized-600x600.png new file: packages/tests/fixtures/avatar-resized-600x600.webp new file: packages/tests/fixtures/avatar.gif new file: packages/tests/fixtures/avatar.png new file: packages/tests/fixtures/avatar.webp new file: packages/tests/fixtures/avatar2-resized-120x120.png new file: packages/tests/fixtures/avatar2-resized-1500x1500.png new file: packages/tests/fixtures/avatar2-resized-48x48.png new file: packages/tests/fixtures/avatar2-resized-600x600.png new file: packages/tests/fixtures/avatar2.png new file: packages/tests/fixtures/banner-resized-1920.jpg new file: packages/tests/fixtures/banner-resized-600.jpg new file: packages/tests/fixtures/banner-user-import-resized-1920.jpg new file: packages/tests/fixtures/banner-user-import-resized-600.jpg new file: packages/tests/fixtures/banner.jpg new file: packages/tests/fixtures/custom-preview-big.png new file: packages/tests/fixtures/custom-preview.jpg new file: packages/tests/fixtures/custom-thumbnail-2.jpg new file: packages/tests/fixtures/custom-thumbnail-big.jpg new file: packages/tests/fixtures/custom-thumbnail-from-preview.jpg new file: packages/tests/fixtures/custom-thumbnail.jpg new file: packages/tests/fixtures/custom-thumbnail.png new file: packages/tests/fixtures/default-live-preview.jpg new file: packages/tests/fixtures/default-live-thumbnail.jpg new file: packages/tests/fixtures/exif.jpg new file: packages/tests/fixtures/exif.png new file: packages/tests/fixtures/export-bad-structure.zip new file: packages/tests/fixtures/export-bad-video-file.zip new file: packages/tests/fixtures/export-bad-video.zip new file: packages/tests/fixtures/export-with-files.zip new file: packages/tests/fixtures/export-without-files.zip new file: packages/tests/fixtures/export-without-videos.zip new file: packages/tests/fixtures/live/0-000067.ts new file: packages/tests/fixtures/live/0-000068.ts new file: packages/tests/fixtures/live/0-000069.ts new file: packages/tests/fixtures/live/0-000070.ts new file: packages/tests/fixtures/live/0.m3u8 new file: packages/tests/fixtures/live/1-000067.ts new file: packages/tests/fixtures/live/1-000068.ts new file: packages/tests/fixtures/live/1-000069.ts new file: packages/tests/fixtures/live/1-000070.ts new file: packages/tests/fixtures/live/1.m3u8 new file: packages/tests/fixtures/live/master.m3u8 new file: packages/tests/fixtures/low-bitrate.mp4 new file: packages/tests/fixtures/peertube-plugin-test-broken/main.js new file: packages/tests/fixtures/peertube-plugin-test-broken/package.json new file: packages/tests/fixtures/peertube-plugin-test-external-auth-one/main.js new file: packages/tests/fixtures/peertube-plugin-test-external-auth-one/package.json new file: packages/tests/fixtures/peertube-plugin-test-external-auth-three/main.js new file: packages/tests/fixtures/peertube-plugin-test-external-auth-three/package.json new file: packages/tests/fixtures/peertube-plugin-test-external-auth-two/main.js new file: packages/tests/fixtures/peertube-plugin-test-external-auth-two/package.json new file: packages/tests/fixtures/peertube-plugin-test-filter-translations/languages/fr.json new file: packages/tests/fixtures/peertube-plugin-test-filter-translations/languages/it.json new file: packages/tests/fixtures/peertube-plugin-test-filter-translations/main.js new file: packages/tests/fixtures/peertube-plugin-test-filter-translations/package.json new file: packages/tests/fixtures/peertube-plugin-test-five/main.js new file: packages/tests/fixtures/peertube-plugin-test-five/package.json new file: packages/tests/fixtures/peertube-plugin-test-four/main.js new file: packages/tests/fixtures/peertube-plugin-test-four/package.json new file: packages/tests/fixtures/peertube-plugin-test-id-pass-auth-one/main.js new file: packages/tests/fixtures/peertube-plugin-test-id-pass-auth-one/package.json new file: packages/tests/fixtures/peertube-plugin-test-id-pass-auth-three/main.js new file: packages/tests/fixtures/peertube-plugin-test-id-pass-auth-three/package.json new file: packages/tests/fixtures/peertube-plugin-test-id-pass-auth-two/main.js new file: packages/tests/fixtures/peertube-plugin-test-id-pass-auth-two/package.json new file: packages/tests/fixtures/peertube-plugin-test-native/main.js new file: packages/tests/fixtures/peertube-plugin-test-native/package.json new file: packages/tests/fixtures/peertube-plugin-test-podcast-custom-tags/main.js new file: packages/tests/fixtures/peertube-plugin-test-podcast-custom-tags/package.json new file: packages/tests/fixtures/peertube-plugin-test-six/main.js new file: packages/tests/fixtures/peertube-plugin-test-six/package.json new file: packages/tests/fixtures/peertube-plugin-test-transcoding-one/main.js new file: packages/tests/fixtures/peertube-plugin-test-transcoding-one/package.json new file: packages/tests/fixtures/peertube-plugin-test-transcoding-two/main.js new file: packages/tests/fixtures/peertube-plugin-test-transcoding-two/package.json new file: packages/tests/fixtures/peertube-plugin-test-unloading/lib.js new file: packages/tests/fixtures/peertube-plugin-test-unloading/main.js new file: packages/tests/fixtures/peertube-plugin-test-unloading/package.json new file: packages/tests/fixtures/peertube-plugin-test-video-constants/main.js new file: packages/tests/fixtures/peertube-plugin-test-video-constants/package.json new file: packages/tests/fixtures/peertube-plugin-test-websocket/main.js new file: packages/tests/fixtures/peertube-plugin-test-websocket/package.json new file: packages/tests/fixtures/peertube-plugin-test/languages/fr.json new file: packages/tests/fixtures/peertube-plugin-test/main.js new file: packages/tests/fixtures/peertube-plugin-test/package.json new file: packages/tests/fixtures/rtmps.cert new file: packages/tests/fixtures/rtmps.key new file: packages/tests/fixtures/sample.ogg new file: packages/tests/fixtures/subtitle-bad.txt new file: packages/tests/fixtures/subtitle-good.srt new file: packages/tests/fixtures/subtitle-good1.vtt new file: packages/tests/fixtures/subtitle-good2.vtt new file: packages/tests/fixtures/thumbnail-playlist.jpg new file: packages/tests/fixtures/transcription/hello_world.zip new file: packages/tests/fixtures/transcription/videos/README.md new file: packages/tests/fixtures/transcription/videos/communiquer-lors-dune-classe-transplantee.mp4 new file: packages/tests/fixtures/transcription/videos/communiquer-lors-dune-classe-transplantee.txt new file: packages/tests/fixtures/transcription/videos/derive_sectaire.mp4 new file: packages/tests/fixtures/transcription/videos/derive_sectaire.srt new file: packages/tests/fixtures/transcription/videos/derive_sectaire.txt new file: packages/tests/fixtures/transcription/videos/the_last_man_on_earth.mp4 new file: packages/tests/fixtures/transcription/videos/the_last_man_on_earth.srt new file: packages/tests/fixtures/transcription/videos/the_last_man_on_earth.txt new file: packages/tests/fixtures/transcription/videos/the_last_man_on_earth.vtt new file: packages/tests/fixtures/video-720p.torrent new file: packages/tests/fixtures/video_chapters.mp4 new file: packages/tests/fixtures/video_import_preview.jpg new file: packages/tests/fixtures/video_import_preview_yt_dlp.jpg new file: packages/tests/fixtures/video_import_thumbnail.jpg new file: packages/tests/fixtures/video_import_thumbnail_yt_dlp.jpg new file: packages/tests/fixtures/video_short.avi new file: packages/tests/fixtures/video_short.mkv new file: packages/tests/fixtures/video_short.mp4 new file: packages/tests/fixtures/video_short.mp4.jpg new file: packages/tests/fixtures/video_short.ogv new file: packages/tests/fixtures/video_short.ogv.jpg new file: packages/tests/fixtures/video_short.webm new file: packages/tests/fixtures/video_short.webm.jpg new file: packages/tests/fixtures/video_short1-preview.webm.jpg new file: packages/tests/fixtures/video_short1.webm new file: packages/tests/fixtures/video_short1.webm.jpg new file: packages/tests/fixtures/video_short2.webm new file: packages/tests/fixtures/video_short2.webm.jpg new file: packages/tests/fixtures/video_short3.webm new file: packages/tests/fixtures/video_short3.webm.jpg new file: packages/tests/fixtures/video_short_0p.mp4 new file: packages/tests/fixtures/video_short_144p.m3u8 new file: packages/tests/fixtures/video_short_144p.mp4 new file: packages/tests/fixtures/video_short_240p.m3u8 new file: packages/tests/fixtures/video_short_240p.mp4 new file: packages/tests/fixtures/video_short_360p.m3u8 new file: packages/tests/fixtures/video_short_360p.mp4 new file: packages/tests/fixtures/video_short_480.webm new file: packages/tests/fixtures/video_short_480p.m3u8 new file: packages/tests/fixtures/video_short_480p.mp4 new file: packages/tests/fixtures/video_short_4k.mp4 new file: packages/tests/fixtures/video_short_720p.m3u8 new file: packages/tests/fixtures/video_short_720p.mp4 new file: packages/tests/fixtures/video_short_fake.webm new file: packages/tests/fixtures/video_short_mp3_256k.mp4 new file: packages/tests/fixtures/video_short_no_audio.mp4 new file: packages/tests/fixtures/video_very_long_10p.mp4 new file: packages/tests/fixtures/video_very_short_240p.mp4 new file: packages/tests/package.json new file: packages/tests/requirements.txt new file: packages/tests/src/api/activitypub/cleaner.ts new file: packages/tests/src/api/activitypub/client.ts new file: packages/tests/src/api/activitypub/fetch.ts new file: packages/tests/src/api/activitypub/index.ts new file: packages/tests/src/api/activitypub/refresher.ts new file: packages/tests/src/api/activitypub/security.ts new file: packages/tests/src/api/check-params/abuses.ts new file: packages/tests/src/api/check-params/accounts.ts new file: packages/tests/src/api/check-params/auto-tags.ts new file: packages/tests/src/api/check-params/blocklist.ts new file: packages/tests/src/api/check-params/bulk.ts new file: packages/tests/src/api/check-params/channel-import-videos.ts new file: packages/tests/src/api/check-params/config.ts new file: packages/tests/src/api/check-params/contact-form.ts new file: packages/tests/src/api/check-params/custom-pages.ts new file: packages/tests/src/api/check-params/debug.ts new file: packages/tests/src/api/check-params/follows.ts new file: packages/tests/src/api/check-params/generate-download.ts new file: packages/tests/src/api/check-params/index.ts new file: packages/tests/src/api/check-params/jobs.ts new file: packages/tests/src/api/check-params/live.ts new file: packages/tests/src/api/check-params/logs.ts new file: packages/tests/src/api/check-params/metrics.ts new file: packages/tests/src/api/check-params/my-user.ts new file: packages/tests/src/api/check-params/plugins.ts new file: packages/tests/src/api/check-params/redundancy.ts new file: packages/tests/src/api/check-params/registrations.ts new file: packages/tests/src/api/check-params/runners.ts new file: packages/tests/src/api/check-params/search.ts new file: packages/tests/src/api/check-params/services.ts new file: packages/tests/src/api/check-params/transcoding.ts new file: packages/tests/src/api/check-params/two-factor.ts new file: packages/tests/src/api/check-params/upload-quota.ts new file: packages/tests/src/api/check-params/user-export.ts new file: packages/tests/src/api/check-params/user-import.ts new file: packages/tests/src/api/check-params/user-notifications.ts new file: packages/tests/src/api/check-params/user-subscriptions.ts new file: packages/tests/src/api/check-params/users-admin.ts new file: packages/tests/src/api/check-params/users-emails.ts new file: packages/tests/src/api/check-params/video-blacklist.ts new file: packages/tests/src/api/check-params/video-captions.ts new file: packages/tests/src/api/check-params/video-channel-syncs.ts new file: packages/tests/src/api/check-params/video-channels.ts new file: packages/tests/src/api/check-params/video-chapters.ts new file: packages/tests/src/api/check-params/video-comments.ts new file: packages/tests/src/api/check-params/video-files.ts new file: packages/tests/src/api/check-params/video-imports.ts new file: packages/tests/src/api/check-params/video-passwords.ts new file: packages/tests/src/api/check-params/video-playlists.ts new file: packages/tests/src/api/check-params/video-source.ts new file: packages/tests/src/api/check-params/video-storyboards.ts new file: packages/tests/src/api/check-params/video-studio.ts new file: packages/tests/src/api/check-params/video-token.ts new file: packages/tests/src/api/check-params/video-transcription.ts new file: packages/tests/src/api/check-params/videos-common-filters.ts new file: packages/tests/src/api/check-params/videos-history.ts new file: packages/tests/src/api/check-params/videos-overviews.ts new file: packages/tests/src/api/check-params/videos.ts new file: packages/tests/src/api/check-params/views.ts new file: packages/tests/src/api/check-params/watched-words.ts new file: packages/tests/src/api/live/index.ts new file: packages/tests/src/api/live/live-audio-or-video-only.ts new file: packages/tests/src/api/live/live-constraints.ts new file: packages/tests/src/api/live/live-fast-restream.ts new file: packages/tests/src/api/live/live-permanent.ts new file: packages/tests/src/api/live/live-privacy-update.ts new file: packages/tests/src/api/live/live-rtmps.ts new file: packages/tests/src/api/live/live-save-replay.ts new file: packages/tests/src/api/live/live-socket-messages.ts new file: packages/tests/src/api/live/live.ts new file: packages/tests/src/api/moderation/abuses.ts new file: packages/tests/src/api/moderation/automatic-tags.ts new file: packages/tests/src/api/moderation/blocklist-notification.ts new file: packages/tests/src/api/moderation/blocklist.ts new file: packages/tests/src/api/moderation/comment-approval.ts new file: packages/tests/src/api/moderation/index.ts new file: packages/tests/src/api/moderation/video-blacklist.ts new file: packages/tests/src/api/moderation/watched-words.ts new file: packages/tests/src/api/notifications/admin-notifications.ts new file: packages/tests/src/api/notifications/caption-notifications.ts new file: packages/tests/src/api/notifications/comments-notifications.ts new file: packages/tests/src/api/notifications/index.ts new file: packages/tests/src/api/notifications/moderation-notifications.ts new file: packages/tests/src/api/notifications/notifications-api.ts new file: packages/tests/src/api/notifications/registrations-notifications.ts new file: packages/tests/src/api/notifications/user-notifications.ts new file: packages/tests/src/api/object-storage/index.ts new file: packages/tests/src/api/object-storage/live.ts new file: packages/tests/src/api/object-storage/video-imports.ts new file: packages/tests/src/api/object-storage/video-static-file-privacy.ts new file: packages/tests/src/api/object-storage/videos.ts new file: packages/tests/src/api/redundancy/index.ts new file: packages/tests/src/api/redundancy/manage-redundancy.ts new file: packages/tests/src/api/redundancy/redundancy-constraints.ts new file: packages/tests/src/api/redundancy/redundancy.ts new file: packages/tests/src/api/runners/index.ts new file: packages/tests/src/api/runners/runner-common.ts new file: packages/tests/src/api/runners/runner-live-transcoding.ts new file: packages/tests/src/api/runners/runner-socket.ts new file: packages/tests/src/api/runners/runner-studio-transcoding.ts new file: packages/tests/src/api/runners/runner-transcription.ts new file: packages/tests/src/api/runners/runner-vod-transcoding.ts new file: packages/tests/src/api/search/index.ts new file: packages/tests/src/api/search/search-activitypub-video-channels.ts new file: packages/tests/src/api/search/search-activitypub-video-playlists.ts new file: packages/tests/src/api/search/search-activitypub-videos.ts new file: packages/tests/src/api/search/search-channels.ts new file: packages/tests/src/api/search/search-index.ts new file: packages/tests/src/api/search/search-playlists.ts new file: packages/tests/src/api/search/search-videos.ts new file: packages/tests/src/api/server/auto-follows.ts new file: packages/tests/src/api/server/bulk.ts new file: packages/tests/src/api/server/config-defaults.ts new file: packages/tests/src/api/server/config.ts new file: packages/tests/src/api/server/contact-form.ts new file: packages/tests/src/api/server/email.ts new file: packages/tests/src/api/server/follow-constraints.ts new file: packages/tests/src/api/server/follows-moderation.ts new file: packages/tests/src/api/server/follows.ts new file: packages/tests/src/api/server/handle-down.ts new file: packages/tests/src/api/server/homepage.ts new file: packages/tests/src/api/server/index.ts new file: packages/tests/src/api/server/jobs.ts new file: packages/tests/src/api/server/logs.ts new file: packages/tests/src/api/server/no-client.ts new file: packages/tests/src/api/server/open-telemetry.ts new file: packages/tests/src/api/server/plugins.ts new file: packages/tests/src/api/server/proxy.ts new file: packages/tests/src/api/server/reverse-proxy.ts new file: packages/tests/src/api/server/services.ts new file: packages/tests/src/api/server/slow-follows.ts new file: packages/tests/src/api/server/ssrf.ts new file: packages/tests/src/api/server/stats.ts new file: packages/tests/src/api/server/tracker.ts new file: packages/tests/src/api/transcoding/audio-only.ts new file: packages/tests/src/api/transcoding/create-transcoding.ts new file: packages/tests/src/api/transcoding/hls.ts new file: packages/tests/src/api/transcoding/index.ts new file: packages/tests/src/api/transcoding/split-audio-and-video.ts new file: packages/tests/src/api/transcoding/transcoder-limits.ts new file: packages/tests/src/api/transcoding/transcoder.ts new file: packages/tests/src/api/transcoding/update-while-transcoding.ts new file: packages/tests/src/api/transcoding/video-studio.ts new file: packages/tests/src/api/users/index.ts new file: packages/tests/src/api/users/oauth.ts new file: packages/tests/src/api/users/registrations.ts new file: packages/tests/src/api/users/two-factor.ts new file: packages/tests/src/api/users/user-export.ts new file: packages/tests/src/api/users/user-import.ts new file: packages/tests/src/api/users/user-subscriptions.ts new file: packages/tests/src/api/users/user-videos.ts new file: packages/tests/src/api/users/users-email-verification.ts new file: packages/tests/src/api/users/users-multiple-servers.ts new file: packages/tests/src/api/users/users.ts new file: packages/tests/src/api/videos/channel-import-videos.ts new file: packages/tests/src/api/videos/generate-download.ts new file: packages/tests/src/api/videos/index.ts new file: packages/tests/src/api/videos/multiple-servers.ts new file: packages/tests/src/api/videos/resumable-upload.ts new file: packages/tests/src/api/videos/single-server.ts new file: packages/tests/src/api/videos/video-captions.ts new file: packages/tests/src/api/videos/video-change-ownership.ts new file: packages/tests/src/api/videos/video-channel-syncs.ts new file: packages/tests/src/api/videos/video-channels.ts new file: packages/tests/src/api/videos/video-chapters.ts new file: packages/tests/src/api/videos/video-comments.ts new file: packages/tests/src/api/videos/video-description.ts new file: packages/tests/src/api/videos/video-files.ts new file: packages/tests/src/api/videos/video-imports.ts new file: packages/tests/src/api/videos/video-nsfw.ts new file: packages/tests/src/api/videos/video-passwords.ts new file: packages/tests/src/api/videos/video-playlist-thumbnails.ts new file: packages/tests/src/api/videos/video-playlists.ts new file: packages/tests/src/api/videos/video-privacy.ts new file: packages/tests/src/api/videos/video-schedule-update.ts new file: packages/tests/src/api/videos/video-source.ts new file: packages/tests/src/api/videos/video-static-file-privacy.ts new file: packages/tests/src/api/videos/video-storyboard.ts new file: packages/tests/src/api/videos/video-transcription.ts new file: packages/tests/src/api/videos/videos-common-filters.ts new file: packages/tests/src/api/videos/videos-history.ts new file: packages/tests/src/api/videos/videos-overview.ts new file: packages/tests/src/api/views/index.ts new file: packages/tests/src/api/views/video-views-counter.ts new file: packages/tests/src/api/views/video-views-overall-stats.ts new file: packages/tests/src/api/views/video-views-retention-stats.ts new file: packages/tests/src/api/views/video-views-timeserie-stats.ts new file: packages/tests/src/api/views/videos-views-cleaner.ts new file: packages/tests/src/cli/create-generate-storyboard-job.ts new file: packages/tests/src/cli/create-import-video-file-job.ts new file: packages/tests/src/cli/create-move-video-storage-job.ts new file: packages/tests/src/cli/house-keeping.ts new file: packages/tests/src/cli/index.ts new file: packages/tests/src/cli/peertube.ts new file: packages/tests/src/cli/plugins.ts new file: packages/tests/src/cli/prune-storage.ts new file: packages/tests/src/cli/regenerate-thumbnails.ts new file: packages/tests/src/cli/reset-password.ts new file: packages/tests/src/cli/update-host.ts new file: packages/tests/src/cli/update-object-storage-url.ts new file: packages/tests/src/client/embed-html.ts new file: packages/tests/src/client/index-html.ts new file: packages/tests/src/client/index.ts new file: packages/tests/src/client/oembed.ts new file: packages/tests/src/client/og-twitter-tags.ts new file: packages/tests/src/core-utils/date.ts new file: packages/tests/src/external-plugins/akismet.ts new file: packages/tests/src/external-plugins/auth-ldap.ts new file: packages/tests/src/external-plugins/auto-block-videos.ts new file: packages/tests/src/external-plugins/auto-mute.ts new file: packages/tests/src/external-plugins/index.ts new file: packages/tests/src/external-plugins/privacy-remover.ts new file: packages/tests/src/feeds/feeds.ts new file: packages/tests/src/feeds/index.ts new file: packages/tests/src/jiwer/jiwer-cli.spec.ts new file: packages/tests/src/misc-endpoints.ts new file: packages/tests/src/nginx.ts new file: packages/tests/src/peertube-runner/client-cli.ts new file: packages/tests/src/peertube-runner/index.ts new file: packages/tests/src/peertube-runner/live-transcoding.ts new file: packages/tests/src/peertube-runner/replace-file.ts new file: packages/tests/src/peertube-runner/studio-transcoding.ts new file: packages/tests/src/peertube-runner/video-transcription.ts new file: packages/tests/src/peertube-runner/vod-transcoding.ts new file: packages/tests/src/plugins/action-hooks.ts new file: packages/tests/src/plugins/external-auth.ts new file: packages/tests/src/plugins/filter-hooks.ts new file: packages/tests/src/plugins/html-injection.ts new file: packages/tests/src/plugins/id-and-pass-auth.ts new file: packages/tests/src/plugins/index.ts new file: packages/tests/src/plugins/plugin-helpers.ts new file: packages/tests/src/plugins/plugin-router.ts new file: packages/tests/src/plugins/plugin-settings.ts new file: packages/tests/src/plugins/plugin-storage.ts new file: packages/tests/src/plugins/plugin-transcoding.ts new file: packages/tests/src/plugins/plugin-unloading.ts new file: packages/tests/src/plugins/plugin-websocket.ts new file: packages/tests/src/plugins/translations.ts new file: packages/tests/src/plugins/video-constants.ts new file: packages/tests/src/server-helpers/activitypub.ts new file: packages/tests/src/server-helpers/core-utils.ts new file: packages/tests/src/server-helpers/crypto.ts new file: packages/tests/src/server-helpers/dns.ts new file: packages/tests/src/server-helpers/image.ts new file: packages/tests/src/server-helpers/index.ts new file: packages/tests/src/server-helpers/markdown.ts new file: packages/tests/src/server-helpers/mentions.ts new file: packages/tests/src/server-helpers/regexp.ts new file: packages/tests/src/server-helpers/request.ts new file: packages/tests/src/server-helpers/validator.ts new file: packages/tests/src/server-helpers/version.ts new file: packages/tests/src/server-lib/index.ts new file: packages/tests/src/server-lib/video-constant-registry-factory.ts new file: packages/tests/src/shared/actors.ts new file: packages/tests/src/shared/captions.ts new file: packages/tests/src/shared/checks.ts new file: packages/tests/src/shared/client.ts new file: packages/tests/src/shared/common.ts new file: packages/tests/src/shared/directories.ts new file: packages/tests/src/shared/fixture-urls.ts new file: packages/tests/src/shared/generate.ts new file: packages/tests/src/shared/import-export.ts new file: packages/tests/src/shared/live.ts new file: packages/tests/src/shared/mock-servers/index.ts new file: packages/tests/src/shared/mock-servers/mock-429.ts new file: packages/tests/src/shared/mock-servers/mock-email.ts new file: packages/tests/src/shared/mock-servers/mock-http.ts new file: packages/tests/src/shared/mock-servers/mock-instances-index.ts new file: packages/tests/src/shared/mock-servers/mock-joinpeertube-versions.ts new file: packages/tests/src/shared/mock-servers/mock-object-storage.ts new file: packages/tests/src/shared/mock-servers/mock-plugin-blocklist.ts new file: packages/tests/src/shared/mock-servers/mock-proxy.ts new file: packages/tests/src/shared/mock-servers/shared.ts new file: packages/tests/src/shared/notifications.ts new file: packages/tests/src/shared/peertube-runner-process.ts new file: packages/tests/src/shared/plugins.ts new file: packages/tests/src/shared/requests.ts new file: packages/tests/src/shared/sql-command.ts new file: packages/tests/src/shared/streaming-playlists.ts new file: packages/tests/src/shared/tracker.ts new file: packages/tests/src/shared/transcription.ts new file: packages/tests/src/shared/video-playlists.ts new file: packages/tests/src/shared/videos.ts new file: packages/tests/src/shared/views.ts new file: packages/tests/src/shared/webtorrent.ts new file: packages/tests/src/transcription/levenshtein-distance.spec.ts new file: packages/tests/src/transcription/subtitle.spec.ts new file: packages/tests/src/transcription/transcriber-factory.spec.ts new file: packages/tests/src/transcription/transcript/transcript-file-evaluator.spec.ts new file: packages/tests/src/transcription/transcript/transcript-file.spec.ts new file: packages/tests/src/transcription/utils.spec.ts new file: packages/tests/src/transcription/whisper/openai-transcriber.spec.ts new file: packages/tests/src/transcription/whisper/whisper-ctranslate2.spec.ts new file: packages/tests/tsconfig.json new file: packages/transcription-devtools/README.md new file: packages/transcription-devtools/package.json new file: packages/transcription-devtools/requirements.txt new file: packages/transcription-devtools/src/benchmark.ts new file: packages/transcription-devtools/src/index.ts new file: packages/transcription-devtools/src/jiwer-cli.ts new file: packages/transcription-devtools/src/levenshtein.ts new file: packages/transcription-devtools/src/transcript-file-evaluator-interface.ts new file: packages/transcription-devtools/src/transcript-file-evaluator.ts new file: packages/transcription-devtools/src/utils.ts new file: packages/transcription-devtools/tsconfig.json new file: packages/transcription/README.md new file: packages/transcription/package.json new file: packages/transcription/src/abstract-transcriber.ts new file: packages/transcription/src/index.ts new file: packages/transcription/src/subtitle.ts new file: packages/transcription/src/transcriber-factory.ts new file: packages/transcription/src/transcript-file.ts new file: packages/transcription/src/transcription-engine.ts new file: packages/transcription/src/transcription-model.ts new file: packages/transcription/src/transcription-run.ts new file: packages/transcription/src/whisper/engines.ts new file: packages/transcription/src/whisper/index.ts new file: packages/transcription/src/whisper/transcriber/ctranslate2-transcriber.ts new file: packages/transcription/src/whisper/transcriber/index.ts new file: packages/transcription/src/whisper/transcriber/openai-transcriber.ts new file: packages/transcription/src/whisper/whisper-builtin-model.ts new file: packages/transcription/tsconfig.json new file: packages/transcription/tsconfig.types.json new file: packages/types-generator/README.md new file: packages/types-generator/generate-package.ts new file: packages/types-generator/package.json new file: packages/types-generator/rollup.config.js new file: packages/types-generator/src/client/index.ts new file: packages/types-generator/src/client/tsconfig.types.json new file: packages/types-generator/src/index.ts new file: packages/types-generator/tests/test.ts new file: packages/types-generator/tsconfig.dist-tmp.json new file: packages/types-generator/tsconfig.json new file: packages/types-generator/tsconfig.types.json new file: packages/typescript-utils/package.json new file: packages/typescript-utils/src/index.ts new file: packages/typescript-utils/src/types.ts new file: packages/typescript-utils/tsconfig.json new file: packages/typescript-utils/tsconfig.types.json new file: scripts/benchmark.ts new file: scripts/build/client.sh new file: scripts/build/embed.sh new file: scripts/build/index.sh new file: scripts/build/peertube-cli.sh new file: scripts/build/peertube-runner.sh new file: scripts/build/server.sh new file: scripts/build/tests.sh new file: scripts/ci.sh new file: scripts/clean/client/index.sh new file: scripts/clean/server/test.sh new file: scripts/client-build-stats.ts new file: scripts/client-report.sh new file: scripts/dev/client.sh new file: scripts/dev/embed.sh new file: scripts/dev/index.sh new file: scripts/dev/peertube-cli.sh new file: scripts/dev/peertube-runner.sh new file: scripts/dev/server.sh new file: scripts/e2e/browserstack.sh new file: scripts/e2e/local.sh new file: scripts/generate-code-contributors.ts new file: scripts/i18n/create-custom-files.ts new file: scripts/i18n/update.sh new file: scripts/nightly.sh new file: scripts/openapi-clients.sh new file: scripts/openapi-peertube-version.sh new file: scripts/release-embed-api.sh new file: scripts/release.sh new file: scripts/simulate-many-viewers-worker.js new file: scripts/simulate-many-viewers-worker.ts new file: scripts/simulate-many-viewers.ts new file: scripts/test.sh new file: scripts/tsconfig.json new file: scripts/upgrade.sh new file: server/core/assets/default-audio-background.jpg new file: server/core/assets/email-templates/abuse-new-message/html.pug new file: server/core/assets/email-templates/abuse-state-change/html.pug new file: server/core/assets/email-templates/account-abuse-new/html.pug new file: server/core/assets/email-templates/common/base.pug new file: server/core/assets/email-templates/common/greetings.pug new file: server/core/assets/email-templates/common/html.pug new file: server/core/assets/email-templates/common/mixins.pug new file: server/core/assets/email-templates/contact-form/html.pug new file: server/core/assets/email-templates/follower-on-channel/html.pug new file: server/core/assets/email-templates/password-create/html.pug new file: server/core/assets/email-templates/password-reset/html.pug new file: server/core/assets/email-templates/peertube-version-new/html.pug new file: server/core/assets/email-templates/plugin-version-new/html.pug new file: server/core/assets/email-templates/user-export-completed/html.pug new file: server/core/assets/email-templates/user-export-errored/html.pug new file: server/core/assets/email-templates/user-import-completed/html.pug new file: server/core/assets/email-templates/user-import-errored/html.pug new file: server/core/assets/email-templates/user-registered/html.pug new file: server/core/assets/email-templates/user-registration-request-accepted/html.pug new file: server/core/assets/email-templates/user-registration-request-rejected/html.pug new file: server/core/assets/email-templates/user-registration-request/html.pug new file: server/core/assets/email-templates/verify-email/html.pug new file: server/core/assets/email-templates/video-abuse-new/html.pug new file: server/core/assets/email-templates/video-auto-blacklist-new/html.pug new file: server/core/assets/email-templates/video-comment-abuse-new/html.pug new file: server/core/assets/email-templates/video-comment-mention/html.pug new file: server/core/assets/email-templates/video-comment-new/html.pug new file: server/core/controllers/activitypub/client.ts new file: server/core/controllers/activitypub/inbox.ts new file: server/core/controllers/activitypub/index.ts new file: server/core/controllers/activitypub/outbox.ts new file: server/core/controllers/activitypub/utils.ts new file: server/core/controllers/api/abuse.ts new file: server/core/controllers/api/accounts.ts new file: server/core/controllers/api/automatic-tags.ts new file: server/core/controllers/api/blocklist.ts new file: server/core/controllers/api/bulk.ts new file: server/core/controllers/api/config.ts new file: server/core/controllers/api/custom-page.ts new file: server/core/controllers/api/index.ts new file: server/core/controllers/api/jobs.ts new file: server/core/controllers/api/metrics.ts new file: server/core/controllers/api/oauth-clients.ts new file: server/core/controllers/api/overviews.ts new file: server/core/controllers/api/plugins.ts new file: server/core/controllers/api/runners/index.ts new file: server/core/controllers/api/runners/jobs-files.ts new file: server/core/controllers/api/runners/jobs.ts new file: server/core/controllers/api/runners/manage-runners.ts new file: server/core/controllers/api/runners/registration-tokens.ts new file: server/core/controllers/api/search/index.ts new file: server/core/controllers/api/search/search-video-channels.ts new file: server/core/controllers/api/search/search-video-playlists.ts new file: server/core/controllers/api/search/search-videos.ts new file: server/core/controllers/api/search/shared/index.ts new file: server/core/controllers/api/search/shared/utils.ts new file: server/core/controllers/api/server/contact.ts new file: server/core/controllers/api/server/debug.ts new file: server/core/controllers/api/server/follows.ts new file: server/core/controllers/api/server/index.ts new file: server/core/controllers/api/server/logs.ts new file: server/core/controllers/api/server/redundancy.ts new file: server/core/controllers/api/server/server-blocklist.ts new file: server/core/controllers/api/server/stats.ts new file: server/core/controllers/api/users/email-verification.ts new file: server/core/controllers/api/users/index.ts new file: server/core/controllers/api/users/me.ts new file: server/core/controllers/api/users/my-abuses.ts new file: server/core/controllers/api/users/my-blocklist.ts new file: server/core/controllers/api/users/my-history.ts new file: server/core/controllers/api/users/my-notifications.ts new file: server/core/controllers/api/users/my-subscriptions.ts new file: server/core/controllers/api/users/my-video-playlists.ts new file: server/core/controllers/api/users/registrations.ts new file: server/core/controllers/api/users/token.ts new file: server/core/controllers/api/users/two-factor.ts new file: server/core/controllers/api/users/user-exports.ts new file: server/core/controllers/api/users/user-imports.ts new file: server/core/controllers/api/video-channel-sync.ts new file: server/core/controllers/api/video-channel.ts new file: server/core/controllers/api/video-playlist.ts new file: server/core/controllers/api/videos/blacklist.ts new file: server/core/controllers/api/videos/captions.ts new file: server/core/controllers/api/videos/chapters.ts new file: server/core/controllers/api/videos/comment.ts new file: server/core/controllers/api/videos/files.ts new file: server/core/controllers/api/videos/import.ts new file: server/core/controllers/api/videos/index.ts new file: server/core/controllers/api/videos/live.ts new file: server/core/controllers/api/videos/ownership.ts new file: server/core/controllers/api/videos/passwords.ts new file: server/core/controllers/api/videos/rate.ts new file: server/core/controllers/api/videos/source.ts new file: server/core/controllers/api/videos/stats.ts new file: server/core/controllers/api/videos/storyboard.ts new file: server/core/controllers/api/videos/studio.ts new file: server/core/controllers/api/videos/token.ts new file: server/core/controllers/api/videos/transcoding.ts new file: server/core/controllers/api/videos/update.ts new file: server/core/controllers/api/videos/upload.ts new file: server/core/controllers/api/videos/view.ts new file: server/core/controllers/api/watched-words.ts new file: server/core/controllers/client.ts new file: server/core/controllers/download.ts new file: server/core/controllers/feeds/comment-feeds.ts new file: server/core/controllers/feeds/index.ts new file: server/core/controllers/feeds/shared/common-feed-utils.ts new file: server/core/controllers/feeds/shared/index.ts new file: server/core/controllers/feeds/shared/video-feed-utils.ts new file: server/core/controllers/feeds/video-feeds.ts new file: server/core/controllers/feeds/video-podcast-feeds.ts new file: server/core/controllers/index.ts new file: server/core/controllers/lazy-static.ts new file: server/core/controllers/misc.ts new file: server/core/controllers/object-storage-proxy.ts new file: server/core/controllers/plugins.ts new file: server/core/controllers/services.ts new file: server/core/controllers/shared/m3u8-playlist.ts new file: server/core/controllers/sitemap.ts new file: server/core/controllers/static.ts new file: server/core/controllers/tracker.ts new file: server/core/controllers/well-known.ts new file: server/core/helpers/activity-pub-utils.ts new file: server/core/helpers/actors.ts new file: server/core/helpers/audit-logger.ts new file: server/core/helpers/captions-utils.ts new file: server/core/helpers/core-utils.ts new file: server/core/helpers/custom-jsonld-signature.ts new file: server/core/helpers/custom-validators/abuses.ts new file: server/core/helpers/custom-validators/accounts.ts new file: server/core/helpers/custom-validators/activitypub/activity.ts new file: server/core/helpers/custom-validators/activitypub/actor.ts new file: server/core/helpers/custom-validators/activitypub/cache-file.ts new file: server/core/helpers/custom-validators/activitypub/misc.ts new file: server/core/helpers/custom-validators/activitypub/playlist.ts new file: server/core/helpers/custom-validators/activitypub/signature.ts new file: server/core/helpers/custom-validators/activitypub/video-chapters.ts new file: server/core/helpers/custom-validators/activitypub/video-comments.ts new file: server/core/helpers/custom-validators/activitypub/videos.ts new file: server/core/helpers/custom-validators/activitypub/watch-action.ts new file: server/core/helpers/custom-validators/actor-images.ts new file: server/core/helpers/custom-validators/bulk.ts new file: server/core/helpers/custom-validators/feeds.ts new file: server/core/helpers/custom-validators/follows.ts new file: server/core/helpers/custom-validators/jobs.ts new file: server/core/helpers/custom-validators/logs.ts new file: server/core/helpers/custom-validators/metrics.ts new file: server/core/helpers/custom-validators/misc.ts new file: server/core/helpers/custom-validators/plugins.ts new file: server/core/helpers/custom-validators/runners/jobs.ts new file: server/core/helpers/custom-validators/runners/runners.ts new file: server/core/helpers/custom-validators/search.ts new file: server/core/helpers/custom-validators/servers.ts new file: server/core/helpers/custom-validators/user-notifications.ts new file: server/core/helpers/custom-validators/user-registration.ts new file: server/core/helpers/custom-validators/users.ts new file: server/core/helpers/custom-validators/video-blacklist.ts new file: server/core/helpers/custom-validators/video-captions.ts new file: server/core/helpers/custom-validators/video-channel-syncs.ts new file: server/core/helpers/custom-validators/video-channels.ts new file: server/core/helpers/custom-validators/video-chapters.ts new file: server/core/helpers/custom-validators/video-comments.ts new file: server/core/helpers/custom-validators/video-imports.ts new file: server/core/helpers/custom-validators/video-lives.ts new file: server/core/helpers/custom-validators/video-ownership.ts new file: server/core/helpers/custom-validators/video-playlists.ts new file: server/core/helpers/custom-validators/video-rates.ts new file: server/core/helpers/custom-validators/video-redundancies.ts new file: server/core/helpers/custom-validators/video-stats.ts new file: server/core/helpers/custom-validators/video-studio.ts new file: server/core/helpers/custom-validators/video-transcoding.ts new file: server/core/helpers/custom-validators/video-view.ts new file: server/core/helpers/custom-validators/videos.ts new file: server/core/helpers/custom-validators/watched-words.ts new file: server/core/helpers/custom-validators/webfinger.ts new file: server/core/helpers/database-utils.ts new file: server/core/helpers/debounce.ts new file: server/core/helpers/decache.ts new file: server/core/helpers/dns.ts new file: server/core/helpers/express-utils.ts new file: server/core/helpers/ffmpeg/codecs.ts new file: server/core/helpers/ffmpeg/ffmpeg-image.ts new file: server/core/helpers/ffmpeg/ffmpeg-options.ts new file: server/core/helpers/ffmpeg/framerate.ts new file: server/core/helpers/ffmpeg/index.ts new file: server/core/helpers/fs.ts new file: server/core/helpers/geo-ip.ts new file: server/core/helpers/hpagent.ts new file: server/core/helpers/image-utils.ts new file: server/core/helpers/logger.ts new file: server/core/helpers/markdown.ts new file: server/core/helpers/memoize.ts new file: server/core/helpers/mentions.ts new file: server/core/helpers/otp.ts new file: server/core/helpers/peertube-crypto.ts new file: server/core/helpers/peertube-jsonld.ts new file: server/core/helpers/promise-cache.ts new file: server/core/helpers/proxy.ts new file: server/core/helpers/query.ts new file: server/core/helpers/regexp.ts new file: server/core/helpers/requests.ts new file: server/core/helpers/stream-replacer.ts new file: server/core/helpers/threads.ts new file: server/core/helpers/token-generator.ts new file: server/core/helpers/unzip.ts new file: server/core/helpers/upload.ts new file: server/core/helpers/utils.ts new file: server/core/helpers/version.ts new file: server/core/helpers/video.ts new file: server/core/helpers/webtorrent.ts new file: server/core/initializers/checker-after-init.ts new file: server/core/initializers/checker-before-init.ts new file: server/core/initializers/config.ts new file: server/core/initializers/constants.ts new file: server/core/initializers/database.ts new file: server/core/initializers/installer.ts new file: server/core/initializers/migrations/0505-user-last-login-date.ts new file: server/core/initializers/migrations/0510-video-file-metadata.ts new file: server/core/initializers/migrations/0515-video-abuse-reason-timestamps.ts new file: server/core/initializers/migrations/0520-abuses-split.ts new file: server/core/initializers/migrations/0525-abuse-messages.ts new file: server/core/initializers/migrations/0530-playlist-multiple-video.ts new file: server/core/initializers/migrations/0535-video-live.ts new file: server/core/initializers/migrations/0540-video-file-infohash.ts new file: server/core/initializers/migrations/0545-video-live-save-replay.ts new file: server/core/initializers/migrations/0550-actor-follow-cleanup.ts new file: server/core/initializers/migrations/0555-actor-follow-url.ts new file: server/core/initializers/migrations/0560-user-feed-token.ts new file: server/core/initializers/migrations/0565-actor-follow-local-url.ts new file: server/core/initializers/migrations/0570-permanent-live.ts new file: server/core/initializers/migrations/0575-duplicate-thumbnail.ts new file: server/core/initializers/migrations/0580-caption-filename.ts new file: server/core/initializers/migrations/0585-video-file-names.ts new file: server/core/initializers/migrations/0590-trackers.ts new file: server/core/initializers/migrations/0595-remote-url.ts new file: server/core/initializers/migrations/0600-duplicate-video-files.ts new file: server/core/initializers/migrations/0605-actor-missing-keys.ts new file: server/core/initializers/migrations/0610-views-index copy.ts new file: server/core/initializers/migrations/0612-captions-unique.ts new file: server/core/initializers/migrations/0615-latest-versions-notification-settings.ts new file: server/core/initializers/migrations/0620-latest-versions-application.ts new file: server/core/initializers/migrations/0625-latest-versions-notification.ts new file: server/core/initializers/migrations/0630-banner.ts new file: server/core/initializers/migrations/0635-actor-image-size.ts new file: server/core/initializers/migrations/0640-unique-keys.ts new file: server/core/initializers/migrations/0645-actor-remote-creation-date.ts new file: server/core/initializers/migrations/0650-actor-custom-pages.ts new file: server/core/initializers/migrations/0655-streaming-playlist-filenames.ts new file: server/core/initializers/migrations/0660-object-storage.ts new file: server/core/initializers/migrations/0665-no-account-warning-modal.ts new file: server/core/initializers/migrations/0670-pending-job-default.ts new file: server/core/initializers/migrations/0675-p2p-enabled.ts new file: server/core/initializers/migrations/0680-files-storage-default.ts new file: server/core/initializers/migrations/0685-multiple-actor-images.ts new file: server/core/initializers/migrations/0690-live-latency-mode.ts new file: server/core/initializers/migrations/0695-remove-remote-rates.ts new file: server/core/initializers/migrations/0700-edition-finished-notification.ts new file: server/core/initializers/migrations/0705-local-video-viewers.ts new file: server/core/initializers/migrations/0710-live-sessions.ts new file: server/core/initializers/migrations/0715-video-source.ts new file: server/core/initializers/migrations/0720-session-ending-processed.ts new file: server/core/initializers/migrations/0725-node-version.ts new file: server/core/initializers/migrations/0730-video-channel-sync.ts new file: server/core/initializers/migrations/0735-video-channel-sync-import-foreign-key.ts new file: server/core/initializers/migrations/0740-fix-old-enums.ts new file: server/core/initializers/migrations/0745-user-otp.ts new file: server/core/initializers/migrations/0750-user-registration.ts new file: server/core/initializers/migrations/0755-unique-viewer-url.ts new file: server/core/initializers/migrations/0760-video-live-replay-setting.ts new file: server/core/initializers/migrations/0765-remote-transcoding.ts new file: server/core/initializers/migrations/0770-actor-preferred-username.ts new file: server/core/initializers/migrations/0775-add-user-is-email-public.ts new file: server/core/initializers/migrations/0780-notification-registration.ts new file: server/core/initializers/migrations/0785-video-password-protection.ts new file: server/core/initializers/migrations/0790-thumbnail-disk.ts new file: server/core/initializers/migrations/0795-duplicate-runner-name.ts new file: server/core/initializers/migrations/0800-video-replace-file.ts new file: server/core/initializers/migrations/0805-viewer-subdivision.ts new file: server/core/initializers/migrations/0810-user-export.ts new file: server/core/initializers/migrations/0815-user-import.ts new file: server/core/initializers/migrations/0820-abuse-registration-stats.ts new file: server/core/initializers/migrations/0825-video-ratio.ts new file: server/core/initializers/migrations/0830-keep-original-file.ts new file: server/core/initializers/migrations/0835-video-source-size.ts new file: server/core/initializers/migrations/0840-user-export-size.ts new file: server/core/initializers/migrations/0845-auto-tags.ts new file: server/core/initializers/migrations/0850-streaming-playlist-sha-nullable.ts new file: server/core/initializers/migrations/0855-transcription.ts new file: server/core/initializers/migrations/0860-caption-generated.ts new file: server/core/initializers/migrations/0865-video-file-streams.ts new file: server/core/initializers/migrator.ts new file: server/core/lib/activitypub/activity.ts new file: server/core/lib/activitypub/actors/get.ts new file: server/core/lib/activitypub/actors/image.ts new file: server/core/lib/activitypub/actors/index.ts new file: server/core/lib/activitypub/actors/keys.ts new file: server/core/lib/activitypub/actors/refresh.ts new file: server/core/lib/activitypub/actors/shared/creator.ts new file: server/core/lib/activitypub/actors/shared/index.ts new file: server/core/lib/activitypub/actors/shared/object-to-model-attributes.ts new file: server/core/lib/activitypub/actors/shared/url-to-object.ts new file: server/core/lib/activitypub/actors/updater.ts new file: server/core/lib/activitypub/actors/webfinger.ts new file: server/core/lib/activitypub/audience.ts new file: server/core/lib/activitypub/cache-file.ts new file: server/core/lib/activitypub/collection.ts new file: server/core/lib/activitypub/context.ts new file: server/core/lib/activitypub/crawl.ts new file: server/core/lib/activitypub/follow.ts new file: server/core/lib/activitypub/inbox-manager.ts new file: server/core/lib/activitypub/local-video-viewer.ts new file: server/core/lib/activitypub/outbox.ts new file: server/core/lib/activitypub/playlists/create-update.ts new file: server/core/lib/activitypub/playlists/get.ts new file: server/core/lib/activitypub/playlists/index.ts new file: server/core/lib/activitypub/playlists/refresh.ts new file: server/core/lib/activitypub/playlists/shared/index.ts new file: server/core/lib/activitypub/playlists/shared/object-to-model-attributes.ts new file: server/core/lib/activitypub/playlists/shared/url-to-object.ts new file: server/core/lib/activitypub/process/index.ts new file: server/core/lib/activitypub/process/process-accept.ts new file: server/core/lib/activitypub/process/process-announce.ts new file: server/core/lib/activitypub/process/process-create.ts new file: server/core/lib/activitypub/process/process-delete.ts new file: server/core/lib/activitypub/process/process-dislike.ts new file: server/core/lib/activitypub/process/process-flag.ts new file: server/core/lib/activitypub/process/process-follow.ts new file: server/core/lib/activitypub/process/process-like.ts new file: server/core/lib/activitypub/process/process-reject.ts new file: server/core/lib/activitypub/process/process-reply-approval.ts new file: server/core/lib/activitypub/process/process-undo.ts new file: server/core/lib/activitypub/process/process-update.ts new file: server/core/lib/activitypub/process/process-view.ts new file: server/core/lib/activitypub/process/process.ts new file: server/core/lib/activitypub/send/http.ts new file: server/core/lib/activitypub/send/index.ts new file: server/core/lib/activitypub/send/send-accept.ts new file: server/core/lib/activitypub/send/send-announce.ts new file: server/core/lib/activitypub/send/send-create.ts new file: server/core/lib/activitypub/send/send-delete.ts new file: server/core/lib/activitypub/send/send-dislike.ts new file: server/core/lib/activitypub/send/send-flag.ts new file: server/core/lib/activitypub/send/send-follow.ts new file: server/core/lib/activitypub/send/send-like.ts new file: server/core/lib/activitypub/send/send-reject.ts new file: server/core/lib/activitypub/send/send-reply-approval.ts new file: server/core/lib/activitypub/send/send-undo.ts new file: server/core/lib/activitypub/send/send-update.ts new file: server/core/lib/activitypub/send/send-view.ts new file: server/core/lib/activitypub/send/shared/audience-utils.ts new file: server/core/lib/activitypub/send/shared/index.ts new file: server/core/lib/activitypub/send/shared/send-utils.ts new file: server/core/lib/activitypub/share.ts new file: server/core/lib/activitypub/url.ts new file: server/core/lib/activitypub/video-chapters.ts new file: server/core/lib/activitypub/video-comments.ts new file: server/core/lib/activitypub/video-rates.ts new file: server/core/lib/activitypub/videos/federate.ts new file: server/core/lib/activitypub/videos/get.ts new file: server/core/lib/activitypub/videos/index.ts new file: server/core/lib/activitypub/videos/refresh.ts new file: server/core/lib/activitypub/videos/shared/abstract-builder.ts new file: server/core/lib/activitypub/videos/shared/creator.ts new file: server/core/lib/activitypub/videos/shared/index.ts new file: server/core/lib/activitypub/videos/shared/object-to-model-attributes.ts new file: server/core/lib/activitypub/videos/shared/trackers.ts new file: server/core/lib/activitypub/videos/shared/url-to-object.ts new file: server/core/lib/activitypub/videos/shared/video-sync-attributes.ts new file: server/core/lib/activitypub/videos/updater.ts new file: server/core/lib/actor-follow-health-cache.ts new file: server/core/lib/auth/external-auth.ts new file: server/core/lib/auth/oauth-model.ts new file: server/core/lib/auth/oauth.ts new file: server/core/lib/auth/tokens-cache.ts new file: server/core/lib/automatic-tags/automatic-tagger.ts new file: server/core/lib/automatic-tags/automatic-tags.ts new file: server/core/lib/blocklist.ts new file: server/core/lib/emailer.ts new file: server/core/lib/files-cache/avatar-permanent-file-cache.ts new file: server/core/lib/files-cache/index.ts new file: server/core/lib/files-cache/shared/abstract-permanent-file-cache.ts new file: server/core/lib/files-cache/shared/abstract-simple-file-cache.ts new file: server/core/lib/files-cache/shared/index.ts new file: server/core/lib/files-cache/video-captions-simple-file-cache.ts new file: server/core/lib/files-cache/video-miniature-permanent-file-cache.ts new file: server/core/lib/files-cache/video-previews-simple-file-cache.ts new file: server/core/lib/files-cache/video-storyboards-simple-file-cache.ts new file: server/core/lib/files-cache/video-torrents-simple-file-cache.ts new file: server/core/lib/hls.ts new file: server/core/lib/html/client-html.ts new file: server/core/lib/html/shared/actor-html.ts new file: server/core/lib/html/shared/common-embed-html.ts new file: server/core/lib/html/shared/index.ts new file: server/core/lib/html/shared/page-html.ts new file: server/core/lib/html/shared/playlist-html.ts new file: server/core/lib/html/shared/tags-html.ts new file: server/core/lib/html/shared/video-html.ts new file: server/core/lib/internal-event-emitter.ts new file: server/core/lib/job-queue/handlers/activitypub-cleaner.ts new file: server/core/lib/job-queue/handlers/activitypub-follow.ts new file: server/core/lib/job-queue/handlers/activitypub-http-broadcast.ts new file: server/core/lib/job-queue/handlers/activitypub-http-fetcher.ts new file: server/core/lib/job-queue/handlers/activitypub-http-unicast.ts new file: server/core/lib/job-queue/handlers/activitypub-refresher.ts new file: server/core/lib/job-queue/handlers/actor-keys.ts new file: server/core/lib/job-queue/handlers/after-video-channel-import.ts new file: server/core/lib/job-queue/handlers/create-user-export.ts new file: server/core/lib/job-queue/handlers/email.ts new file: server/core/lib/job-queue/handlers/federate-video.ts new file: server/core/lib/job-queue/handlers/generate-storyboard.ts new file: server/core/lib/job-queue/handlers/import-user-archive.ts new file: server/core/lib/job-queue/handlers/manage-video-torrent.ts new file: server/core/lib/job-queue/handlers/move-to-file-system.ts new file: server/core/lib/job-queue/handlers/move-to-object-storage.ts new file: server/core/lib/job-queue/handlers/notify.ts new file: server/core/lib/job-queue/handlers/shared/move-video.ts new file: server/core/lib/job-queue/handlers/transcoding-job-builder.ts new file: server/core/lib/job-queue/handlers/video-channel-import.ts new file: server/core/lib/job-queue/handlers/video-file-import.ts new file: server/core/lib/job-queue/handlers/video-import.ts new file: server/core/lib/job-queue/handlers/video-live-ending.ts new file: server/core/lib/job-queue/handlers/video-redundancy.ts new file: server/core/lib/job-queue/handlers/video-studio-edition.ts new file: server/core/lib/job-queue/handlers/video-transcoding.ts new file: server/core/lib/job-queue/handlers/video-transcription.ts new file: server/core/lib/job-queue/handlers/video-views-stats.ts new file: server/core/lib/job-queue/index.ts new file: server/core/lib/job-queue/job-queue.ts new file: server/core/lib/live/index.ts new file: server/core/lib/live/live-manager.ts new file: server/core/lib/live/live-quota-store.ts new file: server/core/lib/live/live-segment-sha-store.ts new file: server/core/lib/live/live-utils.ts new file: server/core/lib/live/shared/index.ts new file: server/core/lib/live/shared/muxing-session.ts new file: server/core/lib/live/shared/transcoding-wrapper/abstract-transcoding-wrapper.ts new file: server/core/lib/live/shared/transcoding-wrapper/ffmpeg-transcoding-wrapper.ts new file: server/core/lib/live/shared/transcoding-wrapper/index.ts new file: server/core/lib/live/shared/transcoding-wrapper/remote-transcoding-wrapper.ts new file: server/core/lib/local-actor.ts new file: server/core/lib/local-video-creator.ts new file: server/core/lib/model-loaders/actor.ts new file: server/core/lib/model-loaders/index.ts new file: server/core/lib/model-loaders/video.ts new file: server/core/lib/moderation.ts new file: server/core/lib/notifier/index.ts new file: server/core/lib/notifier/notifier.ts new file: server/core/lib/notifier/shared/abuse/abstract-new-abuse-message.ts new file: server/core/lib/notifier/shared/abuse/abuse-state-change-for-reporter.ts new file: server/core/lib/notifier/shared/abuse/index.ts new file: server/core/lib/notifier/shared/abuse/new-abuse-for-moderators.ts new file: server/core/lib/notifier/shared/abuse/new-abuse-message-for-moderators.ts new file: server/core/lib/notifier/shared/abuse/new-abuse-message-for-reporter.ts new file: server/core/lib/notifier/shared/blacklist/index.ts new file: server/core/lib/notifier/shared/blacklist/new-auto-blacklist-for-moderators.ts new file: server/core/lib/notifier/shared/blacklist/new-blacklist-for-owner.ts new file: server/core/lib/notifier/shared/blacklist/unblacklist-for-owner.ts new file: server/core/lib/notifier/shared/caption/index.ts new file: server/core/lib/notifier/shared/caption/video-transcription-generated-for-owner.ts new file: server/core/lib/notifier/shared/comment/comment-mention.ts new file: server/core/lib/notifier/shared/comment/index.ts new file: server/core/lib/notifier/shared/comment/new-comment-for-video-owner.ts new file: server/core/lib/notifier/shared/common/abstract-notification.ts new file: server/core/lib/notifier/shared/common/index.ts new file: server/core/lib/notifier/shared/follow/auto-follow-for-instance.ts new file: server/core/lib/notifier/shared/follow/follow-for-instance.ts new file: server/core/lib/notifier/shared/follow/follow-for-user.ts new file: server/core/lib/notifier/shared/follow/index.ts new file: server/core/lib/notifier/shared/index.ts new file: server/core/lib/notifier/shared/instance/direct-registration-for-moderators.ts new file: server/core/lib/notifier/shared/instance/index.ts new file: server/core/lib/notifier/shared/instance/new-peertube-version-for-admins.ts new file: server/core/lib/notifier/shared/instance/new-plugin-version-for-admins.ts new file: server/core/lib/notifier/shared/instance/registration-request-for-moderators.ts new file: server/core/lib/notifier/shared/video-publication/abstract-owned-video-publication.ts new file: server/core/lib/notifier/shared/video-publication/import-finished-for-owner.ts new file: server/core/lib/notifier/shared/video-publication/index.ts new file: server/core/lib/notifier/shared/video-publication/new-video-or-live-for-subscribers.ts new file: server/core/lib/notifier/shared/video-publication/owned-publication-after-auto-unblacklist.ts new file: server/core/lib/notifier/shared/video-publication/owned-publication-after-schedule-update.ts new file: server/core/lib/notifier/shared/video-publication/owned-publication-after-transcoding.ts new file: server/core/lib/notifier/shared/video-publication/studio-edition-finished-for-owner.ts new file: server/core/lib/object-storage/index.ts new file: server/core/lib/object-storage/keys.ts new file: server/core/lib/object-storage/object-storage-helpers.ts new file: server/core/lib/object-storage/pre-signed-urls.ts new file: server/core/lib/object-storage/proxy.ts new file: server/core/lib/object-storage/shared/client.ts new file: server/core/lib/object-storage/shared/index.ts new file: server/core/lib/object-storage/shared/logger.ts new file: server/core/lib/object-storage/urls.ts new file: server/core/lib/object-storage/user-export.ts new file: server/core/lib/object-storage/videos.ts new file: server/core/lib/opentelemetry/metric-helpers/bittorrent-tracker-observers-builder.ts new file: server/core/lib/opentelemetry/metric-helpers/index.ts new file: server/core/lib/opentelemetry/metric-helpers/job-queue-observers-builder.ts new file: server/core/lib/opentelemetry/metric-helpers/lives-observers-builder.ts new file: server/core/lib/opentelemetry/metric-helpers/nodejs-observers-builder.ts new file: server/core/lib/opentelemetry/metric-helpers/playback-metrics.ts new file: server/core/lib/opentelemetry/metric-helpers/stats-observers-builder.ts new file: server/core/lib/opentelemetry/metric-helpers/viewers-observers-builder.ts new file: server/core/lib/opentelemetry/metric-helpers/worker-threads-observers.ts new file: server/core/lib/opentelemetry/metrics.ts new file: server/core/lib/opentelemetry/tracing.ts new file: server/core/lib/paths.ts new file: server/core/lib/peertube-socket.ts new file: server/core/lib/plugins/hooks.ts new file: server/core/lib/plugins/plugin-helpers-builder.ts new file: server/core/lib/plugins/plugin-index.ts new file: server/core/lib/plugins/plugin-manager.ts new file: server/core/lib/plugins/register-helpers.ts new file: server/core/lib/plugins/theme-utils.ts new file: server/core/lib/plugins/video-constant-manager-factory.ts new file: server/core/lib/plugins/yarn.ts new file: server/core/lib/rate.ts new file: server/core/lib/redis.ts new file: server/core/lib/redundancy.ts new file: server/core/lib/runners/index.ts new file: server/core/lib/runners/job-handlers/abstract-job-handler.ts new file: server/core/lib/runners/job-handlers/abstract-vod-transcoding-job-handler.ts new file: server/core/lib/runners/job-handlers/index.ts new file: server/core/lib/runners/job-handlers/live-rtmp-hls-transcoding-job-handler.ts new file: server/core/lib/runners/job-handlers/runner-job-handlers.ts new file: server/core/lib/runners/job-handlers/shared/utils.ts new file: server/core/lib/runners/job-handlers/transcription-job-handler.ts new file: server/core/lib/runners/job-handlers/video-studio-transcoding-job-handler.ts new file: server/core/lib/runners/job-handlers/vod-audio-merge-transcoding-job-handler.ts new file: server/core/lib/runners/job-handlers/vod-hls-transcoding-job-handler.ts new file: server/core/lib/runners/job-handlers/vod-web-video-transcoding-job-handler.ts new file: server/core/lib/runners/runner-urls.ts new file: server/core/lib/runners/runner.ts new file: server/core/lib/schedulers/abstract-scheduler.ts new file: server/core/lib/schedulers/actor-follow-scheduler.ts new file: server/core/lib/schedulers/auto-follow-index-instances.ts new file: server/core/lib/schedulers/geo-ip-update-scheduler.ts new file: server/core/lib/schedulers/peertube-version-check-scheduler.ts new file: server/core/lib/schedulers/plugins-check-scheduler.ts new file: server/core/lib/schedulers/remove-dangling-resumable-uploads-scheduler.ts new file: server/core/lib/schedulers/remove-expired-user-exports-scheduler.ts new file: server/core/lib/schedulers/remove-old-history-scheduler.ts new file: server/core/lib/schedulers/remove-old-views-scheduler.ts new file: server/core/lib/schedulers/runner-job-watch-dog-scheduler.ts new file: server/core/lib/schedulers/update-videos-scheduler.ts new file: server/core/lib/schedulers/video-channel-sync-latest-scheduler.ts new file: server/core/lib/schedulers/video-views-buffer-scheduler.ts new file: server/core/lib/schedulers/videos-redundancy-scheduler.ts new file: server/core/lib/schedulers/youtube-dl-update-scheduler.ts new file: server/core/lib/search.ts new file: server/core/lib/server-config-manager.ts new file: server/core/lib/signup.ts new file: server/core/lib/stat-manager.ts new file: server/core/lib/sync-channel.ts new file: server/core/lib/thumbnail.ts new file: server/core/lib/timeserie.ts new file: server/core/lib/transcoding/create-transcoding-job.ts new file: server/core/lib/transcoding/default-transcoding-profiles.ts new file: server/core/lib/transcoding/ended-transcoding.ts new file: server/core/lib/transcoding/hls-transcoding.ts new file: server/core/lib/transcoding/shared/ffmpeg-builder.ts new file: server/core/lib/transcoding/shared/index.ts new file: server/core/lib/transcoding/shared/job-builders/abstract-job-builder.ts new file: server/core/lib/transcoding/shared/job-builders/index.ts new file: server/core/lib/transcoding/shared/job-builders/transcoding-job-queue-builder.ts new file: server/core/lib/transcoding/shared/job-builders/transcoding-runner-job-builder.ts new file: server/core/lib/transcoding/transcoding-priority.ts new file: server/core/lib/transcoding/transcoding-quick-transcode.ts new file: server/core/lib/transcoding/transcoding-resolutions.ts new file: server/core/lib/transcoding/web-transcoding.ts new file: server/core/lib/uploadx.ts new file: server/core/lib/user-import-export/exporters/abstract-user-exporter.ts new file: server/core/lib/user-import-export/exporters/account-exporter.ts new file: server/core/lib/user-import-export/exporters/actor-exporter.ts new file: server/core/lib/user-import-export/exporters/auto-tag-policies.ts new file: server/core/lib/user-import-export/exporters/blocklist-exporter.ts new file: server/core/lib/user-import-export/exporters/channels-exporter.ts new file: server/core/lib/user-import-export/exporters/comments-exporter.ts new file: server/core/lib/user-import-export/exporters/dislikes-exporter.ts new file: server/core/lib/user-import-export/exporters/followers-exporter.ts new file: server/core/lib/user-import-export/exporters/following-exporter.ts new file: server/core/lib/user-import-export/exporters/index.ts new file: server/core/lib/user-import-export/exporters/likes-exporter.ts new file: server/core/lib/user-import-export/exporters/user-settings-exporter.ts new file: server/core/lib/user-import-export/exporters/user-video-history-exporter.ts new file: server/core/lib/user-import-export/exporters/video-playlists-exporter.ts new file: server/core/lib/user-import-export/exporters/videos-exporter.ts new file: server/core/lib/user-import-export/exporters/watched-words-lists-exporter.ts new file: server/core/lib/user-import-export/importers/abstract-rates-importer.ts new file: server/core/lib/user-import-export/importers/abstract-user-importer.ts new file: server/core/lib/user-import-export/importers/account-blocklist-importer.ts new file: server/core/lib/user-import-export/importers/account-importer.ts new file: server/core/lib/user-import-export/importers/channels-importer.ts new file: server/core/lib/user-import-export/importers/dislikes-importer.ts new file: server/core/lib/user-import-export/importers/following-importer.ts new file: server/core/lib/user-import-export/importers/index.ts new file: server/core/lib/user-import-export/importers/likes-importer.ts new file: server/core/lib/user-import-export/importers/review-comments-tag-policies-importer.ts new file: server/core/lib/user-import-export/importers/user-settings-importer.ts new file: server/core/lib/user-import-export/importers/user-video-history-importer.ts new file: server/core/lib/user-import-export/importers/video-playlists-importer.ts new file: server/core/lib/user-import-export/importers/videos-importer.ts new file: server/core/lib/user-import-export/importers/watched-words-lists-importer.ts new file: server/core/lib/user-import-export/user-exporter.ts new file: server/core/lib/user-import-export/user-importer.ts new file: server/core/lib/user.ts new file: server/core/lib/video-blacklist.ts new file: server/core/lib/video-captions.ts new file: server/core/lib/video-channel.ts new file: server/core/lib/video-chapters.ts new file: server/core/lib/video-comment.ts new file: server/core/lib/video-file.ts new file: server/core/lib/video-jobs.ts new file: server/core/lib/video-path-manager.ts new file: server/core/lib/video-playlist.ts new file: server/core/lib/video-pre-import.ts new file: server/core/lib/video-privacy.ts new file: server/core/lib/video-state.ts new file: server/core/lib/video-studio.ts new file: server/core/lib/video-tokens-manager.ts new file: server/core/lib/video-urls.ts new file: server/core/lib/video.ts new file: server/core/lib/views/shared/index.ts new file: server/core/lib/views/shared/video-viewer-counters.ts new file: server/core/lib/views/shared/video-viewer-stats.ts new file: server/core/lib/views/shared/video-views.ts new file: server/core/lib/views/video-views-manager.ts new file: server/core/lib/worker/parent-process.ts new file: server/core/lib/worker/workers/build-digest.ts new file: server/core/lib/worker/workers/get-image-size.ts new file: server/core/lib/worker/workers/http-broadcast.ts new file: server/core/lib/worker/workers/http-unicast.ts new file: server/core/lib/worker/workers/image-downloader.ts new file: server/core/lib/worker/workers/image-processor.ts new file: server/core/lib/worker/workers/sign-json-ld-object.ts new file: server/core/middlewares/activitypub.ts new file: server/core/middlewares/async.ts new file: server/core/middlewares/auth.ts new file: server/core/middlewares/cache/cache.ts new file: server/core/middlewares/cache/index.ts new file: server/core/middlewares/cache/shared/api-cache.ts new file: server/core/middlewares/cache/shared/index.ts new file: server/core/middlewares/csp.ts new file: server/core/middlewares/dnt.ts new file: server/core/middlewares/doc.ts new file: server/core/middlewares/error.ts new file: server/core/middlewares/express.ts new file: server/core/middlewares/index.ts new file: server/core/middlewares/pagination.ts new file: server/core/middlewares/rate-limiter.ts new file: server/core/middlewares/servers.ts new file: server/core/middlewares/sort.ts new file: server/core/middlewares/user-right.ts new file: server/core/middlewares/validators/abuse.ts new file: server/core/middlewares/validators/account.ts new file: server/core/middlewares/validators/activitypub/activity.ts new file: server/core/middlewares/validators/activitypub/index.ts new file: server/core/middlewares/validators/activitypub/pagination.ts new file: server/core/middlewares/validators/activitypub/signature.ts new file: server/core/middlewares/validators/actor-image.ts new file: server/core/middlewares/validators/automatic-tags.ts new file: server/core/middlewares/validators/blocklist.ts new file: server/core/middlewares/validators/bulk.ts new file: server/core/middlewares/validators/config.ts new file: server/core/middlewares/validators/express.ts new file: server/core/middlewares/validators/feeds.ts new file: server/core/middlewares/validators/follows.ts new file: server/core/middlewares/validators/index.ts new file: server/core/middlewares/validators/jobs.ts new file: server/core/middlewares/validators/logs.ts new file: server/core/middlewares/validators/metrics.ts new file: server/core/middlewares/validators/object-storage-proxy.ts new file: server/core/middlewares/validators/oembed.ts new file: server/core/middlewares/validators/pagination.ts new file: server/core/middlewares/validators/plugins.ts new file: server/core/middlewares/validators/redundancy.ts new file: server/core/middlewares/validators/resumable-upload.ts new file: server/core/middlewares/validators/runners/index.ts new file: server/core/middlewares/validators/runners/job-files.ts new file: server/core/middlewares/validators/runners/jobs.ts new file: server/core/middlewares/validators/runners/registration-token.ts new file: server/core/middlewares/validators/runners/runners.ts new file: server/core/middlewares/validators/search.ts new file: server/core/middlewares/validators/server.ts new file: server/core/middlewares/validators/shared/abuses.ts new file: server/core/middlewares/validators/shared/accounts.ts new file: server/core/middlewares/validators/shared/index.ts new file: server/core/middlewares/validators/shared/users.ts new file: server/core/middlewares/validators/shared/utils.ts new file: server/core/middlewares/validators/shared/video-blacklists.ts new file: server/core/middlewares/validators/shared/video-captions.ts new file: server/core/middlewares/validators/shared/video-channel-syncs.ts new file: server/core/middlewares/validators/shared/video-channels.ts new file: server/core/middlewares/validators/shared/video-comments.ts new file: server/core/middlewares/validators/shared/video-imports.ts new file: server/core/middlewares/validators/shared/video-ownerships.ts new file: server/core/middlewares/validators/shared/video-passwords.ts new file: server/core/middlewares/validators/shared/video-playlists.ts new file: server/core/middlewares/validators/shared/videos.ts new file: server/core/middlewares/validators/sort.ts new file: server/core/middlewares/validators/static.ts new file: server/core/middlewares/validators/themes.ts new file: server/core/middlewares/validators/two-factor.ts new file: server/core/middlewares/validators/users/index.ts new file: server/core/middlewares/validators/users/shared/index.ts new file: server/core/middlewares/validators/users/shared/user-registrations.ts new file: server/core/middlewares/validators/users/user-email-verification.ts new file: server/core/middlewares/validators/users/user-exports.ts new file: server/core/middlewares/validators/users/user-history.ts new file: server/core/middlewares/validators/users/user-import.ts new file: server/core/middlewares/validators/users/user-notifications.ts new file: server/core/middlewares/validators/users/user-registrations.ts new file: server/core/middlewares/validators/users/user-subscriptions.ts new file: server/core/middlewares/validators/users/users.ts new file: server/core/middlewares/validators/videos/index.ts new file: server/core/middlewares/validators/videos/shared/index.ts new file: server/core/middlewares/validators/videos/shared/upload.ts new file: server/core/middlewares/validators/videos/shared/video-validators.ts new file: server/core/middlewares/validators/videos/video-blacklist.ts new file: server/core/middlewares/validators/videos/video-captions.ts new file: server/core/middlewares/validators/videos/video-channel-sync.ts new file: server/core/middlewares/validators/videos/video-channels.ts new file: server/core/middlewares/validators/videos/video-chapters.ts new file: server/core/middlewares/validators/videos/video-comments.ts new file: server/core/middlewares/validators/videos/video-files.ts new file: server/core/middlewares/validators/videos/video-imports.ts new file: server/core/middlewares/validators/videos/video-live.ts new file: server/core/middlewares/validators/videos/video-ownership-changes.ts new file: server/core/middlewares/validators/videos/video-passwords.ts new file: server/core/middlewares/validators/videos/video-playlists.ts new file: server/core/middlewares/validators/videos/video-rates.ts new file: server/core/middlewares/validators/videos/video-shares.ts new file: server/core/middlewares/validators/videos/video-source.ts new file: server/core/middlewares/validators/videos/video-stats.ts new file: server/core/middlewares/validators/videos/video-studio.ts new file: server/core/middlewares/validators/videos/video-token.ts new file: server/core/middlewares/validators/videos/video-transcoding.ts new file: server/core/middlewares/validators/videos/video-view.ts new file: server/core/middlewares/validators/videos/videos.ts new file: server/core/middlewares/validators/watched-words.ts new file: server/core/middlewares/validators/webfinger.ts new file: server/core/models/abuse/abuse-message.ts new file: server/core/models/abuse/abuse.ts new file: server/core/models/abuse/sql/abuse-query-builder.ts new file: server/core/models/abuse/video-abuse.ts new file: server/core/models/abuse/video-comment-abuse.ts new file: server/core/models/account/account-blocklist.ts new file: server/core/models/account/account-video-rate.ts new file: server/core/models/account/account.ts new file: server/core/models/account/actor-custom-page.ts new file: server/core/models/actor/actor-follow.ts new file: server/core/models/actor/actor-image.ts new file: server/core/models/actor/actor.ts new file: server/core/models/actor/sql/instance-list-followers-query-builder.ts new file: server/core/models/actor/sql/instance-list-following-query-builder.ts new file: server/core/models/actor/sql/shared/actor-follow-table-attributes.ts new file: server/core/models/actor/sql/shared/instance-list-follows-query-builder.ts new file: server/core/models/application/application.ts new file: server/core/models/automatic-tag/account-automatic-tag-policy.ts new file: server/core/models/automatic-tag/automatic-tag.ts new file: server/core/models/automatic-tag/comment-automatic-tag.ts new file: server/core/models/automatic-tag/video-automatic-tag.ts new file: server/core/models/oauth/oauth-client.ts new file: server/core/models/oauth/oauth-token.ts new file: server/core/models/redundancy/video-redundancy.ts new file: server/core/models/runner/runner-job.ts new file: server/core/models/runner/runner-registration-token.ts new file: server/core/models/runner/runner.ts new file: server/core/models/server/plugin.ts new file: server/core/models/server/server-blocklist.ts new file: server/core/models/server/server.ts new file: server/core/models/server/tracker.ts new file: server/core/models/server/video-tracker.ts new file: server/core/models/shared/abstract-run-query.ts new file: server/core/models/shared/index.ts new file: server/core/models/shared/model-builder.ts new file: server/core/models/shared/model-cache.ts new file: server/core/models/shared/query.ts new file: server/core/models/shared/sequelize-helpers.ts new file: server/core/models/shared/sequelize-type.ts new file: server/core/models/shared/sort.ts new file: server/core/models/shared/sql.ts new file: server/core/models/shared/update.ts new file: server/core/models/user/sql/user-notitication-list-query-builder.ts new file: server/core/models/user/user-export.ts new file: server/core/models/user/user-import.ts new file: server/core/models/user/user-notification-setting.ts new file: server/core/models/user/user-notification.ts new file: server/core/models/user/user-registration.ts new file: server/core/models/user/user-video-history.ts new file: server/core/models/user/user.ts new file: server/core/models/video/formatter/index.ts new file: server/core/models/video/formatter/shared/index.ts new file: server/core/models/video/formatter/shared/video-format-utils.ts new file: server/core/models/video/formatter/video-activity-pub-format.ts new file: server/core/models/video/formatter/video-api-format.ts new file: server/core/models/video/schedule-video-update.ts new file: server/core/models/video/sql/comment/video-comment-list-query-builder.ts new file: server/core/models/video/sql/comment/video-comment-table-attributes.ts new file: server/core/models/video/sql/video/index.ts new file: server/core/models/video/sql/video/shared/abstract-video-query-builder.ts new file: server/core/models/video/sql/video/shared/video-file-query-builder.ts new file: server/core/models/video/sql/video/shared/video-model-builder.ts new file: server/core/models/video/sql/video/shared/video-table-attributes.ts new file: server/core/models/video/sql/video/video-model-get-query-builder.ts new file: server/core/models/video/sql/video/videos-id-list-query-builder.ts new file: server/core/models/video/sql/video/videos-model-list-query-builder.ts new file: server/core/models/video/storyboard.ts new file: server/core/models/video/tag.ts new file: server/core/models/video/thumbnail.ts new file: server/core/models/video/video-blacklist.ts new file: server/core/models/video/video-caption.ts new file: server/core/models/video/video-change-ownership.ts new file: server/core/models/video/video-channel-sync.ts new file: server/core/models/video/video-channel.ts new file: server/core/models/video/video-chapter.ts new file: server/core/models/video/video-comment.ts new file: server/core/models/video/video-file.ts new file: server/core/models/video/video-import.ts new file: server/core/models/video/video-job-info.ts new file: server/core/models/video/video-live-replay-setting.ts new file: server/core/models/video/video-live-session.ts new file: server/core/models/video/video-live.ts new file: server/core/models/video/video-password.ts new file: server/core/models/video/video-playlist-element.ts new file: server/core/models/video/video-playlist.ts new file: server/core/models/video/video-share.ts new file: server/core/models/video/video-source.ts new file: server/core/models/video/video-streaming-playlist.ts new file: server/core/models/video/video-tag.ts new file: server/core/models/video/video.ts new file: server/core/models/view/local-video-viewer-watch-section.ts new file: server/core/models/view/local-video-viewer.ts new file: server/core/models/view/video-view.ts new file: server/core/models/watched-words/watched-words-list.ts new file: server/core/static/dnt-policy/dnt-policy-1.0.txt new file: server/core/types/activitypub-processor.model.ts new file: server/core/types/express-handler.ts new file: server/core/types/express.d.ts new file: server/core/types/index.ts new file: server/core/types/lib.d.ts new file: server/core/types/models/abuse/abuse-message.ts new file: server/core/types/models/abuse/abuse.ts new file: server/core/types/models/abuse/index.ts new file: server/core/types/models/account/account-blocklist.ts new file: server/core/types/models/account/account.ts new file: server/core/types/models/account/actor-custom-page.ts new file: server/core/types/models/account/index.ts new file: server/core/types/models/actor/actor-follow.ts new file: server/core/types/models/actor/actor-image.ts new file: server/core/types/models/actor/actor.ts new file: server/core/types/models/actor/index.ts new file: server/core/types/models/application/application.ts new file: server/core/types/models/application/index.ts new file: server/core/types/models/automatic-tag/account-automatic-tag-policy.ts new file: server/core/types/models/automatic-tag/automatic-tag.ts new file: server/core/types/models/automatic-tag/comment-automatic-tag.ts new file: server/core/types/models/automatic-tag/index.ts new file: server/core/types/models/automatic-tag/video-automatic-tag.ts new file: server/core/types/models/index.ts new file: server/core/types/models/oauth/index.ts new file: server/core/types/models/oauth/oauth-client.ts new file: server/core/types/models/oauth/oauth-token.ts new file: server/core/types/models/runners/index.ts new file: server/core/types/models/runners/runner-job.ts new file: server/core/types/models/runners/runner-registration-token.ts new file: server/core/types/models/runners/runner.ts new file: server/core/types/models/server/index.ts new file: server/core/types/models/server/plugin.ts new file: server/core/types/models/server/server-blocklist.ts new file: server/core/types/models/server/server.ts new file: server/core/types/models/server/tracker.ts new file: server/core/types/models/user/index.ts new file: server/core/types/models/user/user-export.ts new file: server/core/types/models/user/user-import.ts new file: server/core/types/models/user/user-notification-setting.ts new file: server/core/types/models/user/user-notification.ts new file: server/core/types/models/user/user-registration.ts new file: server/core/types/models/user/user-video-history.ts new file: server/core/types/models/user/user.ts new file: server/core/types/models/video/index.ts new file: server/core/types/models/video/local-video-viewer-watch-section.ts new file: server/core/types/models/video/local-video-viewer.ts new file: server/core/types/models/video/schedule-video-update.ts new file: server/core/types/models/video/storyboard.ts new file: server/core/types/models/video/tag.ts new file: server/core/types/models/video/thumbnail.ts new file: server/core/types/models/video/video-blacklist.ts new file: server/core/types/models/video/video-caption.ts new file: server/core/types/models/video/video-change-ownership.ts new file: server/core/types/models/video/video-channel-sync.ts new file: server/core/types/models/video/video-channel.ts new file: server/core/types/models/video/video-chapter.ts new file: server/core/types/models/video/video-comment.ts new file: server/core/types/models/video/video-file.ts new file: server/core/types/models/video/video-import.ts new file: server/core/types/models/video/video-password.ts new file: server/core/types/models/video/video-playlist-element.ts new file: server/core/types/models/video/video-playlist.ts new file: server/core/types/models/video/video-rate.ts new file: server/core/types/models/video/video-redundancy.ts new file: server/core/types/models/video/video-share.ts new file: server/core/types/models/video/video-source.ts new file: server/core/types/models/video/video-streaming-playlist.ts new file: server/core/types/models/video/video.ts new file: server/core/types/models/watched-words/index.ts new file: server/core/types/models/watched-words/watched-words-list.ts new file: server/core/types/plugins/index.ts new file: server/core/types/plugins/plugin-library.model.ts new file: server/core/types/plugins/register-server-auth.model.ts new file: server/core/types/plugins/register-server-option.model.ts new file: server/core/types/plugins/register-server-websocket-route.model.ts new file: server/core/types/sequelize.ts new file: server/package.json new file: server/scripts/create-generate-storyboard-job.ts new file: server/scripts/create-import-video-file-job.ts new file: server/scripts/create-move-video-storage-job.ts new file: server/scripts/house-keeping.ts new file: server/scripts/parse-log.ts new file: server/scripts/plugin/install.ts new file: server/scripts/plugin/uninstall.ts new file: server/scripts/prune-storage.ts new file: server/scripts/regenerate-thumbnails.ts new file: server/scripts/reset-password.ts new file: server/scripts/shared/common.ts new file: server/scripts/update-host.ts new file: server/scripts/update-object-storage-url.ts new file: server/scripts/upgrade.sh new file: server/server.ts new file: server/tsconfig.json new file: server/tsconfig.lib.json new file: server/tsconfig.types.json new file: support/doc/api/embeds.md new file: support/doc/api/openapi.yaml new file: support/doc/api/quickstart.md new file: support/doc/dependencies.md new file: support/doc/development/ci.md new file: support/doc/development/lib.md new file: support/doc/development/localization.md new file: support/doc/development/monitoring.md new file: support/doc/development/release.md new file: support/doc/development/server.md new file: support/doc/development/tests.md new file: support/doc/docker.md new file: support/doc/plugins/guide.md new file: support/doc/production.md new file: support/doc/tools.md new file: support/doc/translation.md new file: support/docker/gitpod/Dockerfile new file: support/docker/gitpod/setup_postgres.sql new file: support/docker/production/.env new file: support/docker/production/.gitignore new file: support/docker/production/Dockerfile.bookworm new file: support/docker/production/Dockerfile.nginx new file: support/docker/production/config/custom-environment-variables.yaml new file: support/docker/production/config/production.yaml new file: support/docker/production/docker-compose.yml new file: support/docker/production/entrypoint.nginx.sh new file: support/docker/production/entrypoint.sh new file: support/freebsd/peertube new file: support/init.d/peertube new file: support/nginx/peertube new file: support/openapi/go/README.mustache new file: support/openapi/go/def.yaml new file: support/openapi/kotlin/README.mustache new file: support/openapi/kotlin/def.yaml new file: support/openapi/python/README.mustache new file: support/openapi/python/def.yaml new file: support/sysctl.d/30-peertube-tcp.conf new file: support/systemd/peertube.service new file: tsconfig.base.json new file: tsconfig.eslint.json new file: yarn.lock
3 months ago
listen:
hostname: '127.0.0.1'
port: 9000
# Correspond to your reverse proxy server_name/listen configuration (i.e., your public PeerTube instance URL)
webserver:
https: true
hostname: 'example.com'
port: 443
# Secrets you need to generate the first time you run PeerTube
secrets:
# Generate one using `openssl rand -hex 32`
peertube: ''
rates_limit:
api:
# 50 attempts in 10 seconds
window: 10 seconds
max: 50
login:
# 15 attempts in 5 min
window: 5 minutes
max: 15
signup:
# 2 attempts in 5 min (only succeeded attempts are taken into account)
window: 5 minutes
max: 2
ask_send_email:
# 3 attempts in 5 min
window: 5 minutes
max: 3
receive_client_log:
# 1 attempt every 2 seconds
window: 1 minute
max: 30
plugins:
# 500 attempts in 10 seconds (we also serve plugin static files)
window: 10 seconds
max: 500
well_known:
# 200 attempts in 10 seconds
window: 10 seconds
max: 200
feeds:
# 50 attempts in 10 seconds
window: 10 seconds
max: 50
activity_pub:
# 500 attempts in 10 seconds (we can have many AP requests)
window: 10 seconds
max: 500
client: # HTML files generated by PeerTube
# 500 attempts in 10 seconds (to not break crawlers)
window: 10 seconds
max: 500
download_generate_video: # A light FFmpeg process is used to generate videos (to merge audio and video streams for example)
# 5 attempts in 5 seconds
window: 5 seconds
max: 5
oauth2:
token_lifetime:
access_token: '1 day'
refresh_token: '2 weeks'
# Proxies to trust to get real client IP
# If you run PeerTube just behind a local proxy (nginx), keep 'loopback'
# If you run PeerTube behind a remote proxy, add the proxy IP address (or subnet)
trust_proxy:
- 'loopback'
# Your database name will be database.name OR 'peertube'+database.suffix
database:
hostname: '127.0.0.1'
port: 5432
ssl: false
suffix: '_prod'
username: 'peertube'
password: 'peertube'
pool:
max: 5
# Redis server for short time storage
# You can also specify a 'socket' path to a unix socket but first need to
# set 'hostname' and 'port' to null
redis:
hostname: '127.0.0.1'
port: 6379
auth: null # Used by both standalone and sentinel
db: 0
sentinel:
enabled: false
enable_tls: false
master_name: ''
sentinels:
- hostname: ''
port: 26379
# SMTP server to send emails
smtp:
# smtp or sendmail
transport: smtp
# Path to sendmail command. Required if you use sendmail transport
sendmail: null
hostname: null
port: 465 # If you use StartTLS: 587
username: null
password: null
tls: true # If you use StartTLS: false
disable_starttls: false
ca_file: null # Used for self signed certificates
from_address: 'admin@example.com'
email:
body:
signature: 'PeerTube'
subject:
prefix: '[PeerTube]'
# Update default PeerTube values
# Set by API when the field is not provided and put as default value in client
defaults:
# Change default values when publishing a video (upload/import/go Live)
publish:
download_enabled: true
# enabled = 1, disabled = 2, requires_approval = 3
comments_policy: 1
# public = 1, unlisted = 2, private = 3, internal = 4
privacy: 1
# CC-BY = 1, CC-SA = 2, CC-ND = 3, CC-NC = 4, CC-NC-SA = 5, CC-NC-ND = 6, Public Domain = 7
# You can also choose a custom licence value added by a plugin
# No licence by default
licence: null
p2p:
# Enable P2P by default in PeerTube client
# Can be enabled/disabled by anonymous users and logged in users
webapp:
enabled: true
# Enable P2P by default in PeerTube embed
# Can be enabled/disabled by URL option
embed:
enabled: true
# From the project root directory
storage:
tmp: '/var/www/peertube/storage/tmp/' # Use to download data (imports etc), store uploaded files before and during processing...
tmp_persistent: '/var/www/peertube/storage/tmp-persistent/' # As tmp but the directory is not cleaned up between PeerTube restarts
bin: '/var/www/peertube/storage/bin/'
avatars: '/var/www/peertube/storage/avatars/'
web_videos: '/var/www/peertube/storage/web-videos/'
streaming_playlists: '/var/www/peertube/storage/streaming-playlists/'
original_video_files: '/var/www/peertube/storage/original-video-files/'
redundancy: '/var/www/peertube/storage/redundancy/'
logs: '/var/www/peertube/storage/logs/'
previews: '/var/www/peertube/storage/previews/'
thumbnails: '/var/www/peertube/storage/thumbnails/'
storyboards: '/var/www/peertube/storage/storyboards/'
torrents: '/var/www/peertube/storage/torrents/'
captions: '/var/www/peertube/storage/captions/'
cache: '/var/www/peertube/storage/cache/'
plugins: '/var/www/peertube/storage/plugins/'
well_known: '/var/www/peertube/storage/well-known/'
# Overridable client files in client/dist/assets/images:
# - logo.svg
# - favicon.png
# - default-playlist.jpg
# - default-avatar-account.png
# - default-avatar-video-channel.png
# - and icons/*.png (PWA)
# Could contain for example assets/images/favicon.png
# If the file exists, peertube will serve it
# If not, peertube will fallback to the default file
client_overrides: '/var/www/peertube/storage/client-overrides/'
static_files:
# Require and check user authentication when accessing private files (internal/private video files)
private_files_require_auth: true
object_storage:
enabled: false
# Without protocol, will default to HTTPS
# Your S3 provider must support virtual hosting of buckets as PeerTube doesn't support path style requests
endpoint: '' # 's3.amazonaws.com' or 's3.fr-par.scw.cloud' for example
region: 'us-east-1'
upload_acl:
# Set this ACL on each uploaded object of public/unlisted videos
# Use null if your S3 provider does not support object ACL
public: 'public-read'
# Set this ACL on each uploaded object of private/internal videos
# PeerTube can proxify requests to private objects so your users can access them
# Use null if your S3 provider does not support object ACL
private: 'private'
proxy:
# If private files (private/internal video files) have a private ACL, users can't access directly the ressource
# PeerTube can proxify requests between your object storage service and your users
# If you disable PeerTube proxy, ensure you use your own proxy that is able to access the private files
# Or you can also set a public ACL for private files in object storage if you don't want to use a proxy
proxify_private_files: true
credentials:
# You can also use AWS_ACCESS_KEY_ID env variable
access_key_id: ''
# You can also use AWS_SECRET_ACCESS_KEY env variable
secret_access_key: ''
# Maximum amount to upload in one request to object storage
max_upload_part: 100MB
# Maximum number of attempts to make a request to object storage
# Some object storage providers (for instance Backblaze) expects the client to retry upload upon 5xx errors
# If you're using such a provider then you can increase this value
max_request_attempts: 3
streaming_playlists:
bucket_name: 'streaming-playlists'
# Allows setting all buckets to the same value but with a different prefix
prefix: '' # Example: 'streaming-playlists:'
# Base url for object URL generation, scheme and host will be replaced by this URL
# Useful when you want to use a CDN/external proxy
base_url: '' # Example: 'https://mirror.example.com'
# PeerTube makes many small requests to the object storage provider to upload/delete/update live chunks
# which can be a problem depending on your object storage provider
# You can also choose to disable this feature to reduce live streams latency
# Live stream replays are not affected by this setting, so they are uploaded in object storage as regular VOD videos
store_live_streams: true
web_videos:
bucket_name: 'web-videos'
prefix: ''
base_url: ''
user_exports:
bucket_name: 'user-exports'
prefix: ''
base_url: ''
# Same settings but for original video files
original_video_files:
bucket_name: 'original-video-files'
prefix: ''
base_url: ''
log:
level: 'info' # 'debug' | 'info' | 'warn' | 'error'
rotation:
enabled: true # Enabled by default, if disabled make sure that 'storage.logs' is pointing to a folder handled by logrotate
max_file_size: 12MB
max_files: 20
anonymize_ip: false
log_ping_requests: true
log_tracker_unknown_infohash: true
# If you have many concurrent requests, you can disable HTTP requests logging to reduce PeerTube CPU load
log_http_requests: true
prettify_sql: false
# Accept warn/error logs coming from the client
accept_client_log: true
# Support of Open Telemetry metrics and tracing
# For more information: https://docs.joinpeertube.org/maintain/observability
open_telemetry:
metrics:
enabled: false
# How often viewers send playback stats to server
playback_stats_interval: '15 seconds'
http_request_duration:
# You can disable HTTP request duration metric that can have a high tag cardinality
enabled: false
# Create a prometheus exporter server on this port so prometheus server can scrape PeerTube metrics
prometheus_exporter:
hostname: '127.0.0.1'
port: 9091
tracing:
# If tracing is enabled, you must provide --experimental-loader=@opentelemetry/instrumentation/hook.mjs flag to the node binary
enabled: false
# Send traces to a Jaeger compatible endpoint
jaeger_exporter:
endpoint: ''
trending:
videos:
interval_days: 7 # Compute trending videos for the last x days for 'most-viewed' algorithm
algorithms:
enabled:
- 'hot' # Adaptation of Reddit's 'Hot' algorithm
- 'most-viewed' # Number of views in the last x days
- 'most-liked' # Global views since the upload of the video
default: 'most-viewed'
# Cache remote videos on your server, to help other instances to broadcast the video
# You can define multiple caches using different sizes/strategies
# Once you have defined your strategies, choose which instances you want to cache in admin -> manage follows -> following
redundancy:
videos:
check_interval: '1 hour' # How often you want to check new videos to cache
strategies: # Just uncomment strategies you want
# -
# size: '10GB'
# # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
# min_lifetime: '48 hours'
# strategy: 'most-views' # Cache videos that have the most views
# -
# size: '10GB'
# # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
# min_lifetime: '48 hours'
# strategy: 'trending' # Cache trending videos
# -
# size: '10GB'
# # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
# min_lifetime: '48 hours'
# strategy: 'recently-added' # Cache recently added videos
# min_views: 10 # Having at least x views
# Other instances that duplicate your content
remote_redundancy:
videos:
# 'nobody': Do not accept remote redundancies
# 'anybody': Accept remote redundancies from anybody
# 'followings': Accept redundancies from instance followings
accept_from: 'anybody'
csp:
enabled: false
report_only: true # CSP directives are still being tested, so disable the report only mode at your own risk!
report_uri:
security:
# Set the X-Frame-Options header to help to mitigate clickjacking attacks
frameguard:
enabled: true
# Set x-powered-by HTTP header to "PeerTube"
# Can help remote software to know this is a PeerTube instance
powered_by_header:
enabled: true
tracker:
# If you disable the tracker, you disable the P2P on your PeerTube instance
enabled: true
# Only handle requests on your videos
# If you set this to false it means you have a public tracker
# Then, it is possible that clients overload your instance with external torrents
private: true
# Reject peers that do a lot of announces (could improve privacy of TCP/UDP peers)
reject_too_many_announces: false
history:
videos:
# If you want to limit users videos history
# -1 means there is no limitations
# Other values could be '6 months' or '30 days' etc (PeerTube will periodically delete old entries from database)
max_age: -1
views:
videos:
# PeerTube creates a database entry every hour for each video to track views over a period of time
# This is used in particular by the Trending page
# PeerTube could remove old remote video views if you want to reduce your database size (video view counter will not be altered)
# -1 means no cleanup
# Other values could be '6 months' or '30 days' etc (PeerTube will periodically delete old entries from database)
remote:
max_age: '30 days'
# PeerTube buffers local video views before updating and federating the video
local_buffer_update_interval: '30 minutes'
# How long does it take to count again a view from the same user
view_expiration: '1 hour'
# Minimum amount of time the viewer has to watch the video before PeerTube adds a view
count_view_after: '10 seconds'
# Player can send a session id string to track the user
# Since this can be spoofed by users to create fake views, you have the option to disable this feature
# If disabled, PeerTube will use the IP address to track the same user (default behavior before PeerTube 6.1)
trust_viewer_session_id: true
# How often the web browser sends "is watching" information to the server
# Increase the value or set null to disable it if you plan to have many viewers
watching_interval:
# Non logged-in viewers
anonymous: '5 seconds'
# Logged-in users of your instance
# Unlike anonymous viewers, this endpoint is also used to store the "last watched video timecode" for your users
# Increasing this value reduces the accuracy of the video resume
users: '5 seconds'
# Used to get country location of views of local videos
geo_ip:
enabled: true
country:
database_url: 'https://dbip.mirror.framasoft.org/files/dbip-country-lite-latest.mmdb'
city:
database_url: 'https://dbip.mirror.framasoft.org/files/dbip-city-lite-latest.mmdb'
plugins:
# The website PeerTube will ask for available PeerTube plugins and themes
# This is an unmoderated plugin index, so only install plugins/themes you trust
index:
enabled: true
check_latest_versions_interval: '4 hours' # How often you want to check new plugins/themes versions
url: 'https://packages.joinpeertube.org'
federation:
# Enable ActivityPub endpoints (inbox/outbox)
enabled: true
# Prevent SSRF requests (requests to your internal network for example) by checking the request IP address
# More information about SSRF: https://portswigger.net/web-security/ssrf
prevent_ssrf: true
# Some federated software such as Mastodon may require an HTTP signature to access content
sign_federated_fetches: true
videos:
federate_unlisted: false
# Add a weekly job that cleans up remote AP interactions on local videos (shares, rates and comments)
# It removes objects that do not exist anymore, and potentially fix their URLs
cleanup_remote_interactions: true
peertube:
check_latest_version:
# Check and notify admins of new PeerTube versions
enabled: true
# You can use a custom URL if your want, that respect the format behind https://joinpeertube.org/api/v1/versions.json
url: 'https://joinpeertube.org/api/v1/versions.json'
webadmin:
configuration:
edition:
# Set this to false if you don't want to allow config edition in the web interface by instance admins
allowed: true
# XML, Atom or JSON feeds
feeds:
videos:
# Default number of videos displayed in feeds
count: 20
comments:
# Default number of comments displayed in feeds
count: 20
remote_runners:
# Consider jobs that are processed by a remote runner as stalled after this period of time without any update
stalled_jobs:
live: '30 seconds'
vod: '2 minutes'
thumbnails:
# When automatically generating a thumbnail from the video
generation_from_video:
# How many frames to analyze at the middle of the video to select the most appropriate one
# Increasing this value will increase CPU and memory usage when generating the thumbnail, especially for high video resolution
# Minimum value is 2
frames_to_analyze: 50
# Only two sizes are currently supported for now (not less, not more)
# 1 size for the thumbnail (displayed in video miniatures)
# 1 size for the preview (displayed in the video player)
sizes:
-
width: 280
height: 157
-
width: 850
height: 480
stats:
# Display registration requests stats (average response time, total requests...)
registration_requests:
enabled: true
# Display abuses stats (average response time, total abuses...)
abuses:
enabled: true
total_moderators:
enabled: true
total_admins:
enabled: true
webrtc:
# 1 or 2 STUN servers are sufficient
stun_servers:
- 'stun:stunserver2024.stunprotocol.org'
- 'stun:stun.framasoft.org'
###############################################################################
#
# From this point, almost all following keys can be overridden by the web interface
# (local-production.json file). If you need to change some values, prefer to
# use the web interface because the configuration will be automatically
# reloaded without any need to restart PeerTube
#
# /!\ If you already have a local-production.json file, modification of some of
# the following keys will have no effect /!\
#
###############################################################################
cache:
previews:
size: 500 # Max number of previews you want to cache
captions:
size: 500 # Max number of video captions/subtitles you want to cache
torrents:
size: 500 # Max number of video torrents you want to cache
storyboards:
size: 500 # Max number of video storyboards you want to cache
admin:
# Used to generate the root user at first startup
# And to receive emails from the contact form
email: 'admin@example.com'
contact_form:
enabled: true
signup:
enabled: false
# When the total number of users in your instance reaches this limit, registrations are disabled.
# -1 == unlimited
limit: 10
minimum_age: 16 # Used to configure the signup form
# Users fill a form to register so moderators can accept/reject the registration
requires_approval: true
requires_email_verification: false
filters:
cidr: # You can specify CIDR ranges to whitelist (empty = no filtering) or blacklist
whitelist: []
blacklist: []
user:
history:
videos:
# Enable or disable video history by default for new users.
enabled: true
# Default value of maximum video bytes the user can upload
# Does not take into account transcoded files or account export archives (that can include user uploaded files)
# Byte format is supported ("1GB" etc)
# -1 == unlimited
video_quota: -1
video_quota_daily: -1
default_channel_name: 'Main $1 channel' # The placeholder $1 is used to represent the user's username
video_channels:
max_per_user: 20 # Allows each user to create up to 20 video channels.
# If enabled, the video will be transcoded to mp4 (x264) with `faststart` flag
# In addition, if some resolutions are enabled the mp4 video file will be transcoded to these new resolutions
# Please, do not disable transcoding since many uploaded videos will not work
transcoding:
enabled: true
original_file:
# If false the uploaded file is deleted after transcoding
# If yes it is not deleted but moved in a dedicated folder or object storage
keep: false
# Allow your users to upload .mkv, .mov, .avi, .wmv, .flv, .f4v, .3g2, .3gp, .mts, m2ts, .mxf, .nut videos
allow_additional_extensions: true
# If a user uploads an audio file, PeerTube will create a video by merging the preview file and the audio file
allow_audio_files: true
# Enable remote runners to transcode your videos
# If enabled, your instance won't transcode the videos itself
# At least 1 remote runner must be configured to transcode your videos
remote_runners:
enabled: false
# Amount of threads used by ffmpeg for 1 local transcoding job
threads: 1
# Amount of local transcoding jobs to execute in parallel
concurrency: 1
# Choose the local transcoding profile
# New profiles can be added by plugins
# Available in core PeerTube: 'default'
profile: 'default'
resolutions: # Only created if the original video has a higher resolution, uses more storage!
0p: false # audio-only (creates mp4 without video stream)
144p: false
240p: false
360p: false
480p: false
720p: false
1080p: false
1440p: false
2160p: false
# Transcode and keep original resolution, even if it's above your maximum enabled resolution
always_transcode_original_resolution: true
fps:
# Cap transcoded video FPS
# Max resolution file still keeps the original FPS
max: 60
# Generate videos in a web compatible format
# If you also enabled the hls format, it will multiply videos storage by 2
# If disabled, breaks federation with PeerTube instances < 2.1
web_videos:
enabled: false
# /!\ Requires ffmpeg >= 4.1
# Generate HLS playlists and fragmented MP4 files. Better playback than with Web Videos:
# * Resolution change is smoother
# * Faster playback in particular with long videos
# * More stable playback (less bugs/infinite loading)
# If you also enabled the web videos format, it will multiply videos storage by 2
hls:
enabled: true
# Store the audio stream in a separate file from the video
# This option adds the ability for the HLS player to propose the "Audio only" quality to users
# It also saves disk space by not duplicating the audio stream in each resolution file
# /!\ If enabled, remote PeerTube instances < 6.3.0 won't be able to play these videos
split_audio_and_video: false
live:
enabled: false
# Limit lives duration
# -1 == unlimited
max_duration: -1 # For example: '5 hours'
# Limit max number of live videos created on your instance
# -1 == unlimited
max_instance_lives: 20
# Limit max number of live videos created by a user on your instance
# -1 == unlimited
max_user_lives: 3
# Allow your users to save a replay of their live
# PeerTube will transcode segments in a video file
# If the user daily/total quota is reached, PeerTube will stop the live
# /!\ transcoding.enabled (and not live.transcoding.enabled) has to be true to create a replay
allow_replay: true
# Allow your users to change latency settings (small latency/default/high latency)
# Small latency live streams cannot use P2P
# High latency live streams can increase P2P ratio
latency_setting:
enabled: true
# Your firewall should accept traffic from this port in TCP if you enable live
rtmp:
enabled: true
# Listening hostname/port for RTMP server
# '::' to listen on IPv6 and IPv4, '0.0.0.0' to listen on IPv4
# Use null to automatically listen on '::' if IPv6 is available, or '0.0.0.0' otherwise
hostname: null
port: 1935
# Public hostname of your RTMP server
# Use null to use the same value than `webserver.hostname`
public_hostname: null
rtmps:
enabled: false
# Listening hostname/port for RTMPS server
# '::' to listen on IPv6 and IPv4, '0.0.0.0' to listen on IPv4
# Use null to automatically listen on '::' if IPv6 is available, or '0.0.0.0' otherwise
hostname: null
port: 1936
# Absolute paths
key_file: ''
cert_file: ''
# Public hostname of your RTMPS server
# Use null to use the same value than `webserver.hostname`
public_hostname: null
# Allow to transcode the live streaming in multiple live resolutions
transcoding:
enabled: true
# Enable remote runners to transcode your videos
# If enabled, your instance won't transcode the videos itself
# At least 1 remote runner must be configured to transcode your videos
remote_runners:
enabled: false
# Amount of threads used by ffmpeg per live when using local transcoding
threads: 2
# Choose the local transcoding profile
# New profiles can be added by plugins
# Available in core PeerTube: 'default'
profile: 'default'
resolutions:
0p: false # Audio only
144p: false
240p: false
360p: false
480p: false
720p: false
1080p: false
1440p: false
2160p: false
# Also transcode original resolution, even if it's above your maximum enabled resolution
always_transcode_original_resolution: true
fps:
# Cap transcoded live FPS
# Max resolution stream still keeps the original FPS
max: 60
video_studio:
# Enable video edition by users (cut, add intro/outro, add watermark etc)
# If enabled, users can create transcoding tasks as they wish
enabled: false
# Enable remote runners to transcode studio tasks
# If enabled, your instance won't transcode the videos itself
# At least 1 remote runner must be configured to transcode your videos
remote_runners:
enabled: false
video_transcription:
# Enable automatic transcription of videos
enabled: false
# Choose engine for local transcription
# Supported: 'openai-whisper' or 'whisper-ctranslate2'
engine: 'whisper-ctranslate2'
# You can set a custom engine path for local transcription
# If not provided, PeerTube will try to automatically install it in the PeerTube bin directory
engine_path: null
# Choose engine model for local transcription
# Available for 'openai-whisper' and 'whisper-ctranslate2': 'tiny', 'base', 'small', 'medium', 'large-v2' or 'large-v3'
model: 'small'
# Or specify the model path:
# * PyTorch model file path for 'openai-whisper'
# * CTranslate2 Whisper model directory path for 'whisper-ctranslate2'
# If not provided, PeerTube will automatically download the model
model_path: null
# Enable remote runners to transcribe videos
# If enabled, your instance won't transcribe the videos itself
# At least 1 remote runner must be configured to transcribe your videos
remote_runners:
enabled: false
video_file:
update:
# Add ability for users to replace the video file of an existing video
enabled: false
import:
# Add ability for your users to import remote videos (from YouTube, torrent...)
videos:
# Amount of import jobs to execute in parallel
concurrency: 1
# Set a custom video import timeout to not block import queue
timeout: '2 hours'
# Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html
http:
# We recommend to use a HTTP proxy if you enable HTTP import to prevent private URL access from this server
# See https://docs.joinpeertube.org/maintain/configuration#security for more information
enabled: false
youtube_dl_release:
# Direct download URL to youtube-dl binary
# Github releases API is also supported
#
# Platform-independent examples:
# * https://api.github.com/repos/ytdl-org/youtube-dl/releases
# * https://api.github.com/repos/yt-dlp/yt-dlp/releases
# * https://yt-dl.org/downloads/latest/youtube-dl
#
# You can also use a youtube-dl standalone binary (requires python_path: null)
# GNU/Linux binaries with support for impersonating browser requests (required by some platforms such as Vimeo) examples:
# * https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux (x64)
# * https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_armv7l (ARMv7)
# * https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_armv7l (ARMv8/AArch64/ARM64)
url: 'https://api.github.com/repos/yt-dlp/yt-dlp/releases'
# Release binary name: 'yt-dlp' or 'youtube-dl'
name: 'yt-dlp'
# Path to the python binary to execute for youtube-dl or yt-dlp
# Set to null if you use a youtube-dl executable
python_path: '/usr/bin/python3'
# IPv6 is very strongly rate-limited on most sites supported by youtube-dl
force_ipv4: false
# By default PeerTube uses HTTP_PROXY and HTTPS_PROXY environment variables
# But you can specify custom proxies for youtube-dl because remote websites (like YouTube) may block your server IP address
# PeerTube will randomly select a proxy from the following list
# You may need to use a standalone youtube-dl binary (see `url` key comment above) to use this feature
proxies:
# - "https://username:password@example.com:8888"
# Magnet URI or torrent file (use classic TCP/UDP/WebSeed to download the file)
torrent:
# We recommend to only enable magnet URI/torrent import if you trust your users
# See https://docs.joinpeertube.org/maintain/configuration#security for more information
enabled: false
# Add ability for your users to synchronize their channels with external channels, playlists, etc
video_channel_synchronization:
enabled: false
max_per_user: 10
check_interval: 1 hour
# Number of latest published videos to check and to potentially import when syncing a channel
videos_limit_per_synchronization: 10
# Max number of videos to import when the user asks for full sync
full_sync_videos_limit: 1000
users:
# Video quota is checked on import so the user doesn't upload a too big archive file
# Video quota (daily quota is not taken into account) is also checked for each video when PeerTube is processing the import
enabled: true
export:
users:
# Allow users to export their PeerTube data in a .zip for backup or re-import
# Only one export at a time is allowed per user
enabled: true
# Max size of the current user quota to accept or not the export
# Goal of this setting is to not store too big archive file on your server disk
max_user_video_quota: 10GB
# How long PeerTube should keep the user export
export_expiration: '2 days'
auto_blacklist:
# New videos automatically blacklisted so moderators can review before publishing
videos:
of_users:
enabled: false
# Instance settings
instance:
name: 'PeerTube'
short_description: 'PeerTube, an ActivityPub-federated video streaming platform using P2P directly in your web browser.'
description: 'Welcome to this PeerTube instance!' # Support markdown
terms: 'No terms for now.' # Support markdown
code_of_conduct: '' # Supports markdown
# Who moderates the instance? What is the policy regarding NSFW videos? Political videos? etc
moderation_information: '' # Supports markdown
# Why did you create this instance?
creation_reason: '' # Supports Markdown
# Who is behind the instance? A single person? A non profit?
administrator: '' # Supports Markdown
# How long do you plan to maintain this instance?
maintenance_lifetime: '' # Supports Markdown
# How will you pay the PeerTube instance server? With your own funds? With users donations? Advertising?
business_model: '' # Supports Markdown
# If you want to explain on what type of hardware your PeerTube instance runs
# Example: '2 vCore, 2GB RAM...'
hardware_information: '' # Supports Markdown
# Describe the languages spoken on your instance, to interact with your users for example
# Uncomment or add the languages you want
# List of supported languages: https://peertube.cpy.re/api/v1/videos/languages
# PeerTube plugins can add additional languages to the official list of supported languages
languages:
# - en
# - es
# - fr
# Describe the main categories of your instance (to explain for example that your instance is dedicated to music, gaming, etc.)
# Uncomment categories you want
# List of supported categories: https://peertube.cpy.re/api/v1/videos/categories
# PeerTube plugins can add additional categories to the official list of supported categories
categories:
# - 1 # Music
# - 2 # Films
# - 3 # Vehicles
# - 4 # Art
# - 5 # Sports
# - 6 # Travels
# - 7 # Gaming
# - 8 # People
# - 9 # Comedy
# - 10 # Entertainment
# - 11 # News & Politics
# - 12 # How To
# - 13 # Education
# - 14 # Activism
# - 15 # Science & Technology
# - 16 # Animals
# - 17 # Kids
# - 18 # Food
default_client_route: '/videos/browse'
# Whether or not the instance is dedicated to NSFW content
# 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
is_nsfw: false
# By default, `do_not_list` or `blur` or `display` NSFW videos
# Could be overridden per user with a setting
default_nsfw_policy: 'do_not_list'
customizations:
javascript: '' # Directly your JavaScript code (without <script> tags). Will be eval at runtime
css: '' # Directly your CSS code (without <style> tags). Will be injected at runtime
# Robot.txt rules. To disallow robots to crawl your instance and disallow indexation of your site, add `/` to `Disallow:`
robots: |
User-agent: *
Disallow:
# /.well-known/security.txt rules. This endpoint is cached, so you may have to wait a few hours before viewing your changes
# To discourage researchers from testing your instance and disable security.txt integration, set this to an empty string
securitytxt: |
Contact: https://github.com/Chocobozzz/PeerTube/blob/develop/SECURITY.md
Expires: 2025-12-31T11:00:00.000Z'
services:
# Cards configuration to format video in Twitter/X
# All other social media (Facebook, Mastodon, etc.) are supported out of the box
twitter:
# Indicates the Twitter/X account for the website or platform where the content was published
# This is just an information injected in HTML that is required by Twitter/X
username: '@Chocobozzz'
followers:
instance:
# Allow or not other instances to follow yours
enabled: true
# Whether or not an administrator must manually validate a new follower
manual_approval: false
followings:
instance:
# If you want to automatically follow back new instance followers
# If this option is enabled, use the mute feature instead of deleting followings
# /!\ Don't enable this if you don't have a reactive moderation team /!\
auto_follow_back:
enabled: false
# If you want to automatically follow instances of the public index
# If this option is enabled, use the mute feature instead of deleting followings
# /!\ Don't enable this if you don't have a reactive moderation team /!\
auto_follow_index:
enabled: false
# Host your own using https://framagit.org/framasoft/peertube/instances-peertube#peertube-auto-follow
index_url: ''
theme:
default: 'default'
broadcast_message:
enabled: false
message: '' # Support markdown
level: 'info' # 'info' | 'warning' | 'error'
dismissable: false
search:
# Add ability to fetch remote videos/actors by their URI, that may not be federated with your instance
# If enabled, the associated group will be able to "escape" from the instance follows
# That means they will be able to follow channels, watch videos, list videos of non followed instances
remote_uri:
users: true
anonymous: false
# Use a third party index instead of your local index, only for search results
# Useful to discover content outside of your instance
# If you enable search_index, you must enable remote_uri search for users
# If you do not enable remote_uri search for anonymous user, your instance will redirect the user on the origin instance
# instead of loading the video locally
search_index:
enabled: false
# URL of the search index, that should use the same search API and routes
# than PeerTube: https://docs.joinpeertube.org/api-rest-reference.html
# You should deploy your own with https://framagit.org/framasoft/peertube/search-index,
# and can use https://search.joinpeertube.org/ for tests, but keep in mind the latter is an unmoderated search index
url: ''
# You can disable local search in the client, so users only use the search index
disable_local_search: false
# If you did not disable local search in the client, you can decide to use the search index by default
is_default_search: false
# PeerTube client/interface configuration
client:
videos:
miniature:
# By default PeerTube client displays author username
prefer_author_display_name: false
resumable_upload:
# Max size of upload chunks, e.g. '90MB'
# If null, it will be calculated based on network speed
max_chunk_size: null
menu:
login:
# If you enable only one external auth plugin
# You can automatically redirect your users on this external platform when they click on the login button
redirect_on_single_external_auth: false
storyboards:
# Generate storyboards of local videos using ffmpeg so users can see the video preview in the player while scrubbing the video
enabled: true