Commit Graph

100 Commits

Author SHA1 Message Date
Chocobozzz 816f346a60 Separate HLS audio and video streams
Allows:
  * The HLS player to propose an "Audio only" resolution
  * The live to output an "Audio only" resolution
  * The live to ingest and output an "Audio only" stream

 This feature is under a config for VOD videos and is enabled by default for lives

 In the future we can imagine:
  * To propose multiple audio streams for a specific video
  * To ingest an audio only VOD and just output an audio only "video"
    (the player would play the audio file and PeerTube would not
    generate additional resolutions)

This commit introduce a new way to download videos:
 * Add "/download/videos/generate/:videoId" endpoint where PeerTube can
   mux an audio only and a video only file to a mp4 container
 * The download client modal introduces a new default panel where the
   user can choose resolutions it wants to download
2024-08-05 08:31:59 +02:00
Chocobozzz 9772280e99
Upgrade to angular 18 & vite 2024-06-26 08:33:54 +02:00
Chocobozzz a246c44504
Support tr locale 2024-03-26 14:25:12 +01:00
Chocobozzz be19d9be34
Move email templates in assets directory 2024-03-20 09:15:07 +01:00
Chocobozzz 5a3d0650c9
server/server -> server/core 2023-10-04 15:13:25 +02:00
Chocobozzz 0632cdda04
Fix build 2023-08-17 09:24:45 +02:00
Chocobozzz 3a4992633e
Migrate server to ESM
Sorry for the very big commit that may lead to git log issues and merge
conflicts, but it's a major step forward:

 * Server can be faster at startup because imports() are async and we can
   easily lazy import big modules
 * Angular doesn't seem to support ES import (with .js extension), so we
   had to correctly organize peertube into a monorepo:
    * Use yarn workspace feature
    * Use typescript reference projects for dependencies
    * Shared projects have been moved into "packages", each one is now a
      node module (with a dedicated package.json/tsconfig.json)
    * server/tools have been moved into apps/ and is now a dedicated app
      bundled and published on NPM so users don't have to build peertube
      cli tools manually
    * server/tests have been moved into packages/ so we don't compile
      them every time we want to run the server
 * Use isolatedModule option:
   * Had to move from const enum to const
     (https://www.typescriptlang.org/docs/handbook/enums.html#objects-vs-enums)
   * Had to explictely specify "type" imports when used in decorators
 * Prefer tsx (that uses esbuild under the hood) instead of ts-node to
   load typescript files (tests with mocha or scripts):
     * To reduce test complexity as esbuild doesn't support decorator
       metadata, we only test server files that do not import server
       models
     * We still build tests files into js files for a faster CI
 * Remove unmaintained peertube CLI import script
 * Removed some barrels to speed up execution (less imports)
2023-08-11 15:02:33 +02:00
Chocobozzz 902b16af03
Breaking: remove node 14 support 2023-05-09 10:02:54 +02:00
Chocobozzz 3a0c2a77b1 Enable external plugins to test the PR 2023-05-09 08:57:34 +02:00
Chocobozzz 1772b383de Add peertube runner cli 2023-05-09 08:57:34 +02:00
Chocobozzz 4c61660a0a
Add uk-UA locale support 2023-02-13 16:25:53 +01:00
Chocobozzz 166311358d
Add is locale support 2023-02-13 10:22:51 +01:00
Chocobozzz 0f7195fa40
Support hr locale 2022-07-11 16:25:43 +02:00
Chocobozzz 4c1ce3d44c
Support tok in client 2022-06-24 11:51:30 +02:00
Chocobozzz 65ba19ace9
Fix nightly build 2022-06-14 08:27:33 +02:00
Chocobozzz 92148a7a39
Fix ng build options 2022-06-13 15:15:20 +02:00
Chocobozzz 55f0a7a762
Update translations and support fa 2022-03-03 10:54:52 +01:00
Chocobozzz f8360396ff
Stop using tsconfig register
Prefer to replace paths at compile time
2022-01-06 08:26:14 +01:00
lutangar 06aad80165 chore(refactor): remove shared folder dependencies to the server
Many files from the `shared` folder were importing files from the `server` folder.
When attempting to use Typescript project references to describe dependencies,
it highlighted a circular dependency beetween `shared` <-> `server`.

The Typescript project forbid such usages.
Using project references greatly improve performance by rebuilding only
the updated project and not all source files.
> see https://www.typescriptlang.org/docs/handbook/project-references.html
2021-12-16 10:08:43 +01:00
Chocobozzz 66175ae8b4
Support nn and nb locales 2021-12-13 17:06:44 +01:00
Chocobozzz 33a53638c2
Embed stats only when needed 2021-08-18 10:32:40 +02:00
Chocobozzz 13c749c121
Fix angular builds 2021-07-05 15:19:23 +02:00
Chocobozzz 29b7426c67
Speedup CI 2021-06-17 10:43:34 +02:00
Chocobozzz 662351e626 Update embed webpack config 2021-05-27 16:00:13 +02:00
Chocobozzz f45aa01a1b
Support sq 2021-03-09 11:34:46 +01:00
Chocobozzz 29f148a613
Add ability to build client with source maps 2021-02-02 15:37:18 +01:00
Chocobozzz 1d22d2514f
Fix service worker 2021-01-18 11:16:37 +01:00
kontrollanten 75dd1b641f chore: add manifest in light build 2021-01-13 09:10:52 +01:00
kontrollanten dfdd158a75 client: register service worker
closes #296
2021-01-13 09:10:52 +01:00
Chocobozzz c7444546e7
Add gl support 2020-12-16 11:45:12 +01:00
Chocobozzz ae48a71d57
Remove unused i18n build 2020-11-26 11:30:18 +01:00
Chocobozzz 66357162f8
Migrate to $localize
* Remove i18n polyfill to translate things in components
 * Reduce bundle sizes
 * Improve runtime perf
 * Reduce a lot the time to make a full client build
 * Reduce client build complexity
 * We don't need a service to translate things anymore (so we will be able to translate title pages etc)

Unfortunately we may loose some translations in the migration process.
I'll put a message on weblate to notify translators
2020-08-14 10:28:30 +02:00
Chocobozzz 8c36074799
Update build steps for localization 2020-08-14 09:34:07 +02:00
Chocobozzz 583eb04b54 Upgrade to angular 10 2020-08-07 08:28:14 +02:00
Chocobozzz a3b5e78af3 Analyze embed too with bundlewatch 2020-08-06 10:58:36 +02:00
Chocobozzz 5c145fe7ab
Fix embed build 2020-08-06 09:57:07 +02:00
Chocobozzz fc3b14e413
Limit github actions on PR 2020-08-06 09:47:46 +02:00
Chocobozzz d632a14729 Test bundlewatch 2020-08-06 09:42:33 +02:00
Chocobozzz d10538b47d
ar to ar-001 locale 2020-07-02 14:08:02 +02:00
Chocobozzz 50a04125da
Fix npm run build 2020-06-11 09:29:33 +02:00
Rigel Kent e6dfa58689 space optimizations for `node_modules` and client stats removal
- replace sharp with lighter jimp alternative
- remove stats in builds

fixes #2807
2020-06-10 14:01:49 +02:00
Chocobozzz 0bd558a0f9
Add kab and vi locales 2020-06-04 14:45:19 +02:00
Chocobozzz 520745bfe8
Add ar-001 locale 2020-06-04 10:35:08 +02:00
Chocobozzz b763f88dd0
Merge branch 'release/2.2.0' into develop 2020-06-02 09:31:30 +02:00
Chocobozzz 03fc19281b
Fix emails 2020-06-02 09:21:33 +02:00
Chocobozzz 2a39506c7d
Revert "Remove oc locale support"
This reverts commit 8323c435c1.
2020-05-29 17:09:55 +02:00
Chocobozzz 8323c435c1
Remove oc locale support
It does not work since many releases, and nobody created an issue so we
don't consider it much use

It does not work because Angular does not know this locale: https://github.com/angular/angular/tree/master/packages/common/locales
2020-04-06 14:37:26 +02:00
Chocobozzz 302cb3f92e
Use bash to run build scripts too 2020-02-19 08:57:32 +01:00
ICabaleiro 5a208b004a Extend build commands 2020-02-13 14:13:48 +01:00
Chocobozzz 2779f29a66
Keep our current build system for now 2020-02-12 14:09:55 +01:00