Releases: Chocobozzz/PeerTube
Releases · Chocobozzz/PeerTube
v2.4.0
Since v2.3.0
IMPORTANT NOTES
- The minimum ffmpeg version required is now 4.1
- Deprecate static routes that will be removed in 3.0 (you may not have to do anything if you used paths returned by the video REST API):
/static/avatars/
: use/lazy-static/avatars/
instead/static/previews/
: use/lazy-static/previews/
instead/static/video-captions/
: use/lazy-static/video-captions/
instead
- Use
playlistPosition
URL parameter for playlists instead ofvideoId
to set the current playlist position
Maintenance
- Better error message on PostgreSQL connection error
- Add
ssl
option support for PostgreSQL connection
Official PeerTube plugins
Plugins/Themes/Embed API
- Add embed API (https://docs.joinpeertube.org/#/api-embed-player):
playNextVideo
methodplayPreviousVideo
methodgetCurrentPosition
method
- Embed URL parameters
- Add ability to disable PeerTube link in embed using an URL param (
peertubeLink=0
)
- Add ability to disable PeerTube link in embed using an URL param (
- Add plugins support in embed
- Add client plugin hooks (https://docs.joinpeertube.org/#/api-plugins):
action:embed.player.loaded
(for embed)
- Add custom fields in video update/upload form using
registerVideoField
(https://docs.joinpeertube.org/#/contribute-plugins?id=add-custom-fields-to-video-form)
Features
- Moderation:
- 🎉 Add ability to report comments and accounts
- 🎉 Add messaging system between local reporter of an abuse and moderators so they can easily communicate
- 🎉 Users can now see their abuse reports, and have notifications when an abuse state changed (accepted/rejected) or when moderators added a new message
- Add embed to block list details @rigelk in #2926
- Video playlists:
- 🎉 Add ability to embed playlists
- 🎉 Add ability to put a video multiple times in a playlist (with different startAt/stopAt parameters or not)
- Video comments:
- Add uni-code emojis native display in comments @Kimsible in #3046
- Add delete and re-draft action on a comment that doesn't have replies @Kimsible in #3046
- Hide deleted comments when there aren't replies @Kimsible in #3046
- Accessibility/UI:
- Disable vertical scroll instead of hide on desktop browsers @Kimsible in #2962
- Update my-account sub-menus icons @Kimsible in #2977
- Improve navigation sub-menu and tabs effects @Kimsible in #2971
- Hide generic channel display name and avatar on watch view @Kimsible in #2988
- Display user quota progress bars above upload form @Kimsible in #2981
- Improve mobile accessibility by moving table action cells on the left @Kimsible in #2980
- Directly display download button in watch page on logged-out users @rigelk in #2919
- Improve users list table display in admin (add badge, progress bar) @rigelk in #2991
- Add dynamic column display for users list table in admin @rigelk in #2991
- Add anchor links to about/instance @Kimsible in #3064
- Improve select components @rigelk in #3035
- Add content overlay for opened menu on touchscreens @Kimsible in #3088
- Add alert and hide upload view when no upload is possible @Kimsible in #2966
- Allow sorting notifications by unread/newest @rigelk
- Add open-graph and twitter-card metas for accounts, video-channels and playlists urls @Kimsible in #2996
- Add channel name to create-user admin form @Kimsible in #2984
- Support Kabile for video languages/captions
- Translate page titles
- Add
.ac3
,.aac
,.qt
,.mqv
,.3gpp
,.3gpp2
,.m1v
,.mpg
,.mpe
,.vob
extensions support on upload if transcoding is enabled @rigelk - Performance:
- Improved front-end performance by reducing localized bundle sizes (~ 2MB instead of 3MB for the homepage)
- Optimize comments RSS feed SQL query
- Optimize default sort SQL query when listing videos
Bug fixes
- Handle webp images from youtube-dl
- Fix embed p2p warning localization
- iOS fixes:
- Fix HLS only videos playback
- Fix fullscreen
- Fix iPad desktop mode playback
- Try to fix autoplay with iOS/Safari
- Fix anonymous user theme
- Fix player hotkeys after mouse interaction
- Fix resolution transcoding for portrait videos
- Do not display videojs poster when video is starting to avoid blinking effect @Kimsible in #3056
- Correctly scroll to anchors in my-settings @Kimsible in #3032
- Forbid reset password links reuse
- Fix low default resolution on webtorrent videos
- Fix instance features table responsive in about page @test2a in #3090
- Fix playlist element deletion/edition in my account
- Fix video playlist playback resuming
- Correctly display error message for Internet Explorer
- Fix videos RSS feed when HLS only is enabled
- Add site_name to opengraph tags
Since v2.4.0-rc.1
Bug fixes
- Add site_name to opengraph tags
- Fix privacy/channel select on upload
v2.4.0-rc.1
IMPORTANT NOTES
- The minimum ffmpeg version required is now 4.1
- Deprecate static routes that will be removed in 3.0 (you may not have to do anything if you used paths returned by the video REST API):
/static/avatars/
: use/lazy-static/avatars/
instead/static/previews/
: use/lazy-static/previews/
instead/static/video-captions/
: use/lazy-static/video-captions/
instead
- Use
playlistPosition
URL parameter for playlists instead ofvideoId
to set the current playlist position
Maintenance
- Better error message on PostgreSQL connection error
- Add
ssl
option support for PostgreSQL connection
Official PeerTube plugins
Plugins/Themes/Embed API
- Add embed API (https://docs.joinpeertube.org/#/api-embed-player):
playNextVideo
methodplayPreviousVideo
methodgetCurrentPosition
method
- Embed URL parameters
- Add ability to disable PeerTube link in embed using an URL param (
peertubeLink=0
)
- Add ability to disable PeerTube link in embed using an URL param (
- Add plugins support in embed
- Add client plugin hooks (https://docs.joinpeertube.org/#/api-plugins):
action:embed.player.loaded
(for embed)
- Add custom fields in video update/upload form using
registerVideoField
(https://docs.joinpeertube.org/#/contribute-plugins?id=add-custom-fields-to-video-form)
Features
- Moderation:
- 🎉 Add ability to report comments and accounts
- 🎉 Add messaging system between local reporter of an abuse and moderators so they can easily communicate
- 🎉 Users can now see their abuse reports, and have notifications when an abuse state changed (accepted/rejected) or when moderators added a new message
- Add embed to block list details @rigelk in #2926
- Video playlists:
- 🎉 Add ability to embed playlists
- 🎉 Add ability to put a video multiple times in a playlist (with different startAt/stopAt parameters or not)
- Video comments:
- Add uni-code emojis native display in comments @Kimsible in #3046
- Add delete and re-draft action on a comment that doesn't have replies @Kimsible in #3046
- Hide deleted comments when there aren't replies @Kimsible in #3046
- Accessibility/UI:
- Disable vertical scroll instead of hide on desktop browsers @Kimsible in #2962
- Update my-account sub-menus icons @Kimsible in #2977
- Improve navigation sub-menu and tabs effects @Kimsible in #2971
- Hide generic channel display name and avatar on watch view @Kimsible in #2988
- Display user quota progress bars above upload form @Kimsible in #2981
- Improve mobile accessibility by moving table action cells on the left @Kimsible in #2980
- Directly display download button in watch page on logged-out users @rigelk in #2919
- Improve users list table display in admin (add badge, progress bar) @rigelk in #2991
- Add dynamic column display for users list table in admin @rigelk in #2991
- Add anchor links to about/instance @Kimsible in #3064
- Improve select components @rigelk in #3035
- Add content overlay for opened menu on touchscreens @Kimsible in #3088
- Add alert and hide upload view when no upload is possible @Kimsible in #2966
- Allow sorting notifications by unread/newest @rigelk
- Add open-graph and twitter-card metas for accounts, video-channels and playlists urls @Kimsible in #2996
- Add channel name to create-user admin form @Kimsible in #2984
- Support Kabile for video languages/captions
- Translate page titles
- Add
.ac3
,.aac
,.qt
,.mqv
,.3gpp
,.3gpp2
,.m1v
,.mpg
,.mpe
,.vob
extensions support on upload if transcoding is enabled @rigelk - Performance:
- Improved front-end performance by reducing localized bundle sizes (~ 2MB instead of 3MB for the homepage)
- Optimize comments RSS feed SQL query
- Optimize default sort SQL query when listing videos
Bug fixes
- Handle webp images from youtube-dl
- Fix embed p2p warning localization
- iOS fixes:
- Fix HLS only videos playback
- Fix fullscreen
- Fix iPad desktop mode playback
- Try to fix autoplay with iOS/Safari
- Fix anonymous user theme
- Fix player hotkeys after mouse interaction
- Fix resolution transcoding for portrait videos
- Do not display videojs poster when video is starting to avoid blinking effect @Kimsible in #3056
- Correctly scroll to anchors in my-settings @Kimsible in #3032
- Forbid reset password links reuse
- Fix low default resolution on webtorrent videos
- Fix instance features table responsive in about page @test2a in #3090
- Fix playlist element deletion/edition in my account
- Fix video playlist playback resuming
- Correctly display error message for Internet Explorer
- Fix videos RSS feed when HLS only is enabled
v2.3.0
Since v2.2.0
IMPORTANT NOTES
- Add
client_overrides
directory in configuration file. You must configure it in your production.yaml - Deprecate
/videos/abuse
endpoint.
A new endpoint to report videos will be created in PeerTube 2.4 and will also allow to report accounts and comments (/videos/abuse
will be removed in 3.0) - Renamed videos blacklist feature to videos blocks/blocklist
Documentation
- Add feeds routes to the openapi spec @rigelk
- Add notifications routes to the openapi spec @rigelk
- Add redundancy routes to the openapi spec @rigelk
- Add plugins routes to the openapi spec @rigelk
- Add examples, descriptions and missing filters for abuses routes in the openapi spec @rigelk
- Update CentOS insutructions in dependencies.md @cgarwood82 in 2904
Maintenance
- Switched image processing library from native dependency
sharp
to pure JS implementationjimp
. Admins don't have to compilesharp
anymore andjimp
is lighter - Provide specific engine boundaries for NodeJS and Yarn @rigelk in 0c4bacb
- Add ability to set
database.name
config option @gramakri in #2898
Docker
- Fix
POSTGRES
env variables in docker-compose (@kimsible in #2538) - Fix OpenDKIM permissions in docker-compose setup @kimsible in #2868
Official PeerTube plugins
Plugins/Themes/Embed API
- Add ability to override client assets: logo - favicon - PWA icons - PWA manifest name and description @kimsible in #2897
Features
- 🎉 Add global search support (has to be explicitely enabled by admins)
- 🎉 Add ability for admins to display a banner on their instance
- 🎉 Support Vietnamese and Kabyle languages. Also re-establish Occitan language locale despite lack of support in Angular
- Federation:
- Make federation of unlisted videos an instance-level server preference @Tak in #2802
- Sort ActivityPub video object files by resolution in descending order (fix issue with Pleroma)
- Send complete video description in ActivityPub video objects
- Moderation:
- Add ability to bulk delete comments of an account
- Add ability to mute accounts from video miniature
- Improve report modal: @rigelk in #2842
- Add ability to provide predefined reasons
- Embed of the video in the modal
- Add ability to set a startAt parameter
- Accessibility:
- Add lang attribute in languages list menu @Pandoraaa in #2832
- Add aria-hidden to non-descriptive icons @Pandoraaa in #2844
- Change focus color instead of opacity of video play button @Pandoraaa in #2845
- Add explicit step and aria-current attribute in register form @Pandoraaa in #2861
- Add scope tags and aria-labels in instance features table @Pandoraaa in #2866
- Add keyboard navigation in video watch page buttons @Pandoraaa in #2854 with @rigelk
- Replaced softies icons by feather icons @rigelk
- Support player hotkeys when it is not focused
- Improve video miniature grids to fill the space as much as possible @rigelk
- Add video miniature dropdown in Discover page
- Add channel information in My videos page
- Add videos count per channel in My channels page
- Improve channel deletion warning by explaining how many videos will be deleted
- Simplify navigation within most admin menus @rigelk
- Tracker:
- Log IP requesting unknown infoHash @JohnXLivingston in
212e17a - Block IP of infohash spammers db48de8
- Log IP requesting unknown infoHash @JohnXLivingston in
- Allow limiting video-comments rss feeds to an account or video channel @rigelk in 00494d6
Bug fixes
- Fix default anonymous theme that should use instance default
- Fix configuration form issue when auto follow index URL is empty
- Fix URL import of some videos
- Fix quota representation in profile settings @rigelk
- Exclude 0p from auto webtorrent quality
- Fix scroll on some pages with hash in URL
- Fix search filter in video reports
- Fix anonymous user nsfw policy
- Don't cache embed HTML page resulting in broken embed after a PeerTube upgrade
- Accessibility:
- Add lang in document to match current locale @rigelk in #2822
- Prevent duplicate id attributes for
.svg
@rigelk in #2822 - Fix headings order or add missing ones @Pandoraaa in #2871
- Remove uneccessary details to link titles @Pandoraaa in #2879
- Fix accessibility action buttons and display on imports and followers list @kimsible in #2986
- Fix iOS player with HLS-only videos
- Fix action buttons selection mode styles @kimsible in #2983
Since v2.3.0-rc.1
Bug fixes
- Fix broken locales
- Fix embed URL in share modal
- Handle webp images from youtube-dl
- Fix iOS player with HLS-only videos
- Fix popup issues on video miniature click when searching on the global index
- Fix username in password-reset email @kimsible in #2960
- Fix maximized icon padding in markdown textarea @kimsible in #2963
- Fix action buttons selection mode styles @kimsible in #2983
- Fix user creation in admin @kimsible in #2985
- Fix accessibility action buttons and display on imports and followers list @kimsible in #2986
v2.3.0-rc.1
IMPORTANT NOTES
- Deprecate
/videos/abuse
endpoint.
A new endpoint to report videos will be created in PeerTube 2.4 and will also allow to report accounts and comments (/videos/abuse
will be removed in 3.0) - Renamed videos blacklist feature to videos blocks/blocklist
Documentation
- Add feeds routes to the openapi spec @rigelk
- Add notifications routes to the openapi spec @rigelk
- Add redundancy routes to the openapi spec @rigelk
- Add plugins routes to the openapi spec @rigelk
- Add examples, descriptions and missing filters for abuses routes in the openapi spec @rigelk
- Update CentOS insutructions in dependencies.md @cgarwood82 in 2904
Maintenance
- Switched image processing library from native dependency
sharp
to pure JS implementationjimp
. Admins don't have to compilesharp
anymore andjimp
is lighter - Provide specific engine boundaries for NodeJS and Yarn @rigelk in 0c4bacb
- Add ability to set
database.name
config option @gramakri in #2898
Docker
- Fix
POSTGRES
env variables in docker-compose (@kimsible in #2538) - Fix OpenDKIM permissions in docker-compose setup @kimsible in #2868
Official PeerTube plugins
Features
- 🎉 Add global search support (has to be explicitely enabled by admins)
- 🎉 Add ability for admins to display a banner on their instance
- 🎉 Support Vietnamese and Kabyle languages. Also re-establish Occitan language locale despite lack of support in Angular
- Federation:
- Make federation of unlisted videos an instance-level server preference @Tak in #2802
- Sort ActivityPub video object files by resolution in descending order (fix issue with Pleroma)
- Send complete video description in ActivityPub video objects
- Moderation:
- Add ability to bulk delete comments of an account
- Add ability to mute accounts from video miniature
- Improve report modal: @rigelk in #2842
- Add ability to provide predefined reasons
- Embed of the video in the modal
- Add ability to set a startAt parameter
- Accessibility:
- Add lang attribute in languages list menu @Pandoraaa in #2832
- Add aria-hidden to non-descriptive icons @Pandoraaa in #2844
- Change focus color instead of opacity of video play button @Pandoraaa in #2845
- Add explicit step and aria-current attribute in register form @Pandoraaa in #2861
- Add scope tags and aria-labels in instance features table @Pandoraaa in #2866
- Add keyboard navigation in video watch page buttons @Pandoraaa in #2854 with @rigelk
- Replaced softies icons by feather icons @rigelk
- Support player hotkeys when it is not focused
- Improve video miniature grids to fill the space as much as possible @rigelk
- Add video miniature dropdown in Discover page
- Add channel information in My videos page
- Add videos count per channel in My channels page
- Improve channel deletion warning by explaining how many videos will be deleted
- Simplify navigation within most admin menus @rigelk
- Tracker:
- Log IP requesting unknown infoHash @JohnXLivingston in
212e17a - Block IP of infohash spammers db48de8
- Log IP requesting unknown infoHash @JohnXLivingston in
- Allow limiting video-comments rss feeds to an account or video channel @rigelk in 00494d6
Bug fixes
- Fix default anonymous theme that should use instance default
- Fix configuration form issue when auto follow index URL is empty
- Fix URL import of some videos
- Fix quota representation in profile settings @rigelk
- Exclude 0p from auto webtorrent quality
- Fix scroll on some pages with hash in URL
- Fix search filter in video reports
- Fix anonymous user nsfw policy
- Don't cache embed HTML page resulting in broken embed after a PeerTube upgrade
- Accessibility:
- Add lang in document to match current locale @rigelk in #2822
- Prevent duplicate id attributes for
.svg
@rigelk in #2822 - Fix headings order or add missing ones @Pandoraaa in #2871
- Remove uneccessary details to link titles @Pandoraaa in #2879
v2.2.0
Since v2.1.0
IMPORTANT NOTES
- /!\ VERY IMPORTANT /!\ We added a unique index on actors usernames to fix some federation bugs.
Please check now if you have conflicts:- Go inside your database using
sudo -u postgres psql peertube_prod
and runselect "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) > 1;
- If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
The updated actors could have some federations issues
- Go inside your database using
- Changed
auto_follow_index
setting configuration: you now have to use the complete URL inindex_url
.
If you used the default one, you now need to usehttps://instances.joinpeertube.org/api/v1/instances/hosts
.
This way, you can also use a direct raw URL (Gitlab, Github, pastebin, etc.) using a simple text format and easily maintain small communities or instance recommendation lists. - PeerTube requires NodeJS v10 or v12
CLI tools
- Add redundancy CLI: https://docs.joinpeertube.org/#/maintain-tools?id=peertube-redundancyjs
- Add ability to pass remaining options to youtube-dl binary in peertube-import script (@drzraf)
Docker
- Important Fix HLS storage configuration (@xcffl): https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/production.yaml#L48
- Add DKIM support to Docker (@kimsible)
Maintenance
- Add nginx configuration to redirect videos to an S3 bucket (@rigelk) and update of the corresponding documentation.
Plugins/Themes/Embed API
- Add embed API (https://docs.joinpeertube.org/#/api-embed-player):
playbackState
can beended
playbackStatusUpdate
has aduration
fieldsetCaption
andgetCaptions
methods
- Add client plugin hooks (https://docs.joinpeertube.org/#/api-plugins):
action:login.init
action:video-watch.video-threads.loaded
action:video-watch.video-thread-replies.loaded
(@ipbc-dev)
- Add server plugin hooks (https://docs.joinpeertube.org/#/api-plugins):
filter:api.video.pre-import-url.accept.result
filter:api.video.pre-import-torrent.accept.result
filter:api.video.post-import-url.accept.result
filter:api.video.post-import-torrent.accept.result
- Add server helpers:
database.query
to do SQL queriesvideos.removeVideo
config.getWebserverUrl
moderation.blockServer
,moderation.unblockServer
,moderation.blockAccount
,moderation.unblockAccount
,moderation.blacklistVideo
,moderation.unblacklistVideo
- Add client helpers:
- Add ability for plugins to define custom routes
- Add ability for plugins to remove video/playlist privacies
- Add ability for plugins to support additional auth methods
- Add
onSettingsChange
support
Official PeerTube plugins
Features
- 🎉 Add HTML support in PeerTube emails, improve text-only version (@rigelk)
- 🎉 Add settings panel for anonymous users so they can change NSFW/P2P/autoplay/displayed videos policy (@rigelk)
- 🎉 Improve redundancy management:
- Add quick action on video miniature to mirror a specific video using the web interface
- Add admin dashboard to list remote and local redundancies
- Add ability for admins to define remote redundancies policy (accept/reject)
- 🎉 Many responsive & UI improvements:
- Add maximized mode to markdown textarea (@kimsible)
- Detect and prevent sub menu overflow on small screens using a dropdown or a modal (@rigelk)
- Use a typeahead component for the search bar (@rigelk)
- Use a modal instead of a dropdown menu in small/mobile views (@kimsible)
- Improve display of accounts and channel pages on small and medium screens (@rigelk)
- Improve forms layout (@rigelk)
- Replace helpers icons with descriptions in admin configuration (@rigelk)
- Improve tables on mobile devices to prevent layout breakage (@kimsible)
- Fix multiple broken views on small screens (@kimsible)
- Make video add tabs scrollable on small devices (@kimsible)
- Better use of space and icons in the plugin administration interface (@rigelk)
- Restyle toast notifications to tone down colors (@rigelk)
- Add/move links at the bottom of the left menu (@rigelk)
- Improve avatar upload UI (@rigelk)
- Use progress bars for quota used in my account (@rigelk)
- Add variable pagination size to all tables (@rigelk)
- Add empty states to all tables (@rigelk)
- Add generic text filter to all admin tables (@rigelk)
- Fix
z-index
for tooltips, modals and their button to prevent overlaps (@rigelk) - And many others!
- 🎉 Improve video abuses admin table (@rigelk):
- Add in-text specific search filters
- Reports can be linked to directly
- Rich reporter field
- Add video thumbnail with abuse count for the video and position of the abuse in that list
- Expand row to see more information about the video, the reporter and the reportee
- Add many actions (on the video, on the reporter)
- Don't remove a report when a video is deleted
- Add information on a video abuse within its notification email (@rigelk)
- Add ability for video owners to delete comments
- Add filter inputs for blacklisted videos and muted accounts/servers (@rigelk)
- Video import improvements:
- Support WMA and WAV audio files upload
- Support drag and drop for video upload/torrent import (@rigelk)
- Add video file metadata to download modal (@rigelk)
- Add views stats for channels (@rigelk)
- Add more information about the user in the edit form (@rigelk)
- Server optimizations:
- Add cache for some immutable models
- Don't refresh videos when processing a view
- Optimize view endpoint
- Completely rewritten SQL query to list videos
- Optimize SQL request when broadcasting an activity
- Support infinite scrolling in the discover page
- Add ability for admins to create a user without a password. PeerTube will send a reset password link to the user (@JohnXLivingston)
- Improve embed title background opacity
- Add origin instance URL in watch page
- Clearer description of advanced search options
- Always copy full actor handle in video channels view (@rigelk)
- Add
sendmail
support (@immae) tosmtp
configuration - Support
rel="me"
links in markdown - Use
originallyPublishedAt
from body on import if it exists - Sort outbox by DESC createdAt order
- Increase video comment max length limit
Bug fixes
- Update default user theme to
instance-default
(Jorge Silva) - Fix user dropdown menu with long texts (@rigelk)
- Fix load more comments on infinite scroll (@ipbc-dev)
- Fix CSP issue on WebFinger service (@ZanyMonk)
- Fix federation with Pleroma
- Fix Safari and iOS video play
- Fix broken HLS player on old Edge
- Fix running HLS transcoding on existing HLS video
- Fix user role edition
- Fix video duration display
- Fix error when adding a video in a playlist that does not have a thumbnail
- Fix internal video display in playlists
- Fix add comment in threads with deleted comments
- Fix video codec in HLS playlist resulting in a broken video
- Fix torrent import on Windows
- Respect browser autoplay policy: don't autoplay videos in mute mode
- Fix playlist videos autoplay/next play (@rigelk)
- Fix admin table column invalid sort error
- Fix outbox crawli...
v2.2.0-rc.1
IMPORTANT NOTES
- /!\ VERY IMPORTANT /!\ We added a unique index on actors usernames to fix some federation bugs.
Please check now if you have conflicts:- Go inside your database using
sudo -u postgres psql peertube_prod
and runselect "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) > 1;
- If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
The updated actors could have some federations issues
- Go inside your database using
- Changed
auto_follow_index
setting configuration: you now have to use the complete URL inindex_url
.
If you used the default one, you now need to usehttps://instances.joinpeertube.org/api/v1/instances/hosts
.
This way, you can also use a direct raw URL (Gitlab, Github, pastebin, etc.) using a simple text format and easily maintain small communities or instance recommendation lists. - PeerTube requires NodeJS v10 or v12
CLI tools
- Add redundancy CLI: https://docs.joinpeertube.org/#/maintain-tools?id=peertube-redundancyjs
- Add ability to pass remaining options to youtube-dl binary in peertube-import script (@drzraf)
Docker
- Important Fix HLS storage configuration (@xcffl): https://github.com/Chocobozzz/PeerTube/blob/develop/support/docker/production/config/production.yaml#L48
- Add DKIM support to Docker (@kimsible)
Maintenance
- Add nginx configuration to redirect videos to an S3 bucket (@rigelk) and update of the corresponding documentation.
Plugins/Themes/Embed API
- Add embed API (https://docs.joinpeertube.org/#/api-embed-player):
playbackState
can beended
playbackStatusUpdate
has aduration
fieldsetCaption
andgetCaptions
methods
- Add client plugin hooks (https://docs.joinpeertube.org/#/api-plugins):
action:login.init
action:video-watch.video-threads.loaded
action:video-watch.video-thread-replies.loaded
(@ipbc-dev)
- Add server plugin hooks (https://docs.joinpeertube.org/#/api-plugins):
filter:api.video.pre-import-url.accept.result
filter:api.video.pre-import-torrent.accept.result
filter:api.video.post-import-url.accept.result
filter:api.video.post-import-torrent.accept.result
- Add server helpers:
database.query
to do SQL queriesvideos.removeVideo
config.getWebserverUrl
moderation.blockServer
,moderation.unblockServer
,moderation.blockAccount
,moderation.unblockAccount
,moderation.blacklistVideo
,moderation.unblacklistVideo
- Add client helpers:
- Add ability for plugins to define custom routes
- Add ability for plugins to remove video/playlist privacies
- Add ability for plugins to support additional auth methods
- Add
onSettingsChange
support
Official PeerTube plugins
Features
- 🎉 Add HTML support in PeerTube emails, improve text-only version (@rigelk)
- 🎉 Add settings panel for anonymous users so they can change NSFW/P2P/autoplay/displayed videos policy (@rigelk)
- 🎉 Improve redundancy management:
- Add quick action on video miniature to mirror a specific video using the web interface
- Add admin dashboard to list remote and local redundancies
- Add ability for admins to define remote redundancies policy (accept/reject)
- 🎉 Many responsive & UI improvements:
- Add maximized mode to markdown textarea (@kimsible)
- Detect and prevent sub menu overflow on small screens using a dropdown or a modal (@rigelk)
- Use a typeahead component for the search bar (@rigelk)
- Use a modal instead of a dropdown menu in small/mobile views (@kimsible)
- Improve display of accounts and channel pages on small and medium screens (@rigelk)
- Improve forms layout (@rigelk)
- Replace helpers icons with descriptions in admin configuration (@rigelk)
- Improve tables on mobile devices to prevent layout breakage (@kimsible)
- Fix multiple broken views on small screens (@kimsible)
- Make video add tabs scrollable on small devices (@kimsible)
- Better use of space and icons in the plugin administration interface (@rigelk)
- Restyle toast notifications to tone down colors (@rigelk)
- Add/move links at the bottom of the left menu (@rigelk)
- Improve avatar upload UI (@rigelk)
- Use progress bars for quota used in my account (@rigelk)
- Add variable pagination size to all tables (@rigelk)
- Add empty states to all tables (@rigelk)
- Add generic text filter to all admin tables (@rigelk)
- Fix
z-index
for tooltips, modals and their button to prevent overlaps (@rigelk) - And many others!
- 🎉 Improve video abuses admin table (@rigelk):
- Add in-text specific search filters
- Reports can be linked to directly
- Rich reporter field
- Add video thumbnail with abuse count for the video and position of the abuse in that list
- Expand row to see more information about the video, the reporter and the reportee
- Add many actions (on the video, on the reporter)
- Don't remove a report when a video is deleted
- Add information on a video abuse within its notification email (@rigelk)
- Add ability for video owners to delete comments
- Add filter inputs for blacklisted videos and muted accounts/servers (@rigelk)
- Video import improvements:
- Support WMA and WAV audio files upload
- Support drag and drop for video upload/torrent import (@rigelk)
- Add video file metadata to download modal (@rigelk)
- Add views stats for channels (@rigelk)
- Add more information about the user in the edit form (@rigelk)
- Server optimizations:
- Add cache for some immutable models
- Don't refresh videos when processing a view
- Optimize view endpoint
- Completely rewritten SQL query to list videos
- Optimize SQL request when broadcasting an activity
- Support infinite scrolling in the discover page
- Add ability for admins to create a user without a password. PeerTube will send a reset password link to the user (@JohnXLivingston)
- Improve embed title background opacity
- Add origin instance URL in watch page
- Clearer description of advanced search options
- Always copy full actor handle in video channels view (@rigelk)
- Add
sendmail
support (@immae) tosmtp
configuration - Support
rel="me"
links in markdown - Use
originallyPublishedAt
from body on import if it exists - Sort outbox by DESC createdAt order
- Increase video comment max length limit
Bug fixes
- Update default user theme to
instance-default
(Jorge Silva) - Fix user dropdown menu with long texts (@rigelk)
- Fix load more comments on infinite scroll (@ipbc-dev)
- Fix CSP issue on WebFinger service (@ZanyMonk)
- Fix federation with Pleroma
- Fix Safari and iOS video play
- Fix broken HLS player on old Edge
- Fix running HLS transcoding on existing HLS video
- Fix user role edition
- Fix video duration display
- Fix error when adding a video in a playlist that does not have a thumbnail
- Fix internal video display in playlists
- Fix add comment in threads with deleted comments
- Fix video codec in HLS playlist resulting in a broken video
- Fix torrent import on Windows
- Respect browser autoplay policy: don't autoplay videos in mute mode
- Fix playlist videos autoplay/next play (@rigelk)
- Fix admin table column invalid sort error
- Fix outbox crawling max page/timeout ...
v2.1.1
Bug fixes
- Fix youtube-dl in docker image
- Fix playlist creation/update
- Fix fetch of instance config in client
- Manual approves followers only for the instance (and not accounts/channels)
- Fix avatar update
- Fix CSP for embeds
- Fix scroll of the menu on mobile
- Fix CPU usage of PostgreSQL
- Fix embed for iOS
v2.1.0
Since v2.0.0
IMPORTANT NOTES
- /!\ VERY IMPORTANT /!\ You need to execute manually a script (can be executed after your upgrade, while your PeerTube instance is running) to create HLS video torrents:
cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-2.1.js
- /!\ VERY IMPORTANT /!\ In the next PeerTube release (v2.2.0), we'll add a unique index on actors usernames to fix some federation bugs.
Please check now if you have conflicts using:- Go inside your database using
sudo -u postgres psql peertube_prod
and runselect "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) > 1;
- If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
The updated actors could have some federations issues
- Go inside your database using
- We now use Buster for the docker image, so the image name changed:
production-stretch
becomesproduction-buster
v2.x.x-stretch
becomesv2.x.x-buster
- Users cannot create more than 20 channels now to avoid UX and actor name squatting issues
- We added a warning if the
videos
directory is the same than theredundancy
one in your configuration file: it can create some bugs
Documentation
We added some sections in the documentation website:
- S3 remote storage: https://docs.joinpeertube.org/#/admin-remote-storage
- Instances redundancy: https://docs.joinpeertube.org/#/admin-following-instances
- Moderate your instance: https://docs.joinpeertube.org/#/admin-moderation
- Customize your instance (install plugins & themes): https://docs.joinpeertube.org/#/admin-customize-instance
- PeerTube logs (standard log/audit log): https://docs.joinpeertube.org/#/admin-logs
- Mute accounts/instances: https://docs.joinpeertube.org/#/use-mute
- Controlled player embed API: https://docs.joinpeertube.org/#/api-embed-player
Docker
- Sticking to one env-var management system (@Leopere) (See #2247)
- Simplify Dockerfile and slim Docker image (@Nutomic)
- Add HLS support in Docker container by using the latest Debian stable (Buster) image
Plugins/Themes API
- Add checkbox and textarea as possible input types for settings (@rigelk)
- Add
isLoggedIn
helper to client plugins (@rigelk) - Add client plugin hooks:
action:video-watch.player.loaded
with player instanceaction:video-watch.video.loaded
with a videojs instanceaction:signup.register.init
(@rigelk)filter:api.signup.registration.create.params
(@rigelk)filter:internal.video-watch.player.build-options.params
filter:internal.video-watch.player.build-options.result
filter:internal.common.svg-icons.get-content.params
filter:internal.common.svg-icons.get-content.result
- Add server plugins hooks:
action:api.user.blocked
action:api.user.unblocked
action:api.user.registered
action:api.user.created
action:api.user.deleted
action:api.user.updated
action:api.user.oauth2-got-token
- Accept
.
_
and0-9
characters in plugin names
Maintenance
- PeerTube moved translations from Zanata to Weblate. Here is the new translations website URL: https://weblate.framasoft.org/projects/peertube/
- We now provide a JavaScript library to control a PeerTube embed: https://www.npmjs.com/package/@peertube/embed-api
- Add ability to generate HLS videos using
create-transcoding-job
script (see the documentation) - Update nginx template: (you need to update manually)
- Add streaming playlists endpoint
- Add
client_body_temp_path
hint - Relax TLS/SSL ciphers hardening to allow Android 4.4.2 to use the PeerTube instance API
- Add
maxFileSize
,maxFiles
andanonymizeIP
log options in configuration file
Features
- 🎉 Add internal video privacy mode. Internal videos are only available to other logged in users of your instance, and are not federated
- 🎉 Add hyperlink video timestamps in comments & video descriptions (@Lesterpig & @rigelk)
- 🎉 Comments improvements:
- Support basic markdown
- Soft delete video comments instead of destroying them (@alcalyn)
- Add commentator name alongside fid for video comments (@rigelk)
- Add a cancel button in comment form (@rigelk)
- Show number of comments under a video in watch page (@rigelk)
- Add user moderation dropdown (@rigelk)
- Add ability to sort comments by total replies or created date (@rigelk)
- Add total replies from video author indicator (@rigelk)
- Comment name emphasis for video author (@rigelk)
- Add "Watch later" button in video miniature overlay (@rigelk)
- Add ability to transcode videos in an audio only video container (@Yetangitu)
- Add playlist search input in add to playlist dropdown (@rigelk)
- Add search bars for a user's videos and playlists (@rigelk)
- Support playlists in share modal
- Better UI for a better world:
- Add play/pause bezels to the video player (@rigelk)
- Use icons instead of buttons in watch page (like/dislike, support...) (@rigelk)
- Improve PeerTube section in About page and add links to the documentation
- Improve comment tree in Watch page
- Improve dropdown box shadow (@rigelk)
- Add channel avatar to watch view (@rigelk)
- Improve likes-dislikes bar usability
- Alter titles section header style (@rigelk)
- Enhance jobs list display on smaller screens (@alcalyn)
- Add a button in the videos from subscriptions page to manage subscriptions (@rigelk)
- Add duration to video attributes in watch view (@rigelk)
- Add a message in the login form when signup is disabled for people that are looking for an account (@rigelk)
- Add "Manage" button in owned account and channels pages (@rigelk)
- Improve password input accessibility (@rigelk)
- Add descriptions in moderation dropdown (@rigelk)
- Performances improvements:
- Lazy load categories, licences, languages and video/playlist privacies in the client
- Only update remote actor avatar if the filename changed
- Optimize transcoding by using the lowest resolution as input file
- Speedup embed first paint
- Optimize videos list SQL query
- Optimize local videos list SQL query
- Cache
peertube
instance actor SQL result - Cache HLS/WebTorrent InfoHash SQL result
- Optimize notification endpoint on specific cases
- Optimize "list my playlists" SQL query
- Improve search filters: (@rigelk)
- Add ability to sort results
- Improve tags filter inputs
- Add a button to reset filters
- Improve autoplay: (@rigelk)
- Autoplay next video switch for both user and visitors
- Add up next screen on autoplay
- Autoplay next video support for playlists
- Add next video button to the player
- Add loop setting when watching a playlist
- Add option to download subtitles in download modal (@rigelk)
- Add a button in account page to follow all account channels (@rigelk)
- Add ability to search a video directly by its UUID
- Case insensitive tags search
- Add ability to disable WebTorrent (and only enable HLS) (experimental and breaks federation with PeerTube instances < 2.1)
- Don't seed if the client is on a cellular network in the HLS player
- Load HLS player in embed by default if enabled
- Admin panels:
- Add ability to sort by state, score and redundancy allowed columns in following/followers admin table
- Add ability to filter per job type in admin
- Add Audit logs section in admin Logs panel
- Improve Media-RSS support (@rigelk)
- Explicit the tag limit in video form (@bikepunk)
- Add a warning when uploading videos using root
- Clearer video quota label in user settings
- Pause the video when the user opens a modal
- Handle basic HTML in account descriptions
- Support
m4v
videos - Improve 4k resolution bitrate
- Add missing hotkeys documentation in the watch page
- Add a button to copy the channel handle (@rigelk)
- Add server config to the nodeinfo metadata (@rigelk)
- Improve notification popup interactivity (@rigelk)
Bug fixes
- Don't notify if the account in on a muted instance
- Don't leak other notified addresses in notification emails
- Allow...
v2.1.0-rc.1
IMPORTANT NOTES
- /!\ VERY IMPORTANT /!\ You need to execute manually a script (must be executed after the upgrade and a PeerTube restart, while your instance is running) to create HLS video torrents:
cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-2.1.js
- /!\ VERY IMPORTANT /!\ In the next PeerTube release (v2.2.0), we'll add a unique index on actors usernames to fix some federation bugs.
Please check now if you have conflicts using:- Go inside your database using
sudo -u postgres psql peertube_prod
and runselect "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) > 1;
- If you have some results, it seems you have duplicate channels/accounts.
For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique).
The updated actors could have some federations issues
- Go inside your database using
- We now use Buster for the docker image, so the image name changed:
production-stretch
becomesproduction-buster
v2.x.x-stretch
becomesv2.x.x-buster
- Users cannot create more than 20 channels now to avoid UX and actor name squatting issues
- We added a warning if the
videos
directory is the same than theredundancy
one in your configuration file: it can create some bugs
Documentation
We added some sections in the documentation website:
- S3 remote storage: https://docs.joinpeertube.org/#/admin-remote-storage
- Instances redundancy: https://docs.joinpeertube.org/#/admin-following-instances
- Moderate your instance: https://docs.joinpeertube.org/#/admin-moderation
- Customize your instance (install plugins & themes): https://docs.joinpeertube.org/#/admin-customize-instance
- PeerTube logs (standard log/audit log): https://docs.joinpeertube.org/#/admin-logs
- Mute accounts/instances: https://docs.joinpeertube.org/#/use-mute
- Controlled player embed API: https://docs.joinpeertube.org/#/api-em
Docker
- Sticking to one env-var management system (@Leopere) (See #2247)
- Simplify Dockerfile and slim Docker image (@Nutomic)
- Add HLS support in Docker container by using the latest Debian stable (Buster) image
Plugins/Themes API
- Add checkbox and textarea as possible input types for settings (@rigelk)
- Add
isLoggedIn
helper to client plugins (@rigelk) - Add client plugin hooks:
action:video-watch.player.loaded
with player instanceaction:video-watch.video.loaded
with a videojs instanceaction:signup.register.init
(@rigelk)filter:api.signup.registration.create.params
(@rigelk)filter:internal.video-watch.player.build-options.params
filter:internal.video-watch.player.build-options.result
filter:internal.common.svg-icons.get-content.params
filter:internal.common.svg-icons.get-content.result
- Add server plugins hooks:
action:api.user.blocked
action:api.user.unblocked
action:api.user.registered
action:api.user.created
action:api.user.deleted
action:api.user.updated
action:api.user.oauth2-got-token
- Accept
.
_
and0-9
characters in plugin names
Maintenance
- PeerTube moved translations from Zanata to Weblate. Here is the new translations website URL: https://weblate.framasoft.org/projects/peertube/
- We now provide a JavaScript library to control a PeerTube embed: https://www.npmjs.com/package/@peertube/embed-api
- Add ability to generate HLS videos using
create-transcoding-job
script (see the documentation) - Update nginx template: (you need to update manually)
- Add streaming playlists endpoint
- Add
client_body_temp_path
hint - Relax TLS/SSL ciphers hardening to allow Android 4.4.2 to use the PeerTube instance API
- Add
maxFileSize
,maxFiles
andanonymizeIP
log options in configuration file
Features
- 🎉 Add internal video privacy mode. Internal videos are only available to other logged in users of your instance, and are not federated
- 🎉 Add hyperlink video timestamps in comments & video descriptions (@Lesterpig & @rigelk)
- 🎉 Comments improvements:
- Support basic markdown
- Soft delete video comments instead of destroying them (@alcalyn)
- Add commentator name alongside fid for video comments (@rigelk)
- Add a cancel button in comment form (@rigelk)
- Show number of comments under a video in watch page (@rigelk)
- Add user moderation dropdown (@rigelk)
- Add ability to sort comments by total replies or created date (@rigelk)
- Add total replies from video author indicator (@rigelk)
- Comment name emphasis for video author (@rigelk)
- Add "Watch later" button in video miniature overlay (@rigelk)
- Add ability to transcode videos in an audio only video container (@Yetangitu)
- Add playlist search input in add to playlist dropdown (@rigelk)
- Add search bars for a user's videos and playlists (@rigelk)
- Support playlists in share modal
- Better UI for a better world:
- Add play/pause bezels to the video player (@rigelk)
- Use icons instead of buttons in watch page (like/dislike, support...) (@rigelk)
- Improve PeerTube section in About page and add links to the documentation
- Improve comment tree in Watch page
- Improve dropdown box shadow (@rigelk)
- Add channel avatar to watch view (@rigelk)
- Improve likes-dislikes bar usability
- Alter titles section header style (@rigelk)
- Enhance jobs list display on smaller screens (@alcalyn)
- Add a button in the videos from subscriptions page to manage subscriptions (@rigelk)
- Add duration to video attributes in watch view (@rigelk)
- Add a message in the login form when signup is disabled for people that are looking for an account (@rigelk)
- Add "Manage" button in owned account and channels pages (@rigelk)
- Improve password input accessibility (@rigelk)
- Add descriptions in moderation dropdown (@rigelk)
- Performances improvements:
- Lazy load categories, licences, languages and video/playlist privacies in the client
- Only update remote actor avatar if the filename changed
- Optimize transcoding by using the lowest resolution as input file
- Speedup embed first paint
- Optimize videos list SQL query
- Optimize local videos list SQL query
- Cache
peertube
instance actor SQL result - Cache HLS/WebTorrent InfoHash SQL result
- Optimize notification endpoint on specific cases
- Optimize "list my playlists" SQL query
- Improve search filters: (@rigelk)
- Add ability to sort results
- Improve tags filter inputs
- Add a button to reset filters
- Improve autoplay: (@rigelk)
- Autoplay next video switch for both user and visitors
- Add up next screen on autoplay
- Autoplay next video support for playlists
- Add next video button to the player
- Add loop setting when watching a playlist
- Add option to download subtitles in download modal (@rigelk)
- Add a button in account page to follow all account channels (@rigelk)
- Add ability to search a video directly by its UUID
- Case insensitive tags search
- Add ability to disable WebTorrent (and only enable HLS) (experimental and breaks federation with PeerTube instances < 2.1)
- Don't seed if the client is on a cellular network in the HLS player
- Load HLS player in embed by default if enabled
- Admin panels:
- Add ability to sort by state, score and redundancy allowed columns in following/followers admin table
- Add ability to filter per job type in admin
- Add Audit logs section in admin Logs panel
- Improve Media-RSS support (@rigelk)
- Explicit the tag limit in video form (@bikepunk)
- Add a warning when uploading videos using root
- Clearer video quota label in user settings
- Pause the video when the user opens a modal
- Handle basic HTML in account descriptions
- Support
m4v
videos - Improve 4k resolution bitrate
- Add missing hotkeys documentation in the watch page
- Add a button to copy the channel handle (@rigelk)
- Add server config to the nodeinfo metadata (@rigelk)
- Improve notification popup interactivity (@rigelk)
Bug fixes
- Don't notify if the account in on a muted instance
- Don't leak other notified addresses in notification emails
- Allow the embed ifram...
v2.0.0
Since v1.4.1
IMPORTANT NOTES
- Removed old JSON LD signature implementation. There will be some federation incompatibilities with forwarded activities sent by PeerTube instances < v2.0.0
- Replaced configuration key
email.object
withemail.subject
: 916937d
Plugins/Themes API
- Add plugin hook on registration
filter:api.user.signup.allowed.result
Docker
- Fix traefik version docker compose (you need to update your
docker-compose.yml
file: f1b3888)
Maintenance
- Add
--tmpdir
,--first
,--last
and--verbose [level]
parameters to peertube-import-videos script (Yetangitu) - Improve REST API documentation (@frankstrater)
- Improve plugin management documentation
Features
- Better instance admin responsibility:
- Add ability to set more information about your instance. This will be used in the future on https://joinpeertube.org to help people find
the appropriate PeerTube instance on which they can register:- Main Categories
- Languages you/your moderators speak
- Code of Conduct
- Moderation information (who moderates your instance, NSFW policy etc)
- Who is behind the instance (a single person? non-profit?)
- Why did the admin create this instance
- How long the admin plan to maintain the instance
- How the administrator will finance the PeerTube server
- Hardware information
- Add these information in the about page and in the signup page
- Add a welcome modal at first admin login with some explanations of PeerTube and some useful links
- Add warning modal when administrators enable or enabled signup but did not fill some important instance information
(for now the instance name, terms, administrator and maintenance lifetime information)
- Add ability to set more information about your instance. This will be used in the future on https://joinpeertube.org to help people find
- Add ability to automatically follow back other instances
- Add ability to automatically follow the public registry instances
- Add Most liked videos page (@alcalyn)
- Add a drag&drop delay on playlist videos to allow user scroll on small screens (@alcalyn)
- Allow to toggle video publication date to display absolute date (@alcalyn)
- Add statistics in about page (@alcalyn)
- Improve the feature table in about page
- Add contributors in about page
- Clearer warning of IP address leaking on embedded videos (@robinkooli)
- Case insensitive search on video tags
- Add video name in "video publish notification"
- Add ability to autoplay next recommended video (opt in) (@LoveIsGrief)
- Add link behind the subscribe via RSS button (@frankstrater)
- Support text/plain caption files
- Speedup theme injection
- Add ability to enable HLS in the admin panel
Bug fixes
- Fix audio upload
- Handle video reports from mastodon
- Fix videos redundancy exceeding the limit
- Fix search when user defined video languages in their preferences
- Don't quick transcode with the wrong pixel format
- Hide videos abuses of muted accounts
- Fix account avatar widths
- Fix default
commentsEnabled
anddownloadEnabled
values on video upload/import (@frankstrater) - Disable auto complete of email field when editing another user information in admin panel (@Knackie)
- Fix federation issues with some actors (that have long descriptions, or missing optional AP fields)
- Remove down redundancy endpoints in HLS player
- Fix user notifications with multiple opened tabs
- Replace "overview" by "discover" in webpage titles
- Clearer IP debug message in admin panel
- Fix checkbox styles when using a theme
- Don't redirect on verify account page after login
- Fix player captions menu after choosing a subtitle
- Fix CLI scripts with URLs ending with a
/
- Fix
--since
and--until
timezone inpeertube-import-videos
script - Avoid circular error in logger
- Fix start/stop of first element when loading a playlist
Since v2.0.0-rc.1
Features
- Improve welcome/warning modals
- Add ability to enable HLS in the admin panel
Bug fixes
- Fix auto index follow
- Fix CLI scripts with URLs ending with a
/
- Fix
--since
and--until
timezone inpeertube-import-videos
script (@fflorent) - Avoid circular error in logger
- Fix start/stop of first element when loading a playlist