27 Commits

Author SHA1 Message Date
Chocobozzz
b19754f259
Use a migration script for comments count 2025-05-20 10:36:54 +02:00
Chocobozzz
6e44e7e29a
Create and inject caption playlist in HLS master 2025-04-09 16:18:38 +02:00
Chocobozzz
29f55e9115
Use npm run install-node-dependencies
Instead of yarn, so we can move to another package manager in the future
2025-02-18 13:44:06 +01:00
Chocobozzz
260447942a
Add ability to put captions in object storage
Deprecate:
 * `path` and `url` of `ActorImage` (used to represent account/channel
   avatars/banners) in favour of `fileUrl`
 * `path` of `AvatarInfo` (used in notifications) in favour of `fileUrl`
 * `captionPath` of `VideoCaption` in favour of `fileUrl`
 * `storyboardPath` of `Storyboard` in favour of `fileUrl`
2025-02-07 09:35:39 +01:00
Chocobozzz
cfd8c3c40e
Update server dependencies
Breaking: rename parse-log script option `-nt` to `-n`
2025-02-03 10:19:11 +01:00
Chocobozzz
05f105d03f
Remove web video redundancy support
It's not used anymore in the player since several major versions now, so
there's no point in continuing to store these video files
2025-01-31 11:13:13 +01:00
Chocobozzz
804171860e
Server dep maintenance upgrade 2024-11-25 10:04:59 +01:00
Chocobozzz
486183fe62
Speed up built-in db migration 2024-08-05 16:23:39 +02:00
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
633039c1fa
Add concurrency to delete remote files 2024-06-06 11:33:09 +02:00
Chocobozzz
585050821a
Also prune storyboards and actor images 2024-06-05 15:47:37 +02:00
Chocobozzz
2b189131fa
Add house-keeping script 2024-06-05 15:35:58 +02:00
Chocobozzz
3427330611
Support update object storage urls 2024-06-05 09:01:40 +02:00
Chocobozzz
54c140c800
Support object storage in prune script
Also prune original files and user exports
2024-06-03 16:37:44 +02:00
Chocobozzz
11521f231f
Generate small versions of banners too 2024-03-27 15:08:09 +01:00
chagai95
e57c3024f4
Add config option to keep original video file (basic first version) (#6157)
* testing not removing old file and adding columb to db

* implement feature

* remove unnecessary config changes

* use only keptOriginalFileName, change keptOriginalFileName to keptOriginalFilename for consistency with with videoFile table, slight refactor with basename()

* save original video files to dedicated directory original-video-files

* begin implementing object storage (bucket) support

---------

Co-authored-by: chagai.friedlander <chagai.friedlander@fairkom.eu>
Co-authored-by: Ian <ian.kraft@hotmail.com>
Co-authored-by: Chocobozzz <me@florianbigard.com>
2024-03-15 15:47:18 +01:00
Chocobozzz
9e2700b89d
Fix lint 2024-02-22 10:32:28 +01:00
Chocobozzz
8573e5a80a Implement user import/export in server 2024-02-21 13:49:08 +01:00
Chocobozzz
2230b1571f
Merge branch 'release/6.0.0' into develop 2024-01-04 10:37:01 +01:00
Chocobozzz
04a0ed13b4
Also update playlist URLs 2024-01-04 09:21:56 +01:00
Chocobozzz
b9077c83fc
Add ability to disable storyboards 2023-12-27 10:39:09 +01:00
Chocobozzz
2d4274769e
Fix production.yaml.new config generation 2023-11-07 10:25:15 +01:00
Chocobozzz
d3c9a2e5b9
Add script to move videos to file system 2023-11-02 09:21:49 +01:00
Chocobozzz
5a3d0650c9
server/server -> server/core 2023-10-04 15:13:25 +02:00
Julien Rabier
0216c3485d Fix path to Peertube installation in upgrade.sh 2023-09-01 11:07:37 +02:00
Chocobozzz
0d87602a20
Optimize update host script 2023-08-18 14:21:04 +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