Commit Graph

54 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 5d62c3c1cb
Add "auto-generated" caption info 2024-07-10 12:31:34 +02:00
Chocobozzz 00b1adab86
Fix player back button label 2024-06-10 16:27:01 +02:00
Chocobozzz 8573e5a80a Implement user import/export in server 2024-02-21 13:49:08 +01:00
Chocobozzz c97b8fd2ea
Add caption button to player control bar 2024-02-19 16:14:29 +01:00
Chocobozzz 04bd31bc18
Add more live latency info in stats for nerds 2023-10-30 11:08:09 +01:00
Chocobozzz 5a3d0650c9
server/server -> server/core 2023-10-04 15:13:25 +02:00
Chocobozzz 273d57023b
Update translations 2023-08-18 14:12:32 +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 a1bd2b77d9
Remove webtorrent support from client 2023-07-10 16:08:28 +02:00
Wicklow 40346ead2b
Feature/password protected videos (#5836)
* Add server endpoints

* Refactoring test suites

* Update server and add openapi documentation

* fix compliation and tests

* upload/import password protected video on client

* add server error code

* Add video password to update resolver

* add custom message when sharing pw protected video

* improve confirm component

* Add new alert in component

* Add ability to watch protected video on client

* Cannot have password protected replay privacy

* Add migration

* Add tests

* update after review

* Update check params tests

* Add live videos test

* Add more filter test

* Update static file privacy test

* Update object storage tests

* Add test on feeds

* Add missing word

* Fix tests

* Fix tests on live videos

* add embed support on password protected videos

* fix style

* Correcting data leaks

* Unable to add password protected privacy on replay

* Updated code based on review comments

* fix validator and command

* Updated code based on review comments
2023-06-29 09:48:55 +02:00
Chocobozzz e592df48c7 Update i18n server strings 2023-05-09 08:57:34 +02:00
Chocobozzz fee3d77d63
Add user role label to translatable strings 2023-04-17 08:49:52 +02:00
Chocobozzz c9c21fafdb
Fix button link on mobile 2023-02-15 10:27:26 +01:00
Chocobozzz dc3e3c26b9
Fix untranslatable "previous/next video" 2023-02-13 15:57:08 +01:00
Chocobozzz 32fde390f4
Use unknown when category is not set
Unstead of Misc, that could be a real category
2023-01-19 14:09:57 +01:00
Chocobozzz 0e7c4b03c3
Add back to live feature 2022-12-20 16:28:15 +01:00
Chocobozzz 6235c0b8dc
Inject new player translations 2022-09-16 11:10:12 +02:00
Chocobozzz 690bb8f9f3
Prefer using Object.values 2022-08-17 15:36:03 +02:00
Chocobozzz b0185d7351
Add new player string to custom translations 2022-05-31 14:34:47 +02:00
Chocobozzz b003d57518
Add missing player translation 2022-05-04 09:18:39 +02:00
Chocobozzz c4207f978e
Fast forward on HLS decode error 2022-02-02 11:26:18 +01:00
Chocobozzz 2dd0a8a8fd
Add fast forward/rewind on mobile 2022-01-12 15:07:21 +01:00
Chocobozzz f8360396ff
Stop using tsconfig register
Prefer to replace paths at compile time
2022-01-06 08:26:14 +01:00
Chocobozzz 9576506763
Add P2P enabled/disabled in player card 2021-12-16 10:08:55 +01:00
Chocobozzz e2a1ccd174
Add meaning to date short names 2021-12-13 16:44:34 +01:00
Chocobozzz 42fea41a48
Update translations 2021-12-13 16:36:56 +01:00
Chocobozzz efcadd3d14
Fix "Off" player string localization 2021-10-21 11:01:10 +02:00
Chocobozzz a45050e09e
Add player mode to player stats 2021-04-28 09:07:57 +02:00
Chocobozzz 4e11d8f3ca Cleanup stats for nerds 2021-04-28 09:05:44 +02:00
Chocobozzz 3e0e8d4afd
Revert "Fix context menu when watching a playlist"
This reverts commit e8bb5b6b3a.

We'll refactor this error handler in hls.js v1 upgrade
2021-04-21 15:28:12 +02:00
Chocobozzz e8bb5b6b3a
Fix context menu when watching a playlist 2021-04-21 15:18:22 +02:00
Chocobozzz 5f8327c507
Update i18n with new player keys 2020-12-04 16:37:21 +01:00
Chocobozzz c1961762b3
Fix player translations 2020-11-09 16:29:58 +01:00
Chocobozzz d0510fc1d3
Add missing player localized strings 2020-11-09 16:16:07 +01:00
Chocobozzz ef78fdbb2e
Update player and server translations 2020-08-14 09:32:20 +02:00
Chocobozzz 56674bb9f8 Handle unavailable videos in embed playlists 2020-08-07 08:58:29 +02:00
Chocobozzz 4572c3d0d9 Handle basic playlist in embed 2020-08-07 08:58:29 +02:00
Chocobozzz 5abc96fca2 Add logic to handle playlist in embed 2020-08-07 08:58:29 +02:00
Chocobozzz f0af38e696 Fix lint 2020-07-31 11:32:04 +02:00
Chocobozzz d28d13581f
Fix embed p2p warning localization 2020-07-20 17:05:08 +02:00
Chocobozzz 3aea8eb2e7
Try new worflow with french 2019-11-07 09:45:14 +01:00
Chocobozzz 2aaa1a3fdc
Use typescript paths in cli scripts too 2019-10-21 17:13:22 +02:00
Chocobozzz 830b4faff1 Add/update/delete/list my playlists 2019-03-18 11:17:59 +01:00
Chocobozzz 37c6bb3623
Translate copy magnet URI 2019-02-15 10:57:59 +01:00
Chocobozzz 0920929696 Add hls support on server 2019-02-11 09:13:02 +01:00
Chocobozzz ad3fa0c567
Add missing translations in embed template 2019-01-14 17:45:02 +01:00
Rigel Kent c9d5c64f98 replace fs by fs-extra to prevent EMFILE error 2018-08-27 16:03:57 +02:00
Chocobozzz 7e5f9f001d Add audit logs for video import 2018-08-06 11:19:16 +02:00
Chocobozzz 16f7022b06 Handle subtitles in player 2018-07-16 11:50:08 +02:00