Is It Possible To Create Trusted Videos

Let’s say I download a YT video or really just any video from any random website. How would I sanitize it like you would a pdf or image file? Obviously there’s no convenient qubes command for that, but is there a workaround? Does it even make sense to ask this question?

The foolproof way of doing this would be too screencapture the video from dom0 (similar to taking a screenshot from dom0 as opposed to saving and sanitizing an image file). The motivation for my question is that in my case, the only screencapture application (vokoscreen) I can get to work so far has the annoying side effect of making the output slightly choppy. This may be due to the nature of the Webm format I’m forced to use, but it is what it is.

2 Likes

Screencapturing the video stream and saving the recording sounds cool. One can delegate this task to a disposable qube, and then return the screenrecorded video, too–similar to how pdf sanitization works currently.

1 Like

Any recommendations as to a good screen recording program that isn’t too resource intensive for Qubes?

The problem I tend to find with screen recorders is the stuttering during recording.

1 Like

Wouldn’t the issue of “disinfection” of downloaded video material from Youtube come under piracy?
What would be the point of performing such disinfection?

I think a good way to stay safe would be to download the video on one qubes and then watch the material with a vlc program installed on another, offline qubes.
It is unlikely that your qubes would be infected by a video downloaded from youtube.

Wouldn’t the foolproof way be to convert the video to a raw format and encode and compress the raw file?

You would be able to do it in a disposable qube without networking, and the dom0 or the graphics hardware isn’t involved.

1 Like

This sounds very useful, hopefuly it would be somewhat easy to implement.

I recall attempting to record within an AppVM before and while it did record the video, it didn’t pick up the audio for some reason.

@Pawelek85

If anything, it’s the act of downloading Youtube videos rather than modifying them that might come under piracy law. I’m not a legal expert, so I don’t know; nor do I care. I’m not sharing anything I pull off the net, let alone selling it, so I’m not worried about breaching copyright.

You mean download it into one qube, then transfer it to another qube to watch it offline? Not sure I understand the advantage. The idea is that somebody might be able to hid malicious code in the video. So the qube in which you you watch it shouldn’t make a difference unless the malicious code requires an Internet connection to function. But even if that’s the case, the malicious code is still there, just rendered inert. My question is how to remove that malicious code or obtain a copy of the video without it.

@renehoj

I haven’t tried that yet. Will look into it.

[message deleted]

@jpbaiocchi,
I think the solution to the problem would be to convert the downloaded video to another format.
If you download an .avi movie and then convert it to a different format, the malicious code contained in the .avi file is likely to be lost through the conversion and compression of the movie.

2 Likes

So after some experimentation, I think @Pawelek85 and @renehoj may be the way to go.

I tried both VokoscreenNG and RecApp from dom0. Both are able to produce decent video outputs, but there is noticeable decrease in quality (the “stuttering” that @KarlinQubes mentioned); even at the maximum framerate of 60 fps. Worth noting that RecApp doesn’t record sound for some reason.

I tried recording again with VokoscreenNG from within the AppVM playing the video stream. It would not take. Voko crashed the instant I hit record, which I wasn’t suprised by. Within the AppVM, I reckon Voko has no way of knowing where the window carrying the stream is like it would in a normal VM. That’s only information that dom0 would know.

I tried doing the same thing within an HVM and while that did record, I did not hear any audio, though the VM itself appeared to be picking up the audio from the stream; it just wasn’t being picked up by dom0. Stuttering within the HVM was even worse though.

Unfortunately, Voko and RecApp are the only screencasters available in the current dom0 repositories.

Can’t you use ffmpeg to record the screen as well as video format conversion?

Just skimmed this resource, which signals such capability
https://trac.ffmpeg.org/wiki/Capture/Desktop

@tanky0u Problem is that ffmpeg isn’t in the Dom0 repos and trying to run it in an AppVM doesn’t work. Might work in a HVM, but that’s too much of a hassle for me, unless it’s possible to do qvm-move/copy from Standalone to AppVM

I heard that Video Downloader (https://github.com/Unrud/video-downloader or https://github.com/flathub/com.github.unrud.VideoDownloader) is working pretty well.

I didn’t know that. Without derailing the convo, would you mind telling me what error does ffmpeg give in appvm’s?

I’ll have to test it again to confirm, but I recall it crashing the AppVM