Commit Graph

39 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 b10482e0e0
Fix lint 2024-06-27 14:34:18 +02:00
Chocobozzz 9772280e99
Upgrade to angular 18 & vite 2024-06-26 08:33:54 +02:00
Chocobozzz be19d9be34
Move email templates in assets directory 2024-03-20 09:15:07 +01:00
Chocobozzz c727a34cb6
Prevent aborting another live session 2024-03-18 16:09:22 +01:00
Chocobozzz 1a8b20ba30
Less verbose on expected error 2024-03-18 11:28:43 +01:00
Chocobozzz 1048d1054b
Fix dev:client command 2024-03-15 16:49:55 +01:00
Chocobozzz a043de80d2
Fix build concurrency issue 2023-12-18 09:36:08 +01:00
Chocobozzz 5a3d0650c9
server/server -> server/core 2023-10-04 15:13:25 +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 1772b383de Add peertube runner cli 2023-05-09 08:57:34 +02:00
Chocobozzz 31ee48d579
Fix error when running setup:cli 2022-09-28 14:55:15 +02:00
Chocobozzz 9452d4fd33
/!\ Use a dedicated config file for development
It means you have to replace NODE_ENV=test to NODE_ENV=dev if you use it
npm run dev:* commands are already updated
2022-07-06 16:12:17 +02:00
Chocobozzz f8360396ff
Stop using tsconfig register
Prefer to replace paths at compile time
2022-01-06 08:26:14 +01:00
Chocobozzz 9270bd3a7e
Migrate to --enable-source-maps option 2022-01-03 16:37:16 +01:00
Chocobozzz 9b3294a849 Fix some build scripts and lint 2021-12-16 10:08:43 +01:00
Chocobozzz 8cbc40b2fe
Move to sass module 2021-06-28 10:54:02 +02:00
Chocobozzz 27bc958674
Bidi support 2021-06-07 18:14:05 +02:00
Chocobozzz 5a547f69d5 Support encoding profiles 2020-11-25 10:07:51 +01:00
Chocobozzz d573926e9b Add migrations for abuse messages 2020-07-31 11:35:19 +02:00
Chocobozzz 99ae9d3a9e
Fix npm run dev 2020-02-19 09:14:28 +01:00
Chocobozzz 0e4338fd1d
Use bash to run scripts 2020-02-19 08:56:24 +01:00
Chocobozzz 0e9c3b2810 Fix client dev mode 2020-02-10 16:39:28 +01:00
Chocobozzz 361dcebc75 Support i18n build 2020-02-10 16:39:28 +01:00
Chocobozzz b764380ac2 Add ability to list redundancies 2020-01-28 11:35:26 +01:00
Chocobozzz 36619ac8f5
Reduce dev commands RAM usage 2020-01-22 10:18:57 +01:00
Chocobozzz 9b7668f527
Fix npm run dev script 2020-01-07 16:53:55 +01:00
Rigel Kent 9650937374
(fix) npm run dev invocation 2019-12-18 20:41:44 +01:00
Chocobozzz 03d641a0d7
Add embed api build 2019-12-18 10:14:25 +01:00
Chocobozzz c026a2e673
Remove watch scripts 2019-12-18 10:14:24 +01:00
Chocobozzz 47f6cb31d7
Fix email to field 2019-11-29 13:36:40 +01:00
Chocobozzz 8d2be0ed7b WIP plugins: move plugin CLI in peertube script
Install/uninstall/list plugins remotely
2019-07-24 10:58:16 +02:00
Chocobozzz 2adfc7ea9a Refractor videojs player
Add fake p2p-media-loader plugin
2019-02-11 09:13:02 +01:00
Chocobozzz 8244c85ad6
Fix npm run dev:server 2018-06-29 09:33:36 +02:00
Chocobozzz 6cca7360eb
Reduce bundle sizes 2018-06-07 16:50:33 +02:00
Léo Andrès 0e4ffb4b67 Clean shell scripts (#398) 2018-03-27 10:35:12 +02:00
Chocobozzz 93e1258c7c Move video file metadata in their own table
Will be used for user video quotas and multiple video resolutions
2017-08-25 11:36:23 +02:00
Chocobozzz 18c8e94508 Video search -> case insensitive 2017-07-06 18:01:02 +02:00
Chocobozzz 66dd264f7b Better build/dev scripts 2017-06-11 11:36:05 +02:00