Commit Graph

250 Commits

Author SHA1 Message Date
Chocobozzz 863530b654
BigInt must be supported 2025-02-12 14:49:56 +01:00
Chocobozzz bb62408e81
Update browser stack tests 2025-02-11 10:25:43 +01:00
Chocobozzz c8b7980b22
Optimize player SVG 2025-02-11 09:16:25 +01:00
Chocobozzz fd8fb56c76
Fix error messages when updating the form 2025-02-11 08:41:52 +01:00
Chocobozzz 50b067f9cd
Separate player in dedicated build
* Separate player in a dedicated build, that we can control using vite.
   We had too many issues with Angular build system and we can now
   have the same build between the embed and the client. We can also
   embed SVG directly in the CSS
 * Upgrade p2p-media-loader to v2
 * Update internal infohashes to reflect this p2p-media-loader protocol
   change (they are updated at PeerTube startup)
 * Minimum required iOS version is now v14
2025-02-10 15:38:20 +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 61ca8f8d6e
Propagate CSS variables to embed too 2025-01-28 09:14:58 +01:00
Chocobozzz f80157eff8
Fix embed crash on telegram web browser 2024-12-16 09:45:31 +01:00
Chocobozzz 32303b40e3
Update package 2024-12-02 08:46:52 +01:00
Chocobozzz 2ebfe772ed
Fix build 2024-11-26 07:14:30 +01:00
Chocobozzz e56365e6af
Add get status button to test embed page 2024-11-25 10:39:08 +01:00
Chocobozzz f83674c143
Global client redesign
* Split "my library" into "video space (channels, videos...)" and "my library (playlists, history...)"
 * Split "admin" into "overview (users, videos...)", "moderation (abuses, blocks, registrations...)" and "settings (configuration, runners...)"
 * Reorganize the header and the left menu: account settings/notifications are now in the header
 * Add instance information context in the left menu
 * Merge dedicated videos pages for "recently added", "trending", "local videos" into a "browse videos" page that includes quick filters
 * Clean up entire CSS
 * Clean CSS variables so it's easier to theme PeerTube (some new variables fallback to old variables to limit currnet themes breakages)
 * Replace the current light theme into a new one (beige)
 * Add a dark (brown) theme (included in PeerTube core)
 * Fix accessibility issues with old light theme colors (white on orange button for example)
 * Redesign the left menu, the horizontal menu, form controls and buttons, "Discover videos" page and common video filters panel
 * Replace/remove/add some global icon
2024-11-23 14:44:49 +01:00
Chocobozzz 70ee15d3aa
Add ability to configure stun servers 2024-10-24 10:36:17 +02:00
Chocobozzz 1bca41366d
Improve caption edition 2024-09-25 16:06:36 +02:00
Chocobozzz 48a1c1c9a5
Update @peertube/embed-api package 2024-09-18 14:57:26 +02:00
Chocobozzz 853f311684
Rewording "waiting for live" message
It's confusing, especially for permanent lives
2024-09-05 15:17:32 +02:00
Chocobozzz dc151d3f51
Fix google bot detection 2024-08-19 17:02:29 +02:00
Chocobozzz c5b66526eb
Fix sass mixed declarations deprecation warning
https://sass-lang.com/documentation/breaking-changes/mixed-decls/
2024-08-19 09:35:41 +02:00
Chocobozzz 9a6e68d505
Isolated modules to true in client
Speeds up compilation
2024-08-16 10:52:01 +02:00
Chocobozzz af9f20d60c
Relax error logs with google bot 2024-08-14 15:10:59 +02:00
Chocobozzz 25684e837c
Fix client player error on fast restream 2024-08-09 10:00:34 +02:00
Chocobozzz efb27fb9d1
Prevent poster flickering 2024-08-08 08:38:58 +02:00
Chocobozzz eb86c3d407
Avoid crashing all embed on uncaught error 2024-08-06 16:34:58 +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 65fa18bace
More info on embed player crash 2024-08-01 10:14:26 +02:00
Chocobozzz de2c0de32a
Typo when catching play promise 2024-07-12 16:49:17 +02:00
Chocobozzz 539dd6888d
Correctly catch play promise 2024-07-12 15:43:35 +02:00
Chocobozzz 5d62c3c1cb
Add "auto-generated" caption info 2024-07-10 12:31:34 +02:00
Chocobozzz 564089d3e6
Fix E2E tests 2024-06-27 11:48:03 +02:00
Chocobozzz 9772280e99
Upgrade to angular 18 & vite 2024-06-26 08:33:54 +02:00
Chocobozzz 4f4d3adf73
Update apps dependencies 2024-06-21 14:49:17 +02:00
Chocobozzz 103505421f Fix embed with api enabled
Don't off all handlers if the second argument is `undefined`
2024-05-30 16:31:16 +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
kontrollanten 8624325523 feat(client/plugins): add getUser to helpers
Let plugins access the user object.

closes #6355
2024-05-17 10:50:52 +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 b2dada8974
Update player embed api package version 2024-04-05 14:17:24 +02:00
Chocobozzz 08cce23535
Prefer innerText instead of innerHTML
The previous implementation can lead to XSS injection
2024-04-04 16:28:22 +02:00
Chocobozzz bb21e0b3c8
Fix embed preview ratio 2024-02-27 16:43:01 +01:00
Chocobozzz dfe98695d6
Use server video ratio if available 2024-02-27 16:24:48 +01:00
Chocobozzz a172cadee4
Remove password autocomplete in embed
Causes issues when the embed is in an iframe, and the parent page has a
password input if the user uses the web browser autofill
2024-02-27 09:04:13 +01:00
Chocobozzz fe37e5232b
Add ability to customize views/playback interval 2023-12-20 10:55:47 +01:00
Chocobozzz b13460a10a
Add ability to set password from embed API 2023-11-23 08:14:54 +01:00
Chocobozzz a74fe0b69a
Remove unused polyfill
Only needed by ios versions we don't support anymore
2023-10-20 16:00:53 +02: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 d299afeb2c
Fix lint 2023-06-29 10:18:20 +02:00
Chocobozzz 638a295021
Support storyboards in embed 2023-06-29 10:17:59 +02:00