Commit Graph

150 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
121a617bec Ensure we use the correct player video el 2024-05-30 16:31:16 +02:00
Kent Anderson
58f156e748 feat-1322 Version 3 without server side code changes 2024-05-30 16:31:16 +02:00
Chocobozzz
d05af753bf Fix embed api on ios
video.js clones the video element so we must rely on the player wrapper
instead of the video element
2024-05-16 09:45:55 +02:00
Chocobozzz
b13460a10a Add ability to set password from embed API 2023-11-23 08:14:54 +01:00
Chocobozzz
77b70702d2 Add video chapters support 2023-08-28 16:17:31 +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
8953f055c8 Rename player embed api 2023-07-10 16:08:53 +02:00
Chocobozzz
a1bd2b77d9 Remove webtorrent support from client 2023-07-10 16:08:28 +02:00
Chocobozzz
638a295021 Support storyboards in embed 2023-06-29 10:17:59 +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
5490930428 Remove suppressImplicitAnyIndexErrors
It's deprecated by TS
2023-05-24 16:56:05 +02:00
Chocobozzz
7dcd45a9a2 Don't not autoplay live without autoplay setting 2022-12-14 14:06:12 +01:00
Chocobozzz
59a643aa5c Force autoplay when live starts
Using the mute
2022-11-15 11:57:49 +01:00
Chocobozzz
c241947630 Correctly terminate an ended live 2022-11-15 10:50:57 +01:00
Chocobozzz
d91021548e Fix embed api with playlists 2022-11-14 10:26:41 +01:00
Chocobozzz
0177101284 Fix tests 2022-10-24 14:48:24 +02:00
Chocobozzz
3545e72c68 Put private videos under a specific subdirectory 2022-10-24 14:48:24 +02:00
Chocobozzz
b1934b7e9c Fix broken player on live reload 2022-10-24 10:32:35 +02:00
Chocobozzz
42b4063699 Add ability for client to create server logs 2022-07-18 11:37:18 +02:00
Chocobozzz
bd2b51be4b Put instance name in embed button 2022-06-28 14:11:10 +02:00
Chocobozzz
d3f4689bde Add live autostart/messages in embed 2022-05-31 14:24:07 +02:00
Chocobozzz
f1a0f3b701 Refactor embed 2022-05-31 10:39:56 +02:00
Chocobozzz
60f013e103 Add control bar option for peertube player 2022-05-20 09:59:53 +02:00
Chocobozzz
5302f77d09 Support more plugin helpers in embed 2022-03-23 14:06:43 +01:00
Chocobozzz
57d6503286 Reorganize player files 2022-03-14 14:36:35 +01:00
Chocobozzz
f443a74649 Add latency setting support 2022-03-09 09:23:10 +01:00
Chocobozzz
01dd04cd5a Display avatar in embed poster 2022-03-08 16:36:08 +01:00
Chocobozzz
c4207f978e Fast forward on HLS decode error 2022-02-02 11:26:18 +01:00
Chocobozzz
8530211822 Add ability to disable p2p in embed with URL 2021-12-16 10:08:55 +01:00
Chocobozzz
b65de1be4d Use different p2p policy for embeds and webapp 2021-12-16 10:08:55 +01:00
Chocobozzz
a9bfa85d2c Add ability for admins to set default p2p policy 2021-12-16 10:08:55 +01:00
Chocobozzz
d63e6d4604 Add ability for plugins to register client routes 2021-12-10 15:01:12 +01:00
Chocobozzz
5196817c5d Fix privacy concern for remote videos 2021-10-21 09:24:22 +02:00
Chocobozzz
c21a0aa855 Display a message in embed on unsupported web browser 2021-09-02 09:31:07 +02:00
Chocobozzz
98ab5dc810 Remove useless async 2021-08-26 10:01:42 +02:00
Chocobozzz
e5a818d3cb Speed up client lint 2021-08-18 10:44:16 +02:00
Chocobozzz
9df52d660f Migrate client to eslint 2021-08-18 08:35:06 +02:00
Chocobozzz
200eaf5152 Remove thumbnail flash for autoplay 2021-08-02 11:46:11 +02:00
Chocobozzz
29837f8885 Add ability to search by host in server 2021-07-27 17:10:52 +02:00
Chocobozzz
c0e8b12e7f Refactor requests 2021-07-20 15:27:18 +02:00
Chocobozzz
b41acd2d4d Remove unused import 2021-06-14 15:27:26 +02:00
kontrollanten
72f611ca15 add client hook filter:videojs.options
closes #4086
2021-06-14 13:35:48 +02:00
John Livingston
9777fe9eeb Adding frontend peertubeHelpers.getBaseRouterRoute. (#4153)
* Adding frontend peertubeHelpers.getBaseRouterRoute.

* Fix doctoc.
2021-06-03 12:28:26 +02:00
Chocobozzz
e030bfb59d Refactor server errors handler 2021-06-02 18:15:41 +02:00
Chocobozzz
aea0b0e7cd Inject server config in HTML 2021-05-14 13:37:23 +02:00
Chocobozzz
0f31933406 Add ability to hide plugin form fields 2021-04-22 14:35:49 +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
3c47fa3bc0 Add ability to hide plugin settings 2021-04-09 13:50:31 +02:00