Allow uploading a new version of a video
I've been wanting to create videos summarizing certain topics that are continually updated as more news on the topic comes in. This is unusual for videos, as Youtube has never allowed such a thing, but common for blog posts.
I would really appreciate an "Upload new version" feature, which would replace the video in question with another video, maintaining the same link and the same comments. Older versions could be archived and available from a screen listing previous versions.
good idea!
+1. I've got this problem with Youtube also. For example, I uploaded a video, then share it with a link and then realize that I forgot something or that something was wrong in the "cut" etc. On youtube, you need to upload a new video and share the new link, which is a shame for "marketing".
Video file updates are generally not allowed because they can be abused: for example a viral cat video can be replaced with some kind of propaganda. We could however add the ability to specify a link to the new version of the video, so users are redirected with a confirm modal: A new version of this video is available, would you like to watch it? or something like that.
Video file updates are generally not allowed because there can be abuses: for example a viral cat video can be replaced with some kind of propaganda etc.
Oh, I never though about that ! That's kind of a problem indeed.
We could however add the ability to specify a link to the new version of the video, so users are redirected with a confirm modal: A new version of this video is available, would you like to watch it? or something like that.
It seems to be a great idea :D
@Chocobozzz
The downside I see with a redirect dialog is that, by submitting a new version, you suddenly lose all conversations under a video as well as all ratings. The uploader then has to make a choice whether correcting a simple fact in a video or adding new content as an update on a situation is worth losing all of that.
I agree that there is potential for abuse. The way that social networks have dealt with this is by adding an "Edited" date to the post. The way blog posts often deal with this is by prefacing content with details on what was changed and how.
I think that, if it was clearly stated under the video when the latest version was uploaded, and older versions of the video were still accessible from an "Older versions" page, that would go a long way toward curbing abuse
Along with that, instance admins could have a rule against uploading new versions that vastly differ from the original, and abuse of that rule could be treated the same way as rules against spam, porn, and offensive content. As older versions would be publicly accessible, anyone could report abuse.
Perhaps you could send a notification to users who liked and did other things to the video(like adding to a playlist, commenting) whenever the video updates. Maybe have a user config option that if they'd like every update will invalidate the actions they did with it(might need some coordination with other Fediverse software). This is mostly necessary for likes and playlists, comments might do with 'this was for an older version of the video' added to them...
For embedded things, what you could do is that an embedded video will try to point at the version that is at the moment of embedding the last, and that getting the latest version always will explicitely require using a specific url or option or something. That way embeds that are pointing at a viral cat video will keep pointing to the cat video and not to the update with questionable content, while embeds that the embedder explicitely wanted to point at the last version(like the creator's blog) will use the last possible version.
Maybe take a look at how other Fediverse stuff implements updates. Like, Mastodon doesn't, but I recall others do handle updates.
Maybe there can be multiple additional uploads to a single video page that you can add on later. They just autoplay in sequence of the upload date to make 1 stream of content. This will make it seem like one long video when actually it's several. The seamless connection is all on the video editor to make everything flow.
While I understand concerns regading video authenticity, there should be a method for an admin to replace a video though.. Maybe just a script to do it manualy?
From my poking around it should be something like:
- manually create a new torrent and infoHash from a new file as per: https://github.com/Chocobozzz/PeerTube/blob/29d4e1375fdac88595347184c3d1b214804794b0/server/models/video/video.ts#L1816
- update "videoFile" set infoHash="blabla" where "videoId"=5537; (also other fields if necessary)
- replace an original file with a new version in data/videos
Im I right or is something missing? @Chocobozzz thx
@lsde Admins can already do it: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/tools.md#create-import-video-file-jobjs
Aha! thx @Chocobozzz btw, is there a way how to programatically remove a resolution? say I decided to replace lowres versions with highres ones with better encoding params, so they are smaller. therefore no reason to keep the lowres.
@lsde Admins can already do it: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/tools.md#create-import-video-file-jobjs
@Chocobozzz It doesn't seem to work anymore. Should I create a dedicated issue?
Yes please with server logs, job logs, CLI options and video mode (HLS or not?)
My issue is now fixed, the new video file replaced the old one.
As I use Docker, might be fixed thanks to https://github.com/Chocobozzz/PeerTube/issues/2613
You could make this an administrator option. For example, I might want to run a community with limited creators where there is a lot of moderation of the content (and user uploads turned off by default). In this case, it might be a HUGE draw to getting creators on the instance over YouTube, where replacing your video is basically a death-sentence for traffic.
Definitely understand the potential for abuse, and on a wide-open instance it's a terrible idea. But I can definitely present a case where it'd be a huge benefit and attraction point over YouTube.
@Chocobozzz Note that all professional services allow uploading a new version of a video (like Vimeo and all private SVOD services). This is not allowed on YouTube for the reasons you already listed.
IMO it should be possible to do that from the web interface for the administrator and a selected group of users (maybe a new role?)
@Chocobozzz Would you accept a PR where it's possible to upload a new version in the web interface, a feature that the admin has to enable by config or web interface?
I personally wouldn't want my users to be able to replace videos; too many possibilities for abuse. But linking to a new video would be fine with me.
I personally wouldn't want my users to be able to replace videos; too many possibilities for abuse. But linking to a new video would be fine with me.
Our case is different since we know all the users allowed to upload videos. But it may be possible to have a solution where the admin can choose between allowing users to do either a "hard" and "soft" replacement, where the former means replacing the video and the latter linking to a new video.
I also know every single user on my instance personally because it is a family instance. I would also appreciate a way for my dad to reupload a new version if he can fix some audio issues later, etc.
I personally wouldn't want my users to be able to replace videos; too many possibilities for abuse. But linking to a new video would be fine with me.
As I said before it's allowed on nearly ever pro or pay SVOD/streaming service.
IMO it should be possible to do it, but it also must be possible to enable it or disable it for a whole instance or per user.
At the very least, the admin should be able to do it for any video from the UI.
My organisation is transitioning from Vimeo Pro to Peertube, and we depend on this feature for our workflow. Use cases :
- a work in progress is published for review in private mode, then updated several times before the final version is approved and made public, all on the same URL.
- a film is published and made public just in time for its deadline, and later improved or corrected, once the URL is known in the wild.
I would suggest, as a minimum :
- make it an option for administrator to enable "replace videos" at instance level
- if enabled at instance level, moderators are granted to do it and may grant any user to do it
- with defaults to "disabled"
I also believe that replacing the video file with a new version in the same URL/ID via the web inteface should be possible. It is a feature very helpful to content creators and has a lot of legitimate use cases to support it, as was explained above.
Abuse cases should be dealt with by moderators. And the audience can help by submitting reports in case the video was substantially altered in a malicious manner.
Also, there could be a mechanism that, in order to replace the video with a new version in the same URL, you would have to keep the original video file too, otherwise the new video gets a new ID/URL. This would help uncover and prove malicious intent and also function as an "extra cost" for the editing that would discourage abuse.
Hi, it seems it's indeed "easy" to achieve using the CLI, but maybe it'd be good to have the option in the UI, the main use-case I'm considering here is to upload a proper edition of the live video after a live show, so we can keep the same URL both for the live and the playback!
Video edition is being implemented in https://github.com/Chocobozzz/PeerTube/pull/4805
So I'm renaming this issue to only keep the "upload new version" feature
Hi, it seems it's indeed "easy" to achieve using the CLI
As a matter of fact, I've never succeeded to make it work correctly.
Currently in 4.2 the import job + transcoding jobs are successfully created (with two command lines) but once done, the video is not replaced.
In previous versions I often ended up with errors while trying to play videos, or sometimes with video qualities I never asked for.
Also to get the video id now you have to go into edit mode and copy/paste it from the URL (the URLs changed a few versions ago).
@lsde Admins can already do it: https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/tools.md#create-import-video-file-jobjs
Hi, any chance this could be implemented in the UI ? (for example in the 3 dots menu that allow to edit the video description. There could be an option to upload the new file to replace the old one, and this option could be allowed/activated only for admin, or on a per user basis ?).
Thanks
Hi, Since the Studio function already exists, it is possible to hijack it to replace a video by uploading the new version as credits and cutting the old version at 0 seconds. It would still be nice to have an official video replacement feature rather than hijacking the Studio feature, wouldn't it?
I still wonder why this simple feature is still discussed...? (and not solved)
I also have now to make the decision between Vimeo and Peertube. Since i like open source software, i would have chosen Peertube. But under this circumstances... i mean, yes, with the credits hack it is possible to "cheat" this. Is it that hard to let users replace their own videos with different ones?
I still wonder why this simple feature is still discussed...? (and not solved)
I also have now to make the decision between Vimeo and Peertube. Since i like open source software, i would have chosen Peertube. But under this circumstances... i mean, yes, with the credits hack it is possible to "cheat" this. Is it that hard to let users replace their own videos with different ones?
It can be solved pretty easy, just contact PeerTube and offer a sponsorship for this feature and I think they can add a developer to the team to develop it. :-)
Btw I'm glad to hear that you're choosing between Vimeo and PeerTube; one company with +1,200 employees and an open source project mainly developed by one person. It's good rating to PeerTube.
Already asked at Framasoft, no response so far :P Yes, there were other solutions, but since PeerTube has quite an active community... was not a hard choice so far ;-)