Commit Graph

78 Commits (8e0144a089b212c3151c7ea9c9ba73bb8c35e7ef)

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 166311358d
Add is locale support 2023-02-13 10:22:51 +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 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 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 66175ae8b4
Support nn and nb locales 2021-12-13 17:06:44 +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 5638df0895
Update xliffmerge 2021-11-15 15:56:58 +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 5d221dcda4
Fix deprecated i18n option 2020-12-14 09:26:21 +01:00
Chocobozzz 5f8327c507
Update i18n with new player keys 2020-12-04 16:37:21 +01:00
Chocobozzz c5ce27f864
Regen translations 2020-11-25 16:54:59 +01:00
Chocobozzz 2245e3df8c
Update scripts to update translations 2020-11-25 16:52:02 +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 ed78004086
Update angular to fix localize extraction bug 2020-08-25 10:48:35 +02:00
Chocobozzz 49a56c7203
Use update i18n command instead of generate 2020-08-24 09:35:27 +02: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 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