Preservetube - A Youtube archival site.

  • 🏰 The Fediverse is up. If you know, you know.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
A day or two ago I was still managing to up stuff, but it was very painful. Only through Tor (faggot Cloudfare's faggot reCANCER is filtering me on the clearnet) and only one video at a time. As in, one attempt, then you have to reset identity, or else you just get the connection closed error, whether it succeeds or not.

Now I can't do anything at all.
 
Right now as I try to archive a few videos, I keep getting "Failed to request Youtube with error ErrorYTUnavailable. Please retry..." or "The metadata server unexpectedly closed the websocket. Please try again." even after a couple refreshes or so.

The videos aren't even age-restricted, I checked.
 
If you keep trying, eventually it will go through. If it doesn't work within a few refreshes, I usually try it again in five minutes and it will go through. It can be aggravating.
Aight, it's working better for me now.

Think I'll put my money where my complaints are and make a donation so that it'll go towards better infrastructure or something.
 
YouTube's DRM isn't the problem; it's mainly their IP restrictions. They've been heavily cracking down on Mullvad's IPs.
I moved the backend "edgy" to iVPN—hopefully, that helps. (Tracked in GitHub Issue #31.)

The main way people seem to be bypassing this is by obtaining their own ASNs, a /48, and switching IPs with every request. This might be feasible at some point, but not for now.
 
YouTube's DRM isn't the problem; it's mainly their IP restrictions. They've been heavily cracking down on Mullvad's IPs.
I moved the backend "edgy" to iVPN—hopefully, that helps. (Tracked in GitHub Issue #31.)

The main way people seem to be bypassing this is by obtaining their own ASNs, a /48, and switching IPs with every request. This might be feasible at some point, but not for now.
Thanks a lot again for doing all this man, you deserve all the support and then some :semperfidelis:
 
@PreserveTube I tried doing that "archive a channel's videos" thing for a channel. Obviously I didn't expect it to archive every video, however when I went to go check the videos, they all say they haven't archived properly, and when I go to press the "archive me" button it just returns back to the "archive not found" page.
Here's an example: https://preservetube.com/channel/UCtBucN43a7iktklTaAxjjwA
There was also an issue where the end of a preservetube link had it set to "undefined" instead of the usual string of characters of a video, but when I went to go recheck this channel to demonstrate my issue it had the usual string of characters there, but still unable to play or archive properly.
 
The main nuisance I see is how it will download everything, but encounter some weird error towards the end of the process, necessitating a refresh to do it all over again. Sometimes multiple times until it gets it right. That's a waste of bandwidth but more importantly requires making requests to YouTube again (those are the more limited resource).
 
For the first time I saw video and audio appear to download simultaneously:

video-audio.webp

It seems slower, which is fine if it works. I am getting websocket errors right at the end of the download though. Or at exactly 4.55% of the audio... twice... four times:

audio455.webp audio455-2.webp
 
Last edited:
hopefully in the future this shit supports odysee, rumble and other youtube alternatives
I personally don't see a rush in that right now. Odysee and Rumble both are pretty free of censorship.

It seems like there is a threshold of how many videos you can get uploaded on to there.
It's limited to 5 right now. I'll think about raising it later. My main worry is people archiving hundreds of (sometimes irrelevant) videos in one big sweep without much in terms of limiting.

For the first time I saw video and audio appear to download simultaneously:
Youtube discontinues downloading videos via HTTP and they're now doing it via their fancy new SABR thing. I've updated the downloader to support this.

It seems slower, which is fine if it works. I am getting websocket errors right at the end of the download though. Or at exactly 4.55% of the audio... twice... four times:
That's really fucking weird. Based on my testing, the downloading should be faster. The merging of the audio and the video is also WAY faster than before.

Although, I have also spotted some of these really weird and slow videos, but I thought they were just an one time thing. Could you give me the URL of the video you were trying to archive? Since it's always getting stuck at 4.55% it's most likely a library issue.
 
Last edited:
It seems to crash with this error:
Code:
preservetube-metadata  | [ERROR] [SabrStream] Maximum retries (10) exceeded while fetching segment: Cannot proceed with stream: attestation required
preservetube-metadata  | [ERROR] [SabrStream] Stream error: Cannot proceed with stream: attestation required
preservetube-metadata  | 775 |         this.streamProtectionStatus = this.decodePart(part, StreamProtectionStatus);
preservetube-metadata  | 776 |         if (!this.streamProtectionStatus)
preservetube-metadata  | 777 |             return;
preservetube-metadata  | 778 |         this.emit('streamProtectionStatusUpdate', this.streamProtectionStatus);
preservetube-metadata  | 779 |         if (this.streamProtectionStatus.status === 3) {
preservetube-metadata  | 780 |             throw new Error('Cannot proceed with stream: attestation required');
preservetube-metadata  |                         ^
preservetube-metadata  | error: Cannot proceed with stream: attestation required
preservetube-metadata  |       at handleStreamProtectionStatus (/usr/src/preservetube/metadata/node_modules/googlevideo/dist/src/core/SabrStream.js:780:19)
preservetube-metadata  |       at <anonymous> (/usr/src/preservetube/metadata/node_modules/googlevideo/dist/src/core/SabrStream.js:598:21)
preservetube-metadata  |       at read (/usr/src/preservetube/metadata/node_modules/googlevideo/dist/src/core/UmpReader.js:33:13)
preservetube-metadata  |       at processStreamingResponse (/usr/src/preservetube/metadata/node_modules/googlevideo/dist/src/core/SabrStream.js:594:31)
preservetube-metadata  |
preservetube-metadata  | Bun v1.2.19 (Linux x64 baseline)

From the libraries Discord:
Screenshot 2025-08-04 at 23.09.39.webp


Edit: A bit more info on the issue:
Screenshot 2025-08-04 at 23.17.08.webp



I really have no idea what this means. When I try to download the same video locally, it works. I therefore assume that it's Youtube blocking common VPN ASNs. Might have to find a way to filter through them, find the ones that work, and use those?

I'll have to tinker around and see what happens.

Edit: Also halted at 3.52% audio / 4.55% video on this one: https://www.youtube.com/watch?v=k2rKS4l6MAk
This one ended up archiving, somehow.
 
error: Cannot proceed with stream: attestation required
This one seems to have been temporarily fixed. I'll need to wait a lil more for more debugging information to be able to deploy something permanent.

But, now archiving msFa1cxUP1c crashes with "error: Format 140:XXXXXXXXX: Missing segments: [153]. Expected range: 0-153." I don't see much discussion on this issue anywhere though...

Anyways, progress will be tracked here: https://github.com/preservetube/preservetube/issues/40
 
It's limited to 5 right now. I'll think about raising it later. My main worry is people archiving hundreds of (sometimes irrelevant) videos in one big sweep without much in terms of limiting.
Hmm, I see. One thing I do not understand though is how and why it only archives the first 5 (or however many) videos every single time (when you archive the channel). Can it not just check which ones it has archived and skip those?

PS: Sorry for the late response, I am not too active here. I really just created this account for discussing PreserveTube, lol.
 
Back
Top Bottom