{
    "archive_path": "archive/1765879511.322919",
    "base_url": "www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos",
    "basename": "its-easier-ever-de-censor-videos",
    "bookmarked_date": "2025-12-16 10:05",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=www.jeffgeerling.com",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": null
    },
    "domain": "www.jeffgeerling.com",
    "downloaded_at": "2025-12-16T10:05:28.036927+00:00",
    "downloaded_datestr": "2025-12-16 10:05",
    "extension": "",
    "hash": "1E4R5W92P5THK1GQ6ZKZ",
    "history": {
        "archive_org": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--head",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://web.archive.org/save/https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-12-16T10:07:45.634204+00:00",
                "index_texts": null,
                "output": "TimeoutExpired: Command '['/usr/bin/curl', '--silent', '--location', '--compressed', '--proxy', 'socks5://tor-socks-proxy:9150', '--head', '--max-time', '60', '--user-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)', 'https://web.archive.org/save/https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos']' timed out after 60 seconds",
                "pwd": "/data/archive/1765879511.322919",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-16T10:06:45.538183+00:00",
                "status": "failed"
            }
        ],
        "dom": [
            {
                "cmd": [
                    "/usr/bin/chromium-browser",
                    "--proxy-server=socks5://tor-socks-proxy:9150",
                    "--disable-features=DarkMode",
                    "--run-all-compositor-stages-before-draw",
                    "--hide-scrollbars",
                    "--autoplay-policy=no-user-gesture-required",
                    "--no-first-run",
                    "--use-fake-ui-for-media-stream",
                    "--use-fake-device-for-media-stream",
                    "--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'",
                    "--headless=new",
                    "--no-sandbox",
                    "--no-zygote",
                    "--disable-dev-shm-usage",
                    "--disable-software-rasterizer",
                    "--disable-sync",
                    "--window-size=1440,2000",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "--user-data-dir=/data/personas/Default/chrome_profile",
                    "--profile-directory=Default",
                    "--dump-dom",
                    "https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos"
                ],
                "cmd_version": "131.0.6778",
                "end_ts": "2025-12-16T10:05:49.860156+00:00",
                "index_texts": null,
                "output": "output.html",
                "pwd": "/data/archive/1765879511.322919",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-16T10:05:36.349997+00:00",
                "status": "succeeded"
            }
        ],
        "favicon": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--max-time",
                    "60",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://www.google.com/s2/favicons?domain=www.jeffgeerling.com"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-12-16T10:05:31.129141+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1765879511.322919",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-16T10:05:28.381758+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--head",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-12-16T10:05:31.299464+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1765879511.322919",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-16T10:05:31.180369+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [
            {
                "cmd": [
                    "(internal) archivebox.extractors.htmltotext",
                    "./{singlefile,dom}.html"
                ],
                "cmd_version": "0.8.5rc51",
                "end_ts": "2025-12-16T10:06:27.654471+00:00",
                "index_texts": [
                    "(/apple-touch-icon.png) (/favicon-32x32.png) (/favicon-16x16.png) (/site.webmanifest) (/safari-pinned-tab.svg) (/themes/jeffgeerling/favicon.ico) (https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos) (https://www.jeffgeerling.com/node/3459) It's easier than ever to de-censor videos | Jeff Geerling (/sites/default/files/css/css_OGn5lhw9vjquViDY7O0cJMa3qKpd0Y_PV8oGWhWHRog.css?delta=0&language=en&theme=jeffgeerling&include=eJxVjlEOwyAMQy9Ex5kCGEQXYErYJnb60VXVxI_lZ0dWPJPqsI4Uxp8-14DaES4uUKUEvbi2MG-nxMwdYv92poLZSyHOH5gdMSZAONdkHbe0JoHkvpVjbYkTN0e8aR8Hrt1D2g7fjQ7tKOfbr4y32p_e5tqT8QV5vFKc) (/sites/default/files/css/css_ziAfCzmwGxizqcmVs9NTBh1IwyaZlb9eC5yvCakvkx0.css?delta=1&language=en&theme=jeffgeerling&include=eJxVjlEOwyAMQy9Ex5kCGEQXYErYJnb60VXVxI_lZ0dWPJPqsI4Uxp8-14DaES4uUKUEvbi2MG-nxMwdYv92poLZSyHOH5gdMSZAONdkHbe0JoHkvpVjbYkTN0e8aR8Hrt1D2g7fjQ7tKOfbr4y32p_e5tqT8QV5vFKc)  Skip to main content  (/) (Home) Jeff Geerling     Main menu (https://www.redshirtjeff.com) Merch  (/about) About  (/blog) Blog  (/projects) Projects         It's easier than ever to de-censor videos      (Tuesday, April 15, 2025 - 12:00) April 15, 2025    Last month I asked people to (https://youtu.be/gaV-O6NPWrI?t=297) hack part of my YouTube video , specifically to de-pixelate the contents of a folder I had pixelated starting at the 4:57 mark. Your browser does not support the video tag.   For years, people have used the censor tool to blur or pixelate out parts of videos where there's sensitive information. And for years, every time I've used it, I get a few comments from people saying that's not a safe way to censor information. So is that true? I wanted to find out, so I put a message saying I'd send fifty bucks to anyone who could tell me what it said under the pixelation. And you know what? Less than a day later, three people solved it, using three slightly different techniques\u2014scary! This blog post is a lightly edited transcript of the following video:    How did they do it? But how did they do it? I asked each of them, and they were more than happy to share. For most of us who like reverse-engineering or tinkering, it's fun to share the craft. And even more fun when it's sanctioned fun. Add on a little monetary reward, and that's just icing on the cake. GitHub user KoKuToru was kind enough to share (https://github.com/KoKuToru/de-pixelate_gaV-O6NPWrI) an entire GitHub repo with the process and the code, along with two different ways that user tried to depixlate my footage. First a (https://github.com/KoKuToru/de-pixelate_gaV-O6NPWrI/tree/master/v1) brute-force attempt to extract aligned images of just the window, with some code using TensorFlow to extract pixel data and aggregate it into a somewhat-fuzzy (but almost clear enough to read) picture: Your browser does not support the video tag.   The idea here is the pixelation is kind of like shutters over a picture. As you move the image beneath, you can peek into different parts of the picture. As long as you have a solid frame of reference, like the window that stays the same size, you can 'accumulate' pixel data from the picture underneath. Due to the slight error in selecting the window by hand, the final result was slightly blotchy. For the second attempt, GIMP was used to get a better window selection algorithm with ffmpeg, and with a slight bit more data (more frames extracted), a perfectly legible result: Your browser does not support the video tag.   Any way to prevent it? Blurring or pixelating video, especially moving video, may lead to similar results as you saw here. Years ago it would've required a supercomputer and a PhD to do this stuff. But today, between AI assistance with the trickier bits of coding, and how fast neural networks run on computers, it's easier and faster than ever to de-pixelate video! If there's one thing computers are good at, it's finding order in seeming chaos, like how modern tools can (https://www.youtube.com/watch?v=7msuhEq1Vz4) pull a clean voice out of a horrible recording . The more motion in the video, the more data points the reverse engineering has to play with. And thus, the better the confidence in the results. If I hadn't moved around my Finder window in the video, I don't think it would've worked. You might get a couple letters right, but it would be very low confidence. Moving forward, if I do have sensitive data to hide, I'll place a pure-color mask over the area, instead of a blur or pixelation effect. Intuitively, blur might do better than pixelation... but that might just be my own monkey brain talking. I'd love to hear more in the comments if you've dealt with that kind of image processing in the past. It's amazing what people can do with a neural network, ingenuity, and time. I guess the moral of the story is if you don't want people to read censored data... don't post it online . tl;dr - check out (https://github.com/KoKuToru/de-pixelate_gaV-O6NPWrI/tree/master/v1) KoKoToru's de-pixelate GitHub repo for all the details on how it was done .  Further reading (/blog/2023/risc-v-business-testing-starfives-visionfive-2-sbc) RISC-V Business: Testing StarFive's VisionFive 2 SBC    (/blog/2025/how-much-radiation-can-pi-handle-space) How much radiation can a Pi handle in space?    (/blog/2024/die-shots-and-transistor-level-debugging-on-raspberry-pi-5) Die shots and transistor-level debugging on Raspberry Pi 5            (/comment/reply/node/3459/comment_node_blog_post#comment-form) (Share your thoughts and opinions.) Add new comment     Comments  AY \u2013 (/comment/35465#comment-35465) 8 months ago   Blur would likely be worse than pixelation, because blur preserves finer-grained information than pixelation does. While it might be equally hard for a human to parse blurring vs. pixelation, in many cases it's possible to algorithmically reverse even non-moving blurred views.  (/comment/reply/node/3459/comment_node_blog_post/35465) Reply      fcpk \u2013 (/comment/35470#comment-35470) 8 months ago  In reply to (/comment/35465#comment-35465) Blur would likely be *worse*\u2026 by AY   Blur is easier. You can run deconvolution to recover part of the expected data once you've effectively reversed the data.Pixelation is fine but use a much larger pixel size. then the needed amount of data would be way too much to recover anything.Think each frame gives you 1/n of the data(less in practice obviously) where n is your \"pixelation square\" size. At 25fps that means your pixels should be n=sqrt(t*25) pixels big to avoid single pixel detail recovery. Now obviously this highly depends on how many pixels does the text take(ie density). A minimum is around 5px*5px for latin text. In the current case, there's definitely at least 25px, so that gives you a 5x multipler. Additionally you'll want bigger since humans (and now ML)are good at recognizing with much less data.  Another 2x multipler. In pratice that means 2*5*sqrt(t*25), or 50x50pixelation squares for your video.  (/comment/reply/node/3459/comment_node_blog_post/35470) Reply      Omar \u2013 (/comment/35474#comment-35474) 8 months ago  In reply to (/comment/35465#comment-35465) Blur would likely be *worse*\u2026 by AY   I believe Jeff's intuition is related to the shutter window effect. In a stationary image, pixelation might do better than blur, but a pixelated video reveals information through different pixel configurations allowing for better reconstruction than with a static image, whereby a blur would still contain the same amount of information, no better than an image.  (/comment/reply/node/3459/comment_node_blog_post/35474) Reply       Cheevly \u2013 (/comment/35466#comment-35466) 8 months ago   Im no expert, but intuitively a blur effect seems even easier to decipher.  (/comment/reply/node/3459/comment_node_blog_post/35466) Reply      Anonymous \u2013 (/comment/35472#comment-35472) 8 months ago  In reply to (/comment/35466#comment-35466) Im no expert, but\u2026 by Cheevly   I'm an expert, but I'm not really sure either. Blur means \"for each pixel, average the pixels within blur radius, and set the pixel value to that\" Pixelation I don't think has a formal enough definition but...amounts to the same thing except, somewhat easier? In that there's less output pixels? But maybe that also reduces information? *shrugs*  (/comment/reply/node/3459/comment_node_blog_post/35472) Reply       blur \u2013 (/comment/35468#comment-35468) 8 months ago   blur is impossible to solve with this method as the image doesn't change when moving the finder window.  (/comment/reply/node/3459/comment_node_blog_post/35468) Reply      Jeff Geerling \u2013 (/comment/35469#comment-35469) 8 months ago  In reply to (/comment/35468#comment-35468) blur is impossible to solve\u2026 by blur   Depending on the type of blur (and how much is applied), though, it can be resolved other ways. I may do another challenge with a couple types of blurs in the future, to see what people come up with.  (/comment/reply/node/3459/comment_node_blog_post/35469) Reply       John Peeve \u2013 (/comment/35471#comment-35471) 8 months ago   Nothing new here. Old tech could do it.  (/comment/reply/node/3459/comment_node_blog_post/35471) Reply      S. Davis \u2013 (/comment/35476#comment-35476) 8 months ago   This is impressive, kudos to the folks who gave it a go. Blur would be an interesting challenge as well. It would depend on a lot of specifics, I would think, from the kind of blurring that\u2019s applied, to the video compression, as I\u2019d imagine it\u2019s quite lossy compression in those areas. I am fully unsure, it could be even easier, as others have suggested. Makes me want to hang onto all the near-misses from my camera, where my hands are shaking, or the lens is dirty. Soon I might be able to pull usable images from the trash.  (/comment/reply/node/3459/comment_node_blog_post/35476) Reply      13lckd09 \u2013 (/comment/35477#comment-35477) 8 months ago   LayersDon't just blur once dint jusr drop one color block over layer it up  (/comment/reply/node/3459/comment_node_blog_post/35477) Reply      enuker \u2013 (/comment/35500#comment-35500) 7 months ago   This method will only work assuming the blurred image is a static image.  (/comment/reply/node/3459/comment_node_blog_post/35500) Reply      Chester \u2013 (/comment/35675#comment-35675) 6 months ago   Thanks for sharing! I was always wary of anything that isn't a black overlay - and it's also important to ensure it is flattened. People often forget that some image formats support layers, alpha channels and other artifcats that might not necessarily erase what is below... But what I really wanted to share was another angle related to our monkey brains: sometimes we want to obfuscate more than we want to fully remove the information. An odd but relevant example: pixelating genitals in images for legal (e.g., Japan) or audience reasons. In this case, it may be even in favour of a content publisher to use a format that is hard - but not impossible - to de-pixelate. There is a lot to explore here - both on the technolgy and the social sides of this - notwithstaning the fact that the article's central point is solid: security-wise, pure-color > blur && pure-color > pixelate  (/comment/reply/node/3459/comment_node_blog_post/35675) Reply             Search () (Enter your keywords)  (Search)      (Geerling Family Crest) All content copyright Jeff Geerling. As an Amazon Associate I earn from qualifying purchases. Top of page .             "
                ],
                "output": "htmltotext.txt",
                "pwd": "/data/archive/1765879511.322919",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-16T10:06:27.554397+00:00",
                "status": "succeeded"
            }
        ],
        "media": [
            {
                "cmd": [
                    "/usr/local/bin/yt-dlp",
                    "--restrict-filenames",
                    "--trim-filenames",
                    "128",
                    "--write-description",
                    "--write-info-json",
                    "--write-annotations",
                    "--write-thumbnail",
                    "--no-call-home",
                    "--write-sub",
                    "--write-auto-subs",
                    "--convert-subs=srt",
                    "--yes-playlist",
                    "--continue",
                    "--no-abort-on-error",
                    "--ignore-errors",
                    "--geo-bypass",
                    "--add-metadata",
                    "--format=(bv*+ba/b)[filesize<=750m][filesize_approx<=?750m]/(bv*+ba/b)",
                    "--skip-download",
                    "--cache-dir=/data/yt-dlp-cache/",
                    "--cookies=/data/yt-dlp-cache/cookies.txt",
                    "--proxy=socks5://tor-socks-proxy:9150",
                    "--no-playlist",
                    "https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos"
                ],
                "cmd_version": "2024.10.7",
                "end_ts": "2025-12-16T10:06:45.136087+00:00",
                "index_texts": [],
                "output": "ArchiveError: Failed to save media",
                "pwd": "/data/archive/1765879511.322919",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-16T10:06:31.942465+00:00",
                "status": "failed"
            }
        ],
        "mercury": [
            {
                "cmd": [
                    "/home/archivebox/.npm/bin/postlight-parser",
                    "https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos"
                ],
                "cmd_version": "2.2.3",
                "end_ts": "2025-12-16T10:06:27.480842+00:00",
                "index_texts": null,
                "output": "mercury/",
                "pwd": "/data/archive/1765879511.322919",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-16T10:06:23.127263+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/home/archivebox/.npm/bin/readability-extractor",
                    "/tmp/tmp5ebmbs4h",
                    "https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2025-12-16T10:06:03.754354+00:00",
                "index_texts": [
                    "Last month I asked people to hack part of my YouTube video, specifically to de-pixelate the contents of a folder I had pixelated starting at the 4:57 mark.\n\n\n\n  \n  Your browser does not support the video tag.\n\n\n\nFor years, people have used the censor tool to blur or pixelate out parts of videos where there's sensitive information. And for years, every time I've used it, I get a few comments from people saying that's not a safe way to censor information.\n\nSo is that true?\n\nI wanted to find out, so I put a message saying I'd send fifty bucks to anyone who could tell me what it said under the pixelation. And you know what? Less than a day later, three people solved it, using three slightly different techniques\u2014scary!\n\nThis blog post is a lightly edited transcript of the following video:\n\n\n\nHow did they do it?\n\nBut how did they do it? I asked each of them, and they were more than happy to share. For most of us who like reverse-engineering or tinkering, it's fun to share the craft. And even more fun when it's sanctioned fun. Add on a little monetary reward, and that's just icing on the cake.\n\nGitHub user KoKuToru was kind enough to share an entire GitHub repo with the process and the code, along with two different ways that user tried to depixlate my footage.\n\nFirst a brute-force attempt to extract aligned images of just the window, with some code using TensorFlow to extract pixel data and aggregate it into a somewhat-fuzzy (but almost clear enough to read) picture:\n\n\n\n  \n  Your browser does not support the video tag.\n\n\n\nThe idea here is the pixelation is kind of like shutters over a picture. As you move the image beneath, you can peek into different parts of the picture. As long as you have a solid frame of reference, like the window that stays the same size, you can 'accumulate' pixel data from the picture underneath.\n\nDue to the slight error in selecting the window by hand, the final result was slightly blotchy. For the second attempt, GIMP was used to get a better window selection algorithm with ffmpeg, and with a slight bit more data (more frames extracted), a perfectly legible result:\n\n\n\n  \n  Your browser does not support the video tag.\n\n\n\nAny way to prevent it?\n\nBlurring or pixelating video, especially moving video, may lead to similar results as you saw here. Years ago it would've required a supercomputer and a PhD to do this stuff. But today, between AI assistance with the trickier bits of coding, and how fast neural networks run on computers, it's easier and faster than ever to de-pixelate video!\n\nIf there's one thing computers are good at, it's finding order in seeming chaos, like how modern tools can pull a clean voice out of a horrible recording.\n\nThe more motion in the video, the more data points the reverse engineering has to play with. And thus, the better the confidence in the results.\n\nIf I hadn't moved around my Finder window in the video, I don't think it would've worked. You might get a couple letters right, but it would be very low confidence.\n\nMoving forward, if I do have sensitive data to hide, I'll place a pure-color mask over the area, instead of a blur or pixelation effect.\n\nIntuitively, blur might do better than pixelation... but that might just be my own monkey brain talking. I'd love to hear more in the comments if you've dealt with that kind of image processing in the past.\n\nIt's amazing what people can do with a neural network, ingenuity, and time.\n\nI guess the moral of the story is if you don't want people to read censored data... don't post it online.\n\ntl;dr - check out KoKoToru's de-pixelate GitHub repo for all the details on how it was done."
                ],
                "output": "readability/",
                "pwd": "/data/archive/1765879511.322919",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-16T10:05:52.727731+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-12-16T10:05:50.554022+00:00",
                "index_texts": null,
                "output": "It's easier than ever to de-censor videos | Jeff Geerling",
                "pwd": "/data/archive/1765879511.322919",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-16T10:05:50.358106+00:00",
                "status": "succeeded"
            }
        ],
        "wget": []
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": "TimeoutExpired: Command '['/usr/bin/curl', '--silent', '--location', '--compressed', '--proxy', 'socks5://tor-socks-proxy:9150', '--head', '--max-time', '60', '--user-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)', 'https://web.archive.org/save/https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos']' timed out after 60 seconds",
        "dom": "output.html",
        "favicon": "favicon.ico",
        "git": null,
        "media": "ArchiveError: Failed to save media",
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "It's easier than ever to de-censor videos | Jeff Geerling",
        "warc": null,
        "wget": null
    },
    "link_dir": "/data/archive/1765879511.322919",
    "newest_archive_date": "2025-12-16T10:06:45.538183+00:00",
    "num_failures": 2,
    "num_outputs": 7,
    "oldest_archive_date": "2025-12-16T10:05:28.381758+00:00",
    "path": "/blog/2025/its-easier-ever-de-censor-videos",
    "schema": "Link",
    "scheme": "https",
    "snapshot_abid": "snp_01KCK9XYD8C176954701SEYMP8",
    "snapshot_id": "64b0bc52-221a-4e14-951d-f44172ef52c8",
    "sources": [
        "/data/sources/1765879508-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1765879511.322919",
    "title": "It's easier than ever to de-censor videos | Jeff Geerling",
    "url": "https://www.jeffgeerling.com/blog/2025/its-easier-ever-de-censor-videos"
}