Skip to content

Commit 3ace53c

Browse files
committed
Merge remote-tracking branch 'origin/develop' into feat/video-download-stats
2 parents 52f8f39 + fcb3d83 commit 3ace53c

826 files changed

Lines changed: 135567 additions & 100062 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dprint.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@
8383
"packages/tests/fixtures/**/*"
8484
],
8585
"plugins": [
86-
"https://plugins.dprint.dev/typescript-0.91.1.wasm",
86+
"https://plugins.dprint.dev/typescript-0.95.15.wasm",
8787
"https://plugins.dprint.dev/json-0.19.3.wasm",
8888
"https://plugins.dprint.dev/markdown-0.17.1.wasm",
8989
"https://plugins.dprint.dev/toml-0.6.2.wasm",
9090
"https://plugins.dprint.dev/g-plane/malva-v0.12.0.wasm",
91-
"https://plugins.dprint.dev/g-plane/markup_fmt-v0.24.1.wasm"
91+
"https://plugins.dprint.dev/g-plane/markup_fmt-v0.26.0.wasm"
9292
]
9393
}

.github/CONTRIBUTING.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,16 @@ More detailed documentation is available:
136136
* [Server code/architecture](https://docs.joinpeertube.org/contribute/architecture#server)
137137
* [Server development (adding a new feature...)](/support/doc/development/server.md)
138138

139+
### Embed only
140+
141+
The embed is a standalone application built using Vite.
142+
The generated files (HTML entrypoint and multiple JS and CSS files) are served by the Vite server (behind `localhost:5173/videos/embed/:videoUUID` or `localhost:5173/video-playlists/embed/:playlistUUID`).
143+
The following command will compile embed files and run the PeerTube server:
144+
145+
```sh
146+
npm run dev:embed
147+
```
148+
139149
### Client side
140150

141151
To develop on the client side:
@@ -145,33 +155,24 @@ npm run dev:client
145155
```
146156

147157
The API will listen on `localhost:9000` and the frontend on `localhost:3000`.
158+
Embed is also available on `localhost:5173`.
148159
Client files are automatically compiled on change, and the web browser will
149160
reload them automatically thanks to hot module replacement.
150161

151162
More detailed documentation is available:
152163
* [Client code/architecture](https://docs.joinpeertube.org/contribute/architecture#client)
153164

154-
155-
### Client and server side
165+
### Client with embed and server side
156166

157167
The API will listen on `localhost:9000` and the frontend on `localhost:3000`.
168+
Embed is also available on `localhost:5173`.
158169
File changes are automatically recompiled, injected in the web browser (no need to refresh manually)
159170
and the web server is automatically restarted.
160171

161172
```sh
162173
npm run dev
163174
```
164175

165-
### Embed
166-
167-
The embed is a standalone application built using Vite.
168-
The generated files (HTML entrypoint and multiple JS and CSS files) are served by the Vite server (behind `localhost:5173/videos/embed/:videoUUID` or `localhost:5173/video-playlists/embed/:playlistUUID`).
169-
The following command will compile embed files and run the PeerTube server:
170-
171-
```sh
172-
npm run dev:embed
173-
```
174-
175176
### RTL layout
176177

177178
To test RTL (right-to-left) layout using `ar` locale:

CHANGELOG.md

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,135 @@
11
# Changelog
22

3+
## v8.1.0-rc.1
4+
5+
### IMPORTANT NOTES
6+
7+
* You need to manually execute a migration script **after upgrading**, while PeerTube is running and the database migration is complete (`Migrations finished. New migration version schema: 1000` in PeerTube startup logs):
8+
* Classic installation: `cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-8.1.js`
9+
* Docker installation: `cd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.1.js`
10+
* Running [regenerate-thumbnails](https://docs.joinpeertube.org/maintain/tools#regenerate-video-thumbnails) and [prune-storage](https://docs.joinpeertube.org/maintain/tools#prune-filesystem-object-storage) scripts after the upgrade and migration script is highly recommended
11+
12+
### Maintenance
13+
14+
* Migrate to the `sharp` NodeJS dependency to process images. This is a native dependency that provides prebuilt binaries, but some systems (like FreeBSD) may require an additional step after PeerTube dependencies installation:
15+
* Install `sharp` dependencies: https://sharp.pixelplumbing.com/install/#building-from-source
16+
* Run `npm explore sharp -- npm run build` in `peertube-latest` directory
17+
* Merge the `previews` directory into the `thumbnails` directory. The migration script will automatically move files
18+
The `previews` directory and configuration are kept for compatibility reasons
19+
* The `cache` directory is no longer deleted at PeerTube startup, to keep files cached from the previous run
20+
21+
### Configuration
22+
23+
*This section is not exhaustive*
24+
25+
* **Important** Generate more thumbnail sizes for videos in `thumbnails.sizes`. We recommend admins apply the same settings
26+
* Update default object storage configuration to use different `prefix` values with the same `bucket_name` for each object type (`web_videos`, `user_exports`, etc.), so it is easier to add more object types in the future
27+
* Use the `lucide` player theme by default
28+
* `import.videos.http.force_ipv4` is now `true` by default to reduce rate limiting on some platforms
29+
* Add *On Primary* color configuration (`theme.customization.on_primary_color`) to choose the foreground color when the background color is *Primary*
30+
31+
### Docker
32+
33+
* Add `va-driver-all` to the PeerTube Docker image [#7346](https://github.com/Chocobozzz/PeerTube/pull/7346)
34+
35+
### Plugins/Themes/Embed/REST APIs
36+
37+
* REST API:
38+
* Deprecate `previewfile` when publishing a video. Use `thumbnailfile` instead
39+
* Deprecate `thumbnailPath` and `previewPath` `Video` fields. Use the `thumbnails` array instead
40+
* Deprecate the `thumbnailPath` `VideoPlaylist` field. Use the `thumbnails` array instead
41+
* Remove unused `fileUrl` from `UserExport` and `VideoSource`
42+
* Deprecate `/lazy-static/previews/:filename`. Use `/lazy-static/thumbnails/:filename` instead
43+
* Server plugin hooks (https://docs.joinpeertube.org/api/plugins):
44+
* Add `filter:feed.videos.list.result` [#7355](https://github.com/Chocobozzz/PeerTube/pull/7355)
45+
* Replace `torrentPath` with `torrentFilename` and `torrentStream` for remote torrents in `filter:api.download.torrent.allowed.result` context
46+
47+
### Features
48+
49+
* :tada: Allow uploaders to restrict domains where their video can be embedded :tada:
50+
* Add an admin config to ensure an optimized podcast audio file is transcoded
51+
* Support 3.0x playback speed for non-premium users :grin:
52+
* Optimize transcoding job queue:
53+
* Do not wait for all transcoding tasks to publish the video
54+
* Do not wait for all transcoding tasks to move video files in object storage
55+
* Lower priority on low video resolutions to avoid blocking video publication during bursts of uploads
56+
* More transcoding job parallelization
57+
* More reliable channel sync:
58+
* Reduce youtube-dl calls to reduce rate limiting
59+
* Handle cases where the video is not available/doesn't exist
60+
* Handle lives that are still being post-processed
61+
* Stop sync on get video info failure to retry at the same point next time
62+
* UX:
63+
* Support raw hex colors in color picker input [#7337](https://github.com/Chocobozzz/PeerTube/pull/7337)
64+
* Group notifications by date
65+
* Display blocked video information on the video manage page
66+
* Add a loading icon when updating the video
67+
* Improve the error message when the user password is too long
68+
* Add `g l` hotkey to go to the login page
69+
* Add ability to display video language on the `My Videos` page (column is hidden by default)
70+
* Improve video SEO
71+
* Support `png` and `webp` video thumbnails
72+
* Support `svg` logos for admins
73+
* Better email notification when a subscribed channel published a video [#7395](https://github.com/Chocobozzz/PeerTube/pull/7395)
74+
* Add compatibility with ActivityPub FEP-1b12 (used by Lemmy, PieFed, Mbin...)
75+
* Introduce a new cache system for remote thumbnails, storyboards, captions, and actor avatars/banners
76+
* Support Redis TLS connections [#7404](https://github.com/Chocobozzz/PeerTube/pull/7404)
77+
* Support PostgreSQL TLS connections [#7366](https://github.com/Chocobozzz/PeerTube/pull/7366)
78+
* Support path style requests for object storage
79+
* Improve channel collaboration:
80+
* An editor can now move a video they can manage to a channel they can manage (owner/editor)
81+
* An editor can send a *change ownership request* for a video they can manage
82+
* Editors can add videos to playlists of collaborated channels
83+
* Add quick actions (*Manage*, *Remove*) to the video dropdown for editors too
84+
* Performance:
85+
* Create video file torrents in a worker thread
86+
* Optimize videos list SQL query with complex sort (trending, hot, etc.)
87+
* When possible, send raw files directly instead of muxing when downloading a video
88+
* Improve podcast feed images compatibility with Apple Podcast
89+
90+
### Bug fixes
91+
92+
* Fix videos list inconsistencies when going back to that page
93+
* Do not display an empty details block in embed on error
94+
* Prevent incomplete segment reads for live streams [#7333](https://github.com/Chocobozzz/PeerTube/pull/7333)
95+
* Fix video download filename on Safari
96+
* Fix broken P2P when updating object storage base URL
97+
* Fix Redis sentinel support [#7365](https://github.com/Chocobozzz/PeerTube/pull/7365)
98+
* Correctly use header colors defined by the admin
99+
* Fix broken transcoding on remote runner when split video/audio is enabled
100+
* Fix server config not refreshing after admin settings save [#7413](https://github.com/Chocobozzz/PeerTube/pull/7413)
101+
* Prevent exception when the account is not loaded yet in the user moderation dropdown
102+
* Prevent black borders when embedding a video
103+
* Fix default scope defined by the admin when browsing videos
104+
* Force transcoding even if the video state is not compatible
105+
* Fix broken video studio task when updating video privacy at the same time
106+
* Reset selected rows when loading data in tables
107+
* Take into account channel owner video quota when an editor publishes a video to a collaborated channel
108+
* Fix watching a password protected video as an editor
109+
* Fix video metadata in `filter:api.video.upload.accept.result` context
110+
* Correctly take into account the user language filter when browsing videos
111+
* Fix `.ts` video file upload [#7458](https://github.com/Chocobozzz/PeerTube/pull/7458)
112+
* Fix `.mkv` video file upload on latest Chrome
113+
* Fix deleting all instance logo when deleting a specific logo
114+
* Fix getting unsupported Node.js from PATH with yt-dlp [#7468](https://github.com/Chocobozzz/PeerTube/pull/7468)
115+
116+
117+
118+
## v8.0.2
119+
120+
### IMPORTANT NOTES
121+
122+
* Follow v8.0.0 IMPORTANT NOTES if you upgrade from PeerTube <= v7.3.0
123+
124+
### Bug fixes
125+
126+
* Fix PostgreSQL CPU usage and broken PeerTube instance on instances with a many subscriptions or big federation
127+
* Fix login URL in registration email
128+
* Remove the trailing comma in the plugins `package.json` files that broke the update/installation process
129+
* Fix broken channel sync if private privacy is removed by a plugin
130+
* Fix restoring *My Videos* sort after a search
131+
132+
3133
## v8.0.1
4134

5135
### IMPORTANT NOTES

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ Feel free to reach out if you have any questions or ideas! :speech_balloon:
131131
:package: Create your own instance
132132
----------------------------------------------------------------
133133

134-
See the [production guide](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/production.md), which is the recommended way to install or upgrade PeerTube. For hardware requirements, see [Should I have a big server to run PeerTube?](https://joinpeertube.org/faq#should-i-have-a-big-server-to-run-peertube) in the FAQ.
134+
See the [production guide](https://docs.joinpeertube.org/install/any-os), which is the recommended way to install or upgrade PeerTube. For hardware requirements, see [Should I have a big server to run PeerTube?](https://joinpeertube.org/faq#should-i-have-a-big-server-to-run-peertube) in the FAQ.
135135

136136
See the [community packages](https://docs.joinpeertube.org/install/unofficial), which cover various platforms (including [YunoHost](https://install-app.yunohost.org/?app=peertube) and [Docker](https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/docker.md)).
137137

apps/peertube-cli/CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## v1.1.0
4+
5+
* Remove `previewfile` option (deprecated in PeerTube 8.1)
6+
* Migrate to `tsdown` to build the runner. The peertube-cli filename is now `peertube.mjs`
7+
38
## v1.0.3
49

5-
* Fix `util.isArray` deprecation warning
10+
* Fix `util.isArray` deprecation warning

apps/peertube-cli/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ npm run build:peertube-cli
3131

3232
```bash
3333
cd peertube-root
34-
node apps/peertube-cli/dist/peertube-cli.js --help
34+
node apps/peertube-cli/dist/peertube.js --help
3535
```
3636

3737
## Publish on NPM
3838

3939
```bash
4040
cd peertube-root
41-
(cd apps/peertube-cli && npm version patch) && npm run build:peertube-cli && (cd apps/peertube-cli && npm publish --access=public)
41+
(cd apps/peertube-cli && npm version patch) && npm run build:peertube-cli && (cd apps/peertube-cli && npm login && npm publish --access=public)
4242
```

apps/peertube-cli/package.json

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
{
22
"name": "@peertube/peertube-cli",
3-
"version": "1.0.3",
3+
"version": "1.1.0",
44
"type": "module",
5-
"main": "dist/peertube.js",
6-
"bin": "dist/peertube.js",
7-
"scripts": {},
5+
"bin": "dist/peertube.mjs",
86
"license": "AGPL-3.0",
7+
"scripts": {
8+
"build": "tsdown",
9+
"dev": "tsdown --watch"
10+
},
911
"private": false,
1012
"devDependencies": {
1113
"application-config": "^3.0.0",
12-
"cli-table3": "^0.6.0",
13-
"netrc-parser": "^3.1.6"
14+
"cli-table3": "^0.6.5",
15+
"netrc-parser": "^3.1.6",
16+
"tsdown": "0.21.0-beta.2"
1417
},
15-
"dependencies": {}
18+
"exports": {
19+
".": "./dist/peertube-runner.mjs"
20+
}
1621
}

apps/peertube-cli/scripts/build.js

Lines changed: 0 additions & 27 deletions
This file was deleted.

apps/peertube-cli/scripts/watch.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)