PageSourceSearch

https://ryusei.io/en/tips/image-convert-to-webp

html ryusei.io collected 2026-10-02 01:03:17 UTC 194,767 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/06g24ktnsxhc4.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/3e7kstepmktmx.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1hdeww16j18ck.js"/>
1<script src="/_next/static/chunks/3nv3mnmbc-66r.js" async=""></script>
1<script src="/_next/static/chunks/1nml7edl9gqcv.js" async=""></script>
1<script src="/_next/static/chunks/0oq-csnp5z8of.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-1mj_s-rlck_4u.js" async=""></script>
1<script src="/_next/static/chunks/0er0-ieyjh0la.js" async=""></script>
1<script src="/_next/static/chunks/113yjo7r9fa0-.js" async=""></script>
1<script src="/_next/static/chunks/0n7u84gzsuhra.js" async=""></script>
1<script src="/_next/static/chunks/1fvwqygqlexo7.js" async=""></script>
1<script src="/_next/static/chunks/0ur-o6t7pewci.js" async=""></script>
1<script src="/_next/static/chunks/2v40lipx7f3ld.js" async=""></script>
1<script src="/_next/static/chunks/3sbwsqcslhm5-.js" async=""></script>
1<script src="/_next/static/chunks/077uyb8i0zoq7.js" async=""></script>
1<script src="/_next/static/chunks/1cfccinl3-nwe.js" async=""></script>
1<script src="/_next/static/chunks/39qpm_50mo2u5.js" async=""></script>
1<script src="/_next/static/chunks/301p4tin60qd5.js" async=""></script>
1<link rel="preload" href="https://fundingchoicesmessages.google.com/i/pub-3845645533442741?ers=1" as="script"/><link rel="preload" href="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3845645533442741" as="script" crossorigin=""/><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-MHFK4R0NEP" as="script"/><link rel="preload" href="/fonts/open-sans-latin.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><title>画像をWEBP形式へ変換するためのCLIツールの覚書 | Ryusei.IO</title><meta name="description" content="画像をWEBP形式へ変換するためのCLIツールの覚書"/><meta name="application-name" content="Ryusei.IO"/><meta name="generator" content="Next.js"/><meta name="referrer" content="strict-origin-when-cross-origin"/><link rel="canonical" href="https://ryusei.io/tips/image-convert-to-webp"/><meta property="og:title" content="画像をWEBP形式へ変換するためのCLIツールの覚書 | Ryusei.IO"/><meta property="og:description" content="画像をWEBP形式へ変換するためのCLIツールの覚書"/><meta property="og:url" content="https://ryusei.io/en/tips/image-convert-to-webp"/><meta property="og:site_name" content="Ryusei.IO"/><meta property="og:locale" content="en"/><meta property="og:image" content="https://ryusei.io/home-ogp.png"/><meta property="og:image:width" content="800"/><meta property="og:image:height" content="450"/><meta property="og:image:alt" content="Ryusei.IO"/><meta property="og:type" content="article"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@ryusei__46"/><meta name="twitter:creator" content="@ryusei__46"/><meta name="twitter:title" content="画像をWEBP形式へ変換するためのCLIツールの覚書 | Ryusei.IO"/><meta name="twitter:description" content="画像をWEBP形式へ変換するためのCLIツールの覚書"/><meta name="twitter:image" content="https://ryusei.io/home-ogp.png"/><meta name="twitter:image:alt" content="Ryusei.IO"/><meta name="twitter:image:width" content="800"/><meta name="twitter:image:height" content="450"/><link rel="icon" href="/-/icon-1uwpyr.png?icon.0jo7r6k_gf046.png" sizes="512x512" type="image/png"/><link rel="apple-touch-icon" href="/-/apple-icon-1uwpyr.png?apple-icon.0jo7r6k_gf046.png" sizes="512x512" type="image/png"/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
1</head><body class="min-h-screen bg-background font-sans"><div hidden=""><!--$--><!--/$--></div>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Person","@id":"https://ryusei.io#person","name":"Ryusei","url":"https://ryusei.io","image":"https://ryusei.io/api/media/file/avatar.webp","description":"Despite being visually impaired with one nearly completely blind, he works as a full-stack engineer.","sameAs":["https://github.com/ryusei-48","https://x.com/ryusei__46"]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","@id":"https://ryusei.io#website","name":"Ryusei.IO","url":"https://ryusei.io/en/","inLanguage":"en","publisher":{"@id":"https://ryusei.io#person"}}</script>
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","dark",null,["light","dark"],null,true,true)</script>
1<div aria-hidden="true" data-navigation-progress="idle" class="pointer-events-none fixed inset-x-0 top-0 z-80 h-[3px] bg-background/80 transition-opacity duration-300 opacity-0"><div class="h-full rounded-r-full bg-primary shadow-[0_0_10px_2px_var(--color-primary)] transition-[width] duration-200 ease-out" style="width:0%"></div></div><span role="status" aria-live="polite" class="sr-only"></span>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","@id":"https://ryusei.io/en/tips/image-convert-to-webp#article","mainEntityOfPage":{"@type":"WebPage","@id":"https://ryusei.io/en/tips/image-convert-to-webp"},"url":"https://ryusei.io/en/tips/image-convert-to-webp","headline":"画像をWEBP形式へ変換するためのCLIツールの覚書","description":"画像をWEBP形式へ変換するためのCLIツールの覚書","image":"https://ryusei.io/en/home-ogp.png","datePublished":"2025-12-10T06:11:43.410Z","dateModified":"2025-12-10T06:27:11.206Z","inLanguage":"en","author":{"@id":"https://ryusei.io#person"},"publisher":{"@id":"https://ryusei.io#person"},"isPartOf":{"@id":"https://ryusei.io#website"}}</script>
1<div class="w-full"><header class="w-full"><aside class="w-full py-2 px-2 bg-primary/80 dark:bg-primary/40 hidden lg:block"><p class="w-full sm:max-w-7xl mx-auto text-white text-center text-sm truncate">A technical media by a full stack engineer with low vision.<span class="hidden xl:inline"> / <!-- -->Cross-platform development with Claude Code</span></p></aside><div class="w-full sm:max-w-7xl mx-auto p-5 flex flex-row items-center gap-x-4"><div class="shrink-0 flex flex-row gap-x-2"><button data-slot="sheet-trigger" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 px-4 py-2 has-[&gt;svg]:px-3 lg:hidden size-fit cursor-pointer !px-1 !py-1" aria-label="Menu" type="button" aria-haspopup="dialog" aria-expanded="false" data-state="closed"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" class="!size-[2em]" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M64 384h384v-42.666H64V384zm0-106.666h384v-42.667H64v42.667zM64 128v42.665h384V128H64z"></path></svg></button><div class="text-2xl sm:text-3xl font-semibold"><a href="/en">Ryusei.IO</a></div></div><nav class="grow flex flex-row justify-end"><ul class="flex flex-wrap items-center gap-2 sm:gap-3 lg:gap-5"><li class="hidden md:block"><a href="/en">Home</a></li><li class="relative hidden md:block"><button type="button" class="cursor-pointer" aria-label="Products" data-state="closed" data-slot="hover-card-trigger">Products</button><button type="button" aria-haspopup="dialog" aria-expanded="false" data-state="closed" data-slot="popover-trigger" aria-label="Toggle product list view" class="absolute inset-0 z-[-1]"></button></li><li class="relative hidden md:block"><button type="button" class="cursor-pointer" aria-label="Category" data-state="closed" data-slot="hover-card-trigger">Category</button><button type="button" aria-haspopup="dialog" aria-expanded="false" data-state="closed" data-slot="popover-trigger" aria-label="Toggle category list view" class="absolute inset-0 z-[-1]"></button></li><li class="hidden md:block"><button type="button" aria-label="Contact" class="cursor-pointer flex flex-row items-center gap-x-2" aria-haspopup="dialog" aria-expanded="false" data-state="closed" data-slot="dialog-trigger">Contact</button></li><li><button data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-9 px-4 py-2 has-[&gt;svg]:px-3 gap-x-1 text-lg cursor-pointer !px-0 !py-0 sm:!px-1 sm:!py-1 m-0" title="日本語に切り替え" aria-label="日本語に切り替え"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" aria-label="language toggle" class="text-lg" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m6.93 6h-2.95a15.7 15.7 0 0 0-1.38-3.56A8.03 8.03 0 0 1 18.92 8M12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96M4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A8 8 0 0 1 5.08 16m2.95-8H5.08a8 8 0 0 1 4.33-3.56A15.7 15.7 0 0 0 8.03 8M12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96M14.34 14H9.66c-.09-.66-.
116-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2m.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2z"></path></svg>English</button></li><li><button data-slot="dropdown-menu-trigger" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 relative cursor-pointer !px-0 !py-1 size-fit sm:!px-1 sm:!py-1 m-0" title="テーマ切り替え" aria-label="テーマ切り替え" type="button" id="radix-_R_qiqnpfiv9pfivb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[1.2em] w-[1.2em] scale-100 rotate-0 dark:absolute transition-all dark:scale-0 dark:-rotate-90" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon h-[1.2em] w-[1.2em] scale-0 rotate-90 absolute dark:[position:unset] transition-all dark:scale-100 dark:rotate-0" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button></li><li class="hidden sm:block"><a target="_blank" class="flex items-center gap-x-2" href="https://github.com/ryusei-48"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" aria-label="GitHub Profile" class="text-lg" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><title>GitHub Profile</title><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a></li><li class="hidden sm:block"><a target="_blank" class="flex items-center gap-x-2" href="https://x.com/ryusei__46"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16" aria-label="X Profile" class="text-lg" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><title>X Profile</title><path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"></path></svg></a></li></ul></nav></div></header><div class="w-dvw fixed top-0 left-0 z-[45] transition-all backdrop-blur-md bg-white/50 dark:bg-black/50 shadow-md duration-500 opacity-0 pointer-events-none"><header class="w-full sm:max-w-7xl mx-auto transition-all duration-500 px-5 flex flex-row items-center gap-x-4 py-5"><div class="shrink-0 flex flex-row gap-x-2"><button data-slot="sheet-trigger" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;
1size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 px-4 py-2 has-[&gt;svg]:px-3 lg:hidden size-fit cursor-pointer !px-1 !py-1" aria-label="Menu" type="button" aria-haspopup="dialog" aria-expanded="false" data-state="closed"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" class="!size-[2em]" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M64 384h384v-42.666H64V384zm0-106.666h384v-42.667H64v42.667zM64 128v42.665h384V128H64z"></path></svg></button><div class="text-2xl transition-all duration-500 font-semibold sm:text-3xl"><a href="/en">Ryusei.IO</a></div></div><nav class="grow flex flex-row justify-end"><ul class="flex flex-wrap items-center gap-2 sm:gap-3 lg:gap-5"><li class="hidden md:block"><a href="/en">Home</a></li><li class="relative hidden md:block"><button type="button" class="cursor-pointer" aria-label="Products" data-state="closed" data-slot="hover-card-trigger">Products</button><button type="button" aria-haspopup="dialog" aria-expanded="false" data-state="closed" data-slot="popover-trigger" aria-label="Toggle product list view" class="absolute inset-0 z-[-1]"></button></li><li class="relative hidden md:block"><button type="button" class="cursor-pointer" aria-label="Category" data-state="closed" data-slot="hover-card-trigger">Category</button><button type="button" aria-haspopup="dialog" aria-expanded="false" data-state="closed" data-slot="popover-trigger" aria-label="Toggle category list view" class="absolute inset-0 z-[-1]"></button></li><li class="hidden md:block"><button type="button" aria-label="Contact" class="cursor-pointer flex flex-row items-center gap-x-2" aria-haspopup="dialog" aria-expanded="false" data-state="closed" data-slot="dialog-trigger">Contact</button></li><li><button data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-9 px-4 py-2 has-[&gt;svg]:px-3 gap-x-1 text-lg cursor-pointer !px-0 !py-0 sm:!px-1 sm:!py-1 m-0" title="日本語に切り替え" aria-label="日本語に切り替え"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" aria-label="language toggle" class="text-lg" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m6.93 6h-2.95a15.7 15.7 0 0 0-1.38-3.56A8.03 8.03 0 0 1 18.92 8M12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96M4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A8 8 0 0 1 5.08 16m2.95-8H5.08a8 8 0 0 1 4.33-3.56A15.7 15.7 0 0 0 8.03 8M12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96M14.34 14H9.66c-.09-.66-.16-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2m.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2z"></path></svg>English</button></li><li><button data-slot="dropdown-menu-trigger" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 relative cursor-pointer !px-0 !py-1 size-fit sm:!px-1 sm:!py-1 m-0" title="テーマ切り替え" aria-label="テーマ切り替え" type="button" id="radix-_R_6kqnpfiv9pfivb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[1.2em] w-[1.2em] scale-100 rotate-0 dark:absolute transition-all dark:scale-0 dark:-rotate-90" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon h-[1.2em] w-[1.2em] scale-0 rotate-90 absolute dark:[position:unset] transition-all dark:scale-100 dar
1k:rotate-0" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button></li><li class="hidden sm:block"><a target="_blank" class="flex items-center gap-x-2" href="https://github.com/ryusei-48"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" aria-label="GitHub Profile" class="text-lg" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><title>GitHub Profile</title><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a></li><li class="hidden sm:block"><a target="_blank" class="flex items-center gap-x-2" href="https://x.com/ryusei__46"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16" aria-label="X Profile" class="text-lg" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><title>X Profile</title><path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"></path></svg></a></li></ul></nav></header></div></div><div class="w-full"><main class="w-full flex flex-col justify-center gap-y-4"><aside class="w-full mt-5 px-5 overflow-hidden transition-opacity duration-300 opacity-0"><div class="swiper w-full mx-auto"><div class="swiper-wrapper"><div class="swiper-slide w-1/6 aspect-video"><a class="w-full h-full block relative overflow-hidden" href="/en/article/x-space-archive-replay"><img alt="A play button with a lock and sound waves on a black background, illustrating why an X Space recording will not play and how long it lasts" loading="lazy" width="1200" height="630" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-space-archive-replay-thumbnail-en.webp&amp;w=1200&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-space-archive-replay-thumbnail-en.webp&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-space-archive-replay-thumbnail-en.webp&amp;w=3840&amp;q=75"/><div class="absolute bottom-0 left-0 w-full bg-black/50 backdrop-blur-sm text-white p-2 text-sm"><span title="How to Listen to X Space Recordings | Why They Won’t Play and How Long They Last" class="line-clamp-2">How to Listen to X Space Recordings | Why They Won’t Play and How Long They Last</span></div></a></div><div class="swiper-slide w-1/6 aspect-video"><a class="w-full h-full block relative overflow-hidden" href="/en/article/speaker-diarization"><img alt="A diagram showing one waveform splitting into three rows labelled speaker A, B and C" loading="lazy" width="1200" height="630" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fdiarization-thumbnail-en.webp&amp;w=1200&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fdiarization-thumbnail-en.webp&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fdiarization-thumbnail-en.webp&amp;w=3840&amp;q=75"/><div class="absolute bottom-0 left-0 w-full bg-black/50 backdrop-blur-sm text-white p-2 text-sm"><span title="Free Transcription with Speaker Diarization | Split by Who Spoke" class="line-clamp-2">Free Transcription with Speaker Diarization | Split by Who Spoke</span></div></a></div><div class="swiper-slide w-1/6 aspect-video"><a class="w-full h-full block relative overflow-hidden" href="/en/article/m4a-transcription"><img alt="A diagram showing an m4a file being turned into text split by speaker" loading="lazy" width="1200" height="630" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fm4a-transcription-thumbnail-en.webp&amp;w=1200&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fm4a-transcription-thumbnail-en.webp&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fm4a-transcription-thumbnail-en.webp&amp;w=3840&amp;q=75"/><div class="absolute bottom-0 left-0 w-full bg-black/50 backdrop-blur-sm text-white p-2 text-sm"><span title="How to Transcribe an m4a File | No Conversion, No Upload" class="line-clamp-2">How to Transcribe an m4a File | No Conversion, No Upload</span></div></a></div><div class="swiper-slide w-1/6 aspect-video"><a class="w-full h-full block relative overflow-hidden" href="/en/article/image-stylize">
1<img alt="A photo alongside four generated versions in illustration, anime and mosaic styles" loading="lazy" width="1200" height="630" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-stylize-thumbnail-en.webp&amp;w=1200&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-stylize-thumbnail-en.webp&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-stylize-thumbnail-en.webp&amp;w=3840&amp;q=75"/><div class="absolute bottom-0 left-0 w-full bg-black/50 backdrop-blur-sm text-white p-2 text-sm"><span title="How to Turn Photos into Illustrations and Anime Art|7 Styles at Once, No Upload" class="line-clamp-2">How to Turn Photos into Illustrations and Anime Art|7 Styles at Once, No Upload</span></div></a></div><div class="swiper-slide w-1/6 aspect-video"><a class="w-full h-full block relative overflow-hidden" href="/en/article/image-ai-upscale"><img alt="A small photo next to a larger, sharper version produced by AI upscaling" loading="lazy" width="1200" height="630" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-ai-upscale-thumbnail-en.webp&amp;w=1200&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-ai-upscale-thumbnail-en.webp&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-ai-upscale-thumbnail-en.webp&amp;w=3840&amp;q=75"/><div class="absolute bottom-0 left-0 w-full bg-black/50 backdrop-blur-sm text-white p-2 text-sm"><span title="How to Upscale Images with AI|No Blur When Enlarged, No Upload" class="line-clamp-2">How to Upscale Images with AI|No Blur When Enlarged, No Upload</span></div></a></div><div class="swiper-slide w-1/6 aspect-video"><a class="w-full h-full block relative overflow-hidden" href="/en/article/old-photo-face-restore"><img alt="A portrait from around 1900 shown side by side, with the right half restored by AI and visibly sharper" loading="lazy" width="1200" height="630" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fold-photo-face-restore-thumbnail-en.webp&amp;w=1200&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fold-photo-face-restore-thumbnail-en.webp&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fold-photo-face-restore-thumbnail-en.webp&amp;w=3840&amp;q=75"/><div class="absolute bottom-0 left-0 w-full bg-black/50 backdrop-blur-sm text-white p-2 text-sm"><span title="How to Restore Faces in Old Photos with AI|Free, No Upload, Entirely in Your Browser" class="line-clamp-2">How to Restore Faces in Old Photos with AI|Free, No Upload, Entirely in Your Browser</span></div></a></div><div class="swiper-slide w-1/6 aspect-video"><a class="w-full h-full block relative overflow-hidden" href="/en/article/image-remove-background"><img alt="A photo with its background on the left half and removed on the right half" loading="lazy" width="1200" height="630" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-remove-background-thumbnail-en.webp&amp;w=1200&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-remove-background-thumbnail-en.webp&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-remove-background-thumbnail-en.webp&amp;w=3840&amp;q=75"/><div class="absolute bottom-0 left-0 w-full bg-black/50 backdrop-blur-sm text-white p-2 text-sm"><span title="How to Remove an Image Background | Free, No Upload, People and Products Alike" class="line-clamp-2">How to Remove an Image Background | Free, No Upload, People and Products Alike</span></div></a></div><div class="swiper-slide w-1/6 aspect-video"><a class="w-full h-full block relative overflow-hidden" href="/en/article/x-video-how-to-download"><img alt="A post on X containing a video, with the saved MP4 file layered in front of it" loading="lazy" width="1200" height="630" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-video-how-to-download-thumbn
1ail-en.webp&amp;w=1200&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-video-how-to-download-thumbnail-en.webp&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-video-how-to-download-thumbnail-en.webp&amp;w=3840&amp;q=75"/><div class="absolute bottom-0 left-0 w-full bg-black/50 backdrop-blur-sm text-white p-2 text-sm"><span title="How to Save Videos from X (Formerly Twitter) | Step-by-Step for PC and Phone" class="line-clamp-2">How to Save Videos from X (Formerly Twitter) | Step-by-Step for PC and Phone</span></div></a></div><div class="swiper-slide w-1/6 aspect-video"><a class="w-full h-full block relative overflow-hidden" href="/en/article/browser-video-webcodecs"><img alt="A comparison of how long it took to convert a 20-second video: 20.1 seconds with ffmpeg.wasm against 0.82 seconds with WebCodecs and mediabunny" loading="lazy" width="1200" height="630" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fbrowser-video-webcodecs-thumbnail-en.webp&amp;w=1200&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fbrowser-video-webcodecs-thumbnail-en.webp&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fbrowser-video-webcodecs-thumbnail-en.webp&amp;w=3840&amp;q=75"/><div class="absolute bottom-0 left-0 w-full bg-black/50 backdrop-blur-sm text-white p-2 text-sm"><span title="Building In-Browser Video Conversion with WebCodecs | Why I Skipped ffmpeg.wasm" class="line-clamp-2">Building In-Browser Video Conversion with WebCodecs | Why I Skipped ffmpeg.wasm</span></div></a></div><div class="swiper-slide w-1/6 aspect-video"><a class="w-full h-full block relative overflow-hidden" href="/en/article/subtitle-burn-in-browser"><img alt="A headline reading &quot;Burn Subtitles into Your Video&quot; next to a video player with a subtitle burned into the picture" loading="lazy" width="1200" height="630" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fsubtitle-burn-in-browser-thumbnail-en.webp&amp;w=1200&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fsubtitle-burn-in-browser-thumbnail-en.webp&amp;w=3840&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fsubtitle-burn-in-browser-thumbnail-en.webp&amp;w=3840&amp;q=75"/><div class="absolute bottom-0 left-0 w-full bg-black/50 backdrop-blur-sm text-white p-2 text-sm"><span title="How to Add Subtitles to a Video in Your Browser | Free, No Install, No Upload" class="line-clamp-2">How to Add Subtitles to a Video in Your Browser | Free, No Install, No Upload</span></div></a></div></div><div class="swiper-button-prev"></div><div class="swiper-button-next"></div></div></aside><header class="w-full px-4 sm:px-2 py-4 sm:py-8 flex flex-col justify-center items-center gap-y-3"><h1 style="animation-duration:1s" class="animate__animated animate__fadeInDown text-2xl font-bold text-center">画像をWEBP形式へ変換するためのCLIツールの覚書</h1><div style="animation-duration:1.8s" class="animate__animated animate__fadeInDown flex flex-col lg:flex-row lg:flex-wrap gap-x-5 gap-y-3 justify-center items-center"><div class="inline-flex flex-wrap items-center justify-center gap-x-4 gap-y-2 text-sm"><span class="text-base">Created on<!-- -->:<!-- -->December 10, 2025 at 3:11 PM</span><time dateTime="2025-12-10T06:27:11.206Z" class="text-base">Updated on<!-- -->:<!-- -->December 10, 2025 at 3:27 PM</time></div></div></header><div class="w-full lg:max-w-7xl mx-auto p-2 flex flex-col lg:flex-row"><div class="w-full lg:grow lg:min-w-0"><article class="lexical-content w-full rounded-sm mt-4 lg:mt-0 px-4 lg:px-8 lg:py-4 bg-stone-100 dark:bg-stone-900"><div class="payload-richtext"><p>webp公式のユーティリティツールを以下からダウンロードする。</p><a href="https://developers.google.com/speed/webp/docs/precompiled?hl=ja&amp;_gl=1*1gh7ajd*_up*MQ..*_ga*MTQyNjg1OTYyNC4xNzY1MzQ3MDcy*_ga_SM8HXJ53K2*czE3NjUzNDcwNzEkbzEkZzAkdDE3NjUzNDcwNzEkajYwJGwwJGgw" target="_blank" class="w-full rounded-sm text-foreground hover:no-underline mb-6 mt-2 border-2 border-dotted border-stone-200 dark:border-stone-700 flex flex-col sm:flex-row items-center bg-stone-200 dark:bg-stone-800 transition-all ease-in-out hover:bg-stone-300 dark:hover:bg-stone-700" rel="noopener"><div class="w-full sm:w-[30%] shrink-0 flex flex-col items-start"><div class="w-full min-h-0 overflow-hidden bg-stone-200 dark:bg-stone-800 relative" style="aspect-ratio:16 / 9"><img src="/my-rest/ogp-image-cache?url=https%3A%2F%2Fwww.gstatic.
1com%2Fdevrel-devsite%2Fprod%2Fv9de0f443992d54ad799f913d3a82969ff613e39ab9e3e056983c556b3c2ef1f8%2Fdevelopers%2Fimages%2Fopengraph%2Fgoogle-green.png" alt="" width="480" height="270" loading="lazy" class="absolute top-1/2 left-0 z-10 mt-0 mb-0 h-full object-cover -translate-y-1/2"/></div></div><div class="w-full sm:grow flex flex-col gap-y-2 py-2 pr-2 pl-4"><span title="プリコンパイルされたユーティリティ  |  WebP  |  Google for Developers" class="text-lg mt-0 mb-0 font-semibold line-clamp-2">プリコンパイルされたユーティリティ  |  WebP  |  Google for Developers</span><div class="w-full mt-auto mb-1 flex flex-row items-center justify-center sm:justify-start gap-x-2"><img src="https://www.google.com/s2/favicons?sz=32&amp;domain_url=https://developers.google.com/speed/webp/docs/precompiled?hl=ja&amp;_gl=1*1gh7ajd*_up*MQ..*_ga*MTQyNjg1OTYyNC4xNzY1MzQ3MDcy*_ga_SM8HXJ53K2*czE3NjUzNDcwNzEkbzEkZzAkdDE3NjUzNDcwNzEkajYwJGwwJGgw" alt="favicon" loading="lazy" class="w-[1.2em] my-0 shrink-0"/><span class="text-sm text-muted-foreground truncate">developers.google.com</span></div></div></a><p>「libwebp」という名称で各OSごとにバイナリーが提供されているので、自分の環境にあったものをダウンロードする。</p><p>「libwebp」自体はコマンドラインツールなので、WindowsならコマンドプロンプトやPowerShellから実行することになる。</p><p>プログラム本体はどこに置いても構わないが、環境変数にパスを登録しておいた方が便利だと思う。</p><p>以下にそれぞれコスパ最高な設定で、「不可逆圧縮」と「可逆圧縮」両方のコマンドを示しておく。</p><p>◇不可逆圧縮</p><div class="w-full mb-4 relative"><span class="absolute top-0 left-0 py-1 px-3 text-sm cursor-default bg-stone-300 dark:bg-stone-700">commandline</span><button type="button" class="absolute top-0 right-0 py-2 px-2 text-white bg-transparent" aria-label="Copy code to clipboard" data-state="closed" data-slot="tooltip-trigger"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"></path></svg></button><pre class="w-full block overflow-x-auto"><code class="hljs !pt-[2em] language-bash">cwebp -q 92 -m 6 -o lossy_image.webp image.jpg</code></pre></div><p>◇可逆圧縮</p><div class="w-full mb-4 relative"><span class="absolute top-0 left-0 py-1 px-3 text-sm cursor-default bg-stone-300 dark:bg-stone-700">commandline</span><button type="button" class="absolute top-0 right-0 py-2 px-2 text-white bg-transparent" aria-label="Copy code to clipboard" data-state="closed" data-slot="tooltip-trigger"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"></path></svg></button><pre class="w-full block overflow-x-auto"><code class="hljs !pt-[2em] language-bash">cwebp -lossless -q 100 -m 6 -progress -o lossless_image.webp image.png</code></pre></div><p>◇参考サイト</p><a href="https://blog.chaotic-notes.com/articles/convert-image-format-to-webp/" target="_blank" class="w-full rounded-sm text-foreground hover:no-underline mb-6 mt-2 border-2 border-dotted border-stone-200 dark:border-stone-700 flex flex-col sm:flex-row items-center bg-stone-200 dark:bg-stone-800 transition-all ease-in-out hover:bg-stone-300 dark:hover:bg-stone-700" rel="noopener"><div class="w-full sm:w-[30%] shrink-0 flex flex-col items-start"><div class="w-full min-h-0 overflow-hidden bg-stone-200 dark:bg-stone-800 relative" style="aspect-ratio:16 / 9"><img src="/my-rest/ogp-image-cache?url=https%3A%2F%2Fblog.chaotic-notes.com%2Fimages%2Ftechnology%2Fsitespeed%2Ftitle.webp" alt="" width="480" height="270" loading="lazy" class="absolute top-1/2 left-0 z-10 mt-0 mb-0 h-full object-cover -translate-y-1/2"/></div></div><div class="w-full sm:grow flex flex-col gap-y-2 py-2 pr-2 pl-4"><span title="WebP形式の画像に統一してウェブサイトを高速化しよう" class="text-lg mt-0 mb-0 font-semibold line-clamp-2">WebP形式の画像に統一してウェブサイトを高速化しよう</span>
1<p title="ウェブサイトで使っている JPEG 形式や PNG 形式の画像から、優秀な次世代フォーマットである WebP に変換する方法をご紹介します。" class="text-sm mb-0 text-muted-foreground line-clamp-3">ウェブサイトで使っている JPEG 形式や PNG 形式の画像から、優秀な次世代フォーマットである WebP に変換する方法をご紹介します。</p><div class="w-full mt-auto mb-1 flex flex-row items-center justify-center sm:justify-start gap-x-2"><img src="https://www.google.com/s2/favicons?sz=32&amp;domain_url=https://blog.chaotic-notes.com/articles/convert-image-format-to-webp/" alt="favicon" loading="lazy" class="w-[1.2em] my-0 shrink-0"/><span class="text-sm text-muted-foreground truncate">blog.chaotic-notes.com</span></div></div></a></div><aside class="w-full flex flex-col lg:flex-row items-center justify-center lg:justify-end gap-x-4 gap-y-3 rounded-sm bg-stone-100 dark:bg-stone-900 mt-4 py-4"><span class="text-2xl font-medium cursor-default">Share</span><div class="flex flex-row flex-wrap gap-3"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fryusei.io%2Fen%2Ftips%2Fimage-convert-to-webp&amp;text=%E7%94%BB%E5%83%8F%E3%82%92WEBP%E5%BD%A2%E5%BC%8F%E3%81%B8%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AECLI%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E8%A6%9A%E6%9B%B8" target="_blank" rel="noopener noreferrer" aria-label="Share on X (Twitter)" title="Share on X (Twitter)" class="p-2 bg-black text-white rounded hover:bg-black transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></a><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fryusei.io%2Fen%2Ftips%2Fimage-convert-to-webp" target="_blank" rel="noopener noreferrer" aria-label="Share on Facebook" title="Share on Facebook" class="p-2 bg-blue-700 text-white rounded hover:bg-blue-800 transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h98.2V334.2H109.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H255V480H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"></path></svg></a><a href="https://www.linkedin.com/shareArticle?mini=true&amp;url=https%3A%2F%2Fryusei.io%2Fen%2Ftips%2Fimage-convert-to-webp&amp;title=%E7%94%BB%E5%83%8F%E3%82%92WEBP%E5%BD%A2%E5%BC%8F%E3%81%B8%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AECLI%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E8%A6%9A%E6%9B%B8" target="_blank" rel="noopener noreferrer" aria-label="Share on LinkedIn" title="Share on LinkedIn" class="p-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg></a><a href="https://b.hatena.ne.jp/add?mode=confirm&amp;url=https%3A%2F%2Fryusei.io%2Fen%2Ftips%2Fimage-convert-to-webp&amp;title=%E7%94%BB%E5%83%8F%E3%82%92WEBP%E5%BD%A2%E5%BC%8F%E3%81%B8%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AECLI%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E8%A6%9A%E6%9B%B8" target="_blank" rel="noopener noreferrer" aria-label="Share on Hatena Bookmark" title="Share on Hatena Bookmark" class="p-2 bg-orange-400 text-white rounded hover:bg-orange-500 transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M20.47 0C22.42 0 24 1.58 24 3.53v16.94c0 1.95-1.58 3.53-3.53 3.53H3.53C1.58 24 0 22.42 0 20.47V3.53C0 1.58 1.58 0 3.53 0h16.94zm-3.705 14.47c-.78 0-1.41.63-1.41 1.41s.63 1.414 1.41 1.414 1.41-.645 1.41-1.425-.63-1.41-1.41-1.41zM8.61 17.247c1.2 0 2.056-.042 2.58-.12.526-.084.976-.222 1.32-.412.45-.232.78-.564 1.02-.99s.36-.915.36-1.48c0-.78-.21-1.403-.63-1.87-.42-.48-.99-.734-1.74-.794.66-.18 1.156-.45 1.456-.81.315-.344.465-.824.465-1.424 
10-.48-.103-.885-.3-1.26-.21-.36-.493-.645-.883-.87-.345-.195-.735-.315-1.215-.405-.464-.074-1.29-.12-2.474-.12H5.654v10.486H8.61zm.736-4.185c.705 0 1.185.088 1.44.262.27.18.39.495.39.93 0 .405-.135.69-.42.855-.27.18-.765.254-1.44.254H8.31v-2.297h1.05zm8.656.706v-7.06h-2.46v7.06H18zM8.925 9.08c.71 0 1.185.08 1.432.24.245.16.367.435.367.83 0 .38-.13.646-.39.804-.265.154-.747.232-1.452.232h-.57V9.08h.615z"></path></svg></a><button type="button" title="Copy link to clipboard" aria-label="Copy link to clipboard" class="p-2 bg-gray-500 text-white rounded hover:bg-gray-600 transition-colors"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 640 512" height="20" width="20" xmlns="http://www.w3.org/2000/svg"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"></path></svg></button></div></aside><aside class="mt-6 flex flex-col"><a class="w-full flex flex-row items-center justify-start gap-x-3 text-foreground hover:no-underline transition-colors hover:bg-stone-200 dark:hover:bg-stone-800 p-2 rounded" title="【Windows】システム修復・検証コマンドの覚書" href="/en/tips/windows-system-check-command"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke-width="2" d="M2,12 L22,12 M13,3 L22,12 L13,21" transform="matrix(-1 0 0 1 24 0)"></path></svg><span class="text-sm line-clamp-2">【Windows】システム修復・検証コマンドの覚書</span></a></aside></article><aside class="w-full my-4"><aside class="w-full mt-6"><div class="w-full aspect-square md:aspect-auto md:h-[280px]"><ins class="adsbygoogle" style="display:block;width:100%;height:100%" data-ad-client="ca-pub-3845645533442741" data-ad-slot="9579010534" data-ad-format="auto" data-full-width-responsive="true"></ins></div></aside></aside><aside class="w-full mt-6 rounded-sm bg-stone-100 dark:bg-stone-900"><h2 class="text-2xl font-semibold px-4 py-3">Other Latest Tips</h2><div class="w-full flex flex-wrap items-stretch mt-3"><article class="w-full lg:w-1/2 p-2 flex"><a class="flex flex-col flex-1 p-2 rounded-sm bg-stone-100 dark:bg-stone-800 border-2 border-solid border-transparent transition-colors hover:border-stone-300 dark:hover:border-stone-600" href="/en/tips/windows-system-check-command"><h3 title="【Windows】システム修復・検証コマンドの覚書" class="text-lg font-semibold line-clamp-2 mb-2">【Windows】システム修復・検証コマンドの覚書</h3><p title="【Windows】システム修復・検証コマンドの覚書" class="text-sm text-muted-foreground line-clamp-4">【Windows】システム修復・検証コマンドの覚書</p><ul class="w-full mt-2"></ul><span class="mt-auto place-self-end text-muted-foreground flex flex-row items-center gap-x-1"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" aria-label="post date" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><g id="Timer"><g><path d="M2.336,9.685A9.934,9.934,0,0,0,13.592,21.808,9.931,9.931,0,0,0,20.708,7.23,10.046,10.046,0,0,0,12,2.072a.507.507,0,0,0-.5.5v4.2a.5.5,0,0,0,1,0v-4.2l-.5.5a8.935,8.935,0,0,1,8.433,11.892A8.938,8.938,0,0,1,6.468,19.027,9.041,9.041,0,0,1,3.3,9.951c.142-.627-.822-.9-.964-.266Z"></path><path d="M7.4,8.117a.5.5,0,0,1,.707-.707l4.243,4.242h0a.5.5,0,0,1-.707.707Z"></path></g></g></svg>August 26, 2025 at 10:14 AM</span></a></article><article class="w-full lg:w-1/2 p-2 flex">
1<a class="flex flex-col flex-1 p-2 rounded-sm bg-stone-100 dark:bg-stone-800 border-2 border-solid border-transparent transition-colors hover:border-stone-300 dark:hover:border-stone-600" href="/en/tips/python-pip-command-memo"><h3 title="Pythonのパッケージ管理コマンド「pip」の覚書" class="text-lg font-semibold line-clamp-2 mb-2">Pythonのパッケージ管理コマンド「pip」の覚書</h3><p title="Pythonのパッケージ管理コマンド「pip」の覚書" class="text-sm text-muted-foreground line-clamp-4">Pythonのパッケージ管理コマンド「pip」の覚書</p><ul class="w-full mt-2"><li class="inline-flex flex-row items-center justify-end gap-x-1 text-xs bg-stone-300 dark:bg-stone-700 text-stone-800 dark:text-stone-200 rounded-full px-2 py-1 mr-1 mt-2"><img alt="icon" loading="lazy" width="30" height="30" decoding="async" data-nimg="1" class="size-[1.3em] rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fprograming.webp&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fprograming.webp&amp;w=64&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fprograming.webp&amp;w=64&amp;q=75"/>Programing</li><li class="inline-flex flex-row items-center justify-end gap-x-1 text-xs bg-stone-300 dark:bg-stone-700 text-stone-800 dark:text-stone-200 rounded-full px-2 py-1 mr-1 mt-2"><img alt="icon" loading="lazy" width="30" height="30" decoding="async" data-nimg="1" class="size-[1.3em] rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fpython.webp&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fpython.webp&amp;w=64&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fpython.webp&amp;w=64&amp;q=75"/>Python</li></ul><span class="mt-auto place-self-end text-muted-foreground flex flex-row items-center gap-x-1"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" aria-label="post date" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><g id="Timer"><g><path d="M2.336,9.685A9.934,9.934,0,0,0,13.592,21.808,9.931,9.931,0,0,0,20.708,7.23,10.046,10.046,0,0,0,12,2.072a.507.507,0,0,0-.5.5v4.2a.5.5,0,0,0,1,0v-4.2l-.5.5a8.935,8.935,0,0,1,8.433,11.892A8.938,8.938,0,0,1,6.468,19.027,9.041,9.041,0,0,1,3.3,9.951c.142-.627-.822-.9-.964-.266Z"></path><path d="M7.4,8.117a.5.5,0,0,1,.707-.707l4.243,4.242h0a.5.5,0,0,1-.707.707Z"></path></g></g></svg>August 26, 2025 at 10:12 AM</span></a></article><article class="w-full lg:w-1/2 p-2 flex"><a class="flex flex-col flex-1 p-2 rounded-sm bg-stone-100 dark:bg-stone-800 border-2 border-solid border-transparent transition-colors hover:border-stone-300 dark:hover:border-stone-600" href="/en/tips/certbot-command-memo"><h3 title="certbotコマンドで「Let&#x27;s Encrypt」のSSL証明書を取得する時の覚書" class="text-lg font-semibold line-clamp-2 mb-2">certbotコマンドで「Let&#x27;s Encrypt」のSSL証明書を取得する時の覚書</h3><p title="certbotコマンドで「Let&#x27;s Encrypt」のSSL証明書を取得する時の覚書" class="text-sm text-muted-foreground line-clamp-4">certbotコマンドで「Let&#x27;s Encrypt」のSSL証明書を取得する時の覚書</p><ul class="w-full mt-2"><li class="inline-flex flex-row items-center justify-end gap-x-1 text-xs bg-stone-300 dark:bg-stone-700 text-stone-800 dark:text-stone-200 rounded-full px-2 py-1 mr-1 mt-2"><img alt="icon" loading="lazy" width="30" height="30" decoding="async" data-nimg="1" class="size-[1.3em] rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fhosting.webp&amp;w=32&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fhosting.webp&amp;w=64&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fhosting.webp&amp;w=64&amp;q=75"/>Hosting</li></ul><span class="mt-auto place-self-end text-muted-foreground flex flex-row items-center gap-x-1"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" aria-label="post date" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><g id="Timer"><g><path d="M2.336,9.685A9.934,9.934,0,0,0,13.592,21.808,9.931,9.931,0,0,0,20.708,7.23,10.046,10.046,0,0,0,12,2.072a.507.507,0,0,0-.5.5v4.2a.5.5,0,0,0,1,0v-4.2l-.5.5a8.935,8.935,0,0,1,8.433,11.892A8.938,8.938,0,0,1,6.468,19.027,9.041,9.041,0,0,1,3.3,9.951c.142-.627-.822-.9-.964-.266Z"></path><path d="M7.4,8.117a.5.5,0,0,1,.707-.707l4.243,4.242h0a.5.5,0,0,1-.707.707Z"></path></g></g></svg>August 26, 2025 at 10:06 AM</span></a></article></div></aside>
1<aside class="w-full mt-6 rounded-sm bg-stone-100 dark:bg-stone-900"><h2 class="text-2xl font-semibold px-4 py-3">Latest Articles</h2><ul class="w-full py-3 flex flex-wrap items-center"><li class="w-full px-2 lg:w-1/2"><a class="flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md" href="/en/article/x-space-archive-replay"><img alt="thumbnail image" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-space-archive-replay-thumbnail-en.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-space-archive-replay-thumbnail-en.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-space-archive-replay-thumbnail-en.webp&amp;w=256&amp;q=75"/><span title="How to Listen to X Space Recordings | Why They Won’t Play and How Long They Last" class="text-lg font-medium line-clamp-2">How to Listen to X Space Recordings | Why They Won’t Play and How Long They Last</span></a></li><li class="w-full px-2 lg:w-1/2"><a class="flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md" href="/en/article/speaker-diarization"><img alt="thumbnail image" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fdiarization-thumbnail-en.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fdiarization-thumbnail-en.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fdiarization-thumbnail-en.webp&amp;w=256&amp;q=75"/><span title="Free Transcription with Speaker Diarization | Split by Who Spoke" class="text-lg font-medium line-clamp-2">Free Transcription with Speaker Diarization | Split by Who Spoke</span></a></li><li class="w-full px-2 lg:w-1/2"><a class="flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md" href="/en/article/m4a-transcription"><img alt="thumbnail image" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fm4a-transcription-thumbnail-en.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fm4a-transcription-thumbnail-en.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fm4a-transcription-thumbnail-en.webp&amp;w=256&amp;q=75"/><span title="How to Transcribe an m4a File | No Conversion, No Upload" class="text-lg font-medium line-clamp-2">How to Transcribe an m4a File | No Conversion, No Upload</span></a></li><li class="w-full px-2 lg:w-1/2"><a class="flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md" href="/en/article/image-stylize"><img alt="thumbnail image" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-stylize-thumbnail-en.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-stylize-thumbnail-en.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-stylize-thumbnail-en.webp&amp;w=256&amp;q=75"/><span title="How to Turn Photos into Illustrations and Anime Art|7 Styles at Once, No Upload" class="text-lg font-medium line-clamp-2">How to Turn Photos into Illustrations and Anime Art|7 Styles at Once, No Upload</span></a></li><li class="w-full px-2 lg:w-1/2"><a class="flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dar
1k:hover:bg-stone-800 rounded-md" href="/en/article/image-ai-upscale"><img alt="thumbnail image" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-ai-upscale-thumbnail-en.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-ai-upscale-thumbnail-en.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-ai-upscale-thumbnail-en.webp&amp;w=256&amp;q=75"/><span title="How to Upscale Images with AI|No Blur When Enlarged, No Upload" class="text-lg font-medium line-clamp-2">How to Upscale Images with AI|No Blur When Enlarged, No Upload</span></a></li><li class="w-full px-2 lg:w-1/2"><a class="flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md" href="/en/article/old-photo-face-restore"><img alt="thumbnail image" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fold-photo-face-restore-thumbnail-en.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fold-photo-face-restore-thumbnail-en.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fold-photo-face-restore-thumbnail-en.webp&amp;w=256&amp;q=75"/><span title="How to Restore Faces in Old Photos with AI|Free, No Upload, Entirely in Your Browser" class="text-lg font-medium line-clamp-2">How to Restore Faces in Old Photos with AI|Free, No Upload, Entirely in Your Browser</span></a></li><li class="w-full px-2 lg:w-1/2"><a class="flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md" href="/en/article/image-remove-background"><img alt="thumbnail image" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-remove-background-thumbnail-en.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-remove-background-thumbnail-en.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fimage-remove-background-thumbnail-en.webp&amp;w=256&amp;q=75"/><span title="How to Remove an Image Background | Free, No Upload, People and Products Alike" class="text-lg font-medium line-clamp-2">How to Remove an Image Background | Free, No Upload, People and Products Alike</span></a></li><li class="w-full px-2 lg:w-1/2"><a class="flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md" href="/en/article/x-video-how-to-download"><img alt="thumbnail image" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-video-how-to-download-thumbnail-en.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-video-how-to-download-thumbnail-en.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fx-video-how-to-download-thumbnail-en.webp&amp;w=256&amp;q=75"/><span title="How to Save Videos from X (Formerly Twitter) | Step-by-Step for PC and Phone" class="text-lg font-medium line-clamp-2">How to Save Videos from X (Formerly Twitter) | Step-by-Step for PC and Phone</span></a></li><li class="w-full px-2 lg:w-1/2"><a class="flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md" href="/en/article/browser-video-webcodecs"><img alt="thumbnail image" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fbrowser-video-webcodecs-thumbnail-en.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fbrowser-video-webcodecs-thumbnail-en.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fbrowser-video-webcodecs-thumbnail-en.webp&amp;w=256&amp;q=75"/><span title="Building In-Browser Video Conversion with WebCodecs | Why I Skipped ffmpeg.wasm" class="text-lg font-medium line-clamp-2">Building In-Browser Video Conversion with WebCodecs | Why I Skipped ffmpeg.wasm</span></a></li><li class="w-full px-2 lg:w-1/2"><a class="flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dar
1k:hover:bg-stone-800 rounded-md" href="/en/article/subtitle-burn-in-browser"><img alt="thumbnail image" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fsubtitle-burn-in-browser-thumbnail-en.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fsubtitle-burn-in-browser-thumbnail-en.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fsubtitle-burn-in-browser-thumbnail-en.webp&amp;w=256&amp;q=75"/><span title="How to Add Subtitles to a Video in Your Browser | Free, No Install, No Upload" class="text-lg font-medium line-clamp-2">How to Add Subtitles to a Video in Your Browser | Free, No Install, No Upload</span></a></li></ul></aside></div><aside class="w-full lg:w-[360px] lg:shrink-0 flex flex-col gap-y-4 pl-0 sm:pl-3 mt-4 lg:mt-0"><section class="w-full pt-4 rounded-sm overflow-hidden bg-stone-100 dark:bg-stone-900"><h2 class="text-base w-full text-center mb-2 font-semibold">Promotions</h2><div class="relative flex justify-center p-6 bg-stone-200 dark:bg-stone-800 [&amp;&gt;a]:shrink-0 [&amp;&gt;img]:absolute [&amp;&gt;img]:top-0 [&amp;&gt;img]:left-0"><a href="https://px.a8.net/svt/ejp?a8mat=45KB4W+95UEEI+2JK4+4SOZQ9" target="_blank" rel="nofollow"><img border="0" width="300" height="250" alt="promotion banner" src="https://www26.a8.net/svt/bgt?aid=251210336554&wid=012&eno=01&mid=s00000011866029006000&mc=1"></a><img border="0" width="1" height="1" src="https://www11.a8.net/0.gif?a8mat=45KB4W+95UEEI+2JK4+4SOZQ9" alt=""></div></section><section class="w-full p-4 rounded-sm bg-stone-100 dark:bg-stone-900"><h2 class="text-xl mb-4 pb-3 border-b-2 border-dotted border-stone-300 dark:border-stone-700">Profile</h2><div class="w-full flex flex-row items-start gap-x-4"><img alt="Profile Picture" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Favatar.webp&amp;w=128&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Favatar.webp&amp;w=256&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Favatar.webp&amp;w=256&amp;q=75"/><div class="grow flex flex-col"><span class="text-2xl font-medium">Ryusei</span><div class="mt-4 w-full flex flex-wrap gap-3"><a href="https://github.com/ryusei-48" class="inline-flex flex-row items-center gap-x-1 bg-stone-200 dark:bg-stone-700 p-2 rounded-md" target="_blank" rel="noopener noreferrer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" aria-label="icon" class="text-stone-500 dark:text-stone-400" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg>GitHub</a><a href="https://x.com/ryusei__46" class="inline-flex flex-row items-center gap-x-1 bg-stone-200 dark:bg-stone-700 p-2 rounded-md" target="_blank" rel="noopener noreferrer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16" aria-label="icon" class="text-stone-500 dark:text-stone-400" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"></path></svg>Profile</a></div></div></div><div class="w-full mt-6 mb-4"><p class="w-full text-sm text-muted-foreground my-2">Despite being visually impaired with one nearly completely blind, he works as a full-stack engineer.</p><p class="w-full text-sm text-muted-foreground my-2">I primarily use TypeScript and Rust for developing web applications and desktop applications.</p><p class="w-full text-sm text-muted-foreground my-2">I also have an interest in AI and machine learning, and am working on projects that utilize these technologies.</p><p class="w-full text-sm text-muted-foreground my-2">Our website publishes technical articles and tutorials, offering content suitable for users ranging from beginners to advanced users.</p><p class="w-full text-sm text-muted-foreground my-2">If you have any questions or requests for work, please don&#x27;t hesitate to contact us.</p></div><div class="w-full mt-5 flex flex-wrap lg:flex-col items-center justify-center gap-3"><a href="https://coconala.com/users/263625" class="inline-flex flex-row items-center gap-x-1 bg-stone-200 dark:bg-stone-700 p-2 rounded-md" target="_blank" rel="noopener noreferrer">Work (Coconala)</a></div></section><section class="w-full py-4 px-4 flex flex-col rounded-sm bg-stone-100 dar
1k:bg-stone-900"><div class="w-full max-h-[336px]"><div class="w-full aspect-square md:aspect-auto md:h-[280px]"><ins class="adsbygoogle" style="display:block;width:100%;height:100%" data-ad-client="ca-pub-3845645533442741" data-ad-slot="9579010534" data-ad-format="auto" data-full-width-responsive="true"></ins></div></div></section></aside></div></main><aside class="w-full sm:max-w-7xl mx-auto p-2 my-2"><h2 class="text-2xl font-semibold">Categories</h2><ul class="w-full py-3 flex flex-wrap items-center"><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/transcription"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftag-transcription.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftag-transcription.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftag-transcription.webp&amp;w=128&amp;q=75"/><span class="">Transcription</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/image-editing"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" aria-label="icon" class="shrink-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"></path></svg><span class="">Image Editing</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/x-twitter"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftag-x-social.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftag-x-social.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftag-x-social.webp&amp;w=128&amp;q=75"/><span class="">X (Twitter)</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/rust"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Frust.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Frust.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Frust.webp&amp;w=128&amp;q=75"/><span class="">Rust</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/framework"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" aria-label="icon" class="shrink-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"></path></svg><span class="">Framework</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/video-editing"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" aria-label="icon" class="shrink-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-6
15.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"></path></svg><span class="">Video Editing</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/nextjs"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fnextjs.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fnextjs.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fnextjs.webp&amp;w=128&amp;q=75"/><span class="">Next.js</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/python"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fpython.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fpython.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fpython.webp&amp;w=128&amp;q=75"/><span class="">Python</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/hosting"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fhosting.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fhosting.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fhosting.webp&amp;w=128&amp;q=75"/><span class="">Hosting</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/job-change"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fjob-change.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fjob-change.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fjob-change.webp&amp;w=128&amp;q=75"/><span class="">Job Change</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/typescript"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftypescript.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftypescript.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftypescript.webp&amp;w=128&amp;q=75"/><span class="">TypeScript</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/programing"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fprograming.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fprograming.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Fprograming.webp&amp;w=128&amp;q=75"/><span class="">Programing</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dar
1k:hover:bg-stone-800 text-xl" href="/en/category/tauri"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftauri.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftauri.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftauri.webp&amp;w=128&amp;q=75"/><span class="">Tauri</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/desktop-app-develop"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" aria-label="icon" class="shrink-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"></path></svg><span class="">Desktop App Dev</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/web-app-develop"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" aria-label="icon" class="shrink-0" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"></path></svg><span class="">Web App Dev</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/tools"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftag-tools.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftag-tools.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Ftag-tools.webp&amp;w=128&amp;q=75"/><span class="">Tools</span></a></li><li class="p-2 w-auto flex items-center justify-start"><a class="inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl" href="/en/category/individual-development"><img alt="icon" loading="lazy" width="50" height="50" decoding="async" data-nimg="1" class="w-[1.2em] shrink-0 rounded-full" style="color:transparent" srcSet="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Findividual-development.webp&amp;w=64&amp;q=75 1x, /_next/image?url=%2Fapi%2Fmedia%2Ffile%2Findividual-development.webp&amp;w=128&amp;q=75 2x" src="/_next/image?url=%2Fapi%2Fmedia%2Ffile%2Findividual-development.webp&amp;w=128&amp;q=75"/><span class="">Iline Developer</span></a></li></ul></aside></div><div class="w-full bg-stone-200 dark:bg-stone-800"><footer class="w-full sm:max-w-7xl mx-auto mt-2 p-4 flex flex-col lg:flex-row items-center justify-center"><nav class="grow"><ul class="w-full px-2 flex flex-wrap items-center justify-center sm:justify-start gap-x-4 gap-y-2"><li><a href="/en">Home</a></li><li><a href="/en/privacy-policy">Privacy Policy</a></li><li><button type="button" aria-label="Contact" class="cursor-pointer flex flex-row items-center gap-x-2" aria-haspopup="dialog" aria-expanded="false" data-state="closed" data-slot="dialog-trigger">Contact</button></li></ul></nav><div class="px-2"><small class="text-sm text-muted-foreground">Copyright © <!-- -->2026<!-- --> Ryusei. All rights reserved.</small></div></footer></div><!--$--><!--/$--><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false" data-react-aria-top-layer="true"></section>
1<script src="/_next/static/chunks/1hdeww16j18ck.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[630285,[\"/_next/static/chunks/0er0-ieyjh0la.js\"],\"default\"]\n3:I[342571,[\"/_next/static/chunks/0er0-ieyjh0la.js\"],\"default\"]\n4:I[144668,[\"/_next/static/chunks/113yjo7r9fa0-.js\"],\"default\"]\n8:I[497353,[\"/_next/static/chunks/0er0-ieyjh0la.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nc:I[497353,[\"/_next/static/chunks/0er0-ieyjh0la.js\"],\"ViewportBoundary\"]\ne:I[497353,[\"/_next/static/chunks/0er0-ieyjh0la.js\"],\"MetadataBoundary\"]\n10:I[563491,[\"/_next/static/chunks/0n7u84gzsuhra.js\"],\"default\"]\n:HL[\"/_next/static/chunks/06g24ktnsxhc4.css\",\"style\"]\n:HL[\"/_next/static/chunks/3e7kstepmktmx.css\",\"style\"]\nb:X\n0:{\"P\":null,\"c\":[\"\",\"en\",\"tips\",\"image-convert-to-webp\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[[\"locale\",\"en\",\"d\",[\"admin\",\"api\",\"my-rest\"]],{\"children\":[\"(frontend)\",{\"children\":[\"tips\",{\"children\":[[\"slug\",\"image-convert-to-webp\",\"d\",[]],{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4112]},\"$undefined\",\"$undefined\",4112]},\"$undefined\",\"$undefined\",4112],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$4\",\"errorStyles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/06g24ktnsxhc4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/113yjo7r9fa0-.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$L5\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/06g24ktnsxhc4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/06g24ktnsxhc4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3e7kstepmktmx.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1fvwqygqlexo7.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0ur-o6t7pewci.js\",\"async\":true,\"nonce\":\"$undefined\"}
1],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/2v40lipx7f3ld.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L6\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L7\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/077uyb8i0zoq7.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/1cfccinl3-nwe.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/39qpm_50mo2u5.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/301p4tin60qd5.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,\"$b\"]},null,false,\"$b\"]},null,false,null]},null,false,\"$b\"]},null,false,\"$b\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/06g24ktnsxhc4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":false,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"zZQsC7DIDXFnj1Fg_zG-6\"}\n11:I[427423,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\"],\"ThemeProvider\"]\n12:I[334305,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\"],\"\"]\nb:C\n5:[\"$\",\"html\",null,{\"lang\":\"ja\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L11\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"children\":[\"$\",\"div\",null,{\"className\":\"flex min-h-screen flex-col items-center justify-center bg-background px-4 text-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"mb-4 text-4xl font-bold\",\"children\":\"404 - ページが見つかりません\"}],[\"$\",\"p\",null,{\"className\":\"mb-8 text-lg text-muted-foreground\",\"children\":\"お探しのページは存在しません。\"}],[\"$\",\"$L12\",null,{\"href\":\"/\",\"className\":\"text-primary hover:underline\",\"children\":\"ホームに戻る\"}]]}]}]}]]}]\n16:I[222292,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\"],\"GoogleAnalyticsTag\"]\n:HL[\"/fonts/open-sans-latin.woff2\",\"font\",{\"crossOrigin\":\"anonymous\",\"type\":\"font/woff2\"}]\n6:[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"className\":\"min-h-screen bg-background font-sans\",\"children\":[[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"/fonts/open-sans-latin.woff2\",\"as\":\"font\",\"type\":\"font/woff2\",\"crossOrigin\":\"anonymous\"}],\"$L13\",\"$L14\",null,\"$L15\",[\"$\",\"$L16\",null,{}]]}]}]\nd:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n13:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Person\\\",\\\"@id\\\":\\\"https://ryusei.io#person\\\",\\\"name\\\":\\\"Ryusei\\\",\\\"url\\\":\\\"https://ryusei.io\\\",\\\"image\\\":\\\"https://ryusei.io/api/media/file/avatar.webp\\\",\\\"description\\\":\\\"Despite being visually impaired with one nearly completely blind, he works as a full-stack engineer.\\\",\\\"sameAs\\\":[\\\"https://github.com/ryusei-48\\\",\\\"https://x.com/ryusei__46\\\"]}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"@id\\\":\\\"https://ryusei.io#website\\\",\\\"name\\\":\\\"Ryusei.IO\\\",\\\"url\\\":\\\"https://ryusei.io/en/\\\",\\\"inLanguage\\\":\\\"en\\\",\\\"publisher\\\":{\\\"@id\\\":\\\"https://ryusei.io#person\\\"}}\"}}]]\n17:I[364552,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\"],\"\"]\n1a:I[923079,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\"],\"default\"]\n1b:I[44303,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\"],\"SelfViewProvider\"]\n1c:I[561398,[\"/_
1next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\"],\"NavigationProgress\"]\n1d:I[713354,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\"],\"Toaster\"]\n18:T4ad8,(function(){'use strict';function aa(a){var b=0;return function(){return b\u003ca.length?{done:!1,value:a[b++]}:{done:!0}}}var ba=typeof Object.defineProperties==\"function\"?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};\nfunction ca(a){a=[\"object\"==typeof globalThis\u0026\u0026globalThis,a,\"object\"==typeof window\u0026\u0026window,\"object\"==typeof self\u0026\u0026self,\"object\"==typeof global\u0026\u0026global];for(var b=0;b\u003ca.length;++b){var c=a[b];if(c\u0026\u0026c.Math==Math)return c}throw Error(\"Cannot find global object\");}var da=ca(this);function l(a,b){if(b)a:{var c=da;a=a.split(\".\");for(var d=0;d\u003ca.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d\u0026\u0026b!=null\u0026\u0026ba(c,a,{configurable:!0,writable:!0,value:b})}}\nfunction ea(a){return a.raw=a}function n(a){var b=typeof Symbol!=\"undefined\"\u0026\u0026Symbol.iterator\u0026\u0026a[Symbol.iterator];if(b)return b.call(a);if(typeof a.length==\"number\")return{next:aa(a)};throw Error(String(a)+\" is not an iterable or ArrayLike\");}function fa(a){for(var b,c=[];!(b=a.next()).done;)c.push(b.value);return c}var ha=typeof Object.create==\"function\"?Object.create:function(a){function b(){}b.prototype=a;return new b},p;\nif(typeof Object.setPrototypeOf==\"function\")p=Object.setPrototypeOf;else{var q;a:{var ja={a:!0},ka={};try{ka.__proto__=ja;q=ka.a;break a}catch(a){}q=!1}p=q?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+\" is not extensible\");return a}:null}var la=p;\nfunction t(a,b){a.prototype=ha(b.prototype);a.prototype.constructor=a;if(la)la(a,b);else for(var c in b)if(c!=\"prototype\")if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d\u0026\u0026Object.defineProperty(a,c,d)}else a[c]=b[c];a.A=b.prototype}function ma(){for(var a=Number(this),b=[],c=a;c\u003carguments.length;c++)b[c-a]=arguments[c];return b}l(\"Object.is\",function(a){return a?a:function(b,c){return b===c?b!==0||1/b===1/c:b!==b\u0026\u0026c!==c}});\nl(\"Array.prototype.includes\",function(a){return a?a:function(b,c){var d=this;d instanceof String\u0026\u0026(d=String(d));var e=d.length;c=c||0;for(c\u003c0\u0026\u0026(c=Math.max(c+e,0));c\u003ce;c++){var f=d[c];if(f===b||Object.is(f,b))return!0}return!1}});\nl(\"String.prototype.includes\",function(a){return a?a:function(b,c){if(this==null)throw new TypeError(\"The 'this' value for String.prototype.includes must not be null or undefined\");if(b instanceof RegExp)throw new TypeError(\"First argument to String.prototype.includes must not be a regular expression\");return this.indexOf(b,c||0)!==-1}});l(\"Number.MAX_SAFE_INTEGER\",function(){return 9007199254740991});\nl(\"Number.isFinite\",function(a){return a?a:function(b){return typeof b!==\"number\"?!1:!isNaN(b)\u0026\u0026b!==Infinity\u0026\u0026b!==-Infinity}});l(\"Number.isInteger\",function(a){return a?a:function(b){return Number.isFinite(b)?b===Math.floor(b):!1}});l(\"Number.isSafeInteger\",function(a){return a?a:function(b){return Number.isInteger(b)\u0026\u0026Math.abs(b)\u003c=Number.MAX_SAFE_INTEGER}});\nl(\"Math.trunc\",function(a){return a?a:function(b){b=Number(b);if(isNaN(b)||b===Infinity||b===-Infinity||b===0)return b;var c=Math.floor(Math.abs(b));return b\u003c0?-c:c}});/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar u=this||self;function v(a,b){a:{var c=[\"CLOSURE_FLAGS\"];for(var d=u,e=0;e\u003cc.length;e++)if(d=d[c[e]],d==null){c=null;break a}c=d}a=c\u0026\u0026c[a];return a!=null?a:b}function w(a){return a};function na(a){u.setTimeout(function(){throw a;},0)};var oa=v(610401301,!1),pa=v(188588736,!0),qa=v(645172343,v(1,!0));var x,ra=u.navigator;x=ra?ra.userAgentData||null:null;function z(a){return oa?x?x.brands.some(function(b){return(b=b.brand)\u0026\u0026b.indexOf(a)!=-1}):!1:!1}function A(a){var b;a:{if(b=u.navigator)if(b=b.userAgent)break a;b=\"\"}return b.indexOf(a)!=-1};function B(){return oa?!!x\u0026\u0026x.brands.length\u003e0:!1}function C(){return B()?z(\"Chromium\"):(A(\"Chrome\")||A(\"CriOS\"))\u0026\u0026!(B()?0:A(\"Edge\"))||A(\"Silk\")};var sa=B()?!1:A(\"Trident\")||A(\"MSIE\");!A(\"Android\")||C();C();A(\"Safari\")\u0026\u0026(C()||(B()?0:A(\"Coast\"))||(B()?0:A(\"Opera\"))||(B()?0:A(\"Edge\"))||(B()?z(\"Microsoft Edge\"):A(\"Edg/\"))||B()\u0026\u0026z(\"Opera\"));var ta={},D=null;var ua=typeof Uint8Array!==\"undefined\",va=!sa\u0026\u0026typeof btoa===\"function\";var wa;function E(){return typeof BigInt===\"function\"};var F=typeof Symbol===\"function\"\u0026\u0026typeof Symbol()===\"symbol\";function xa(a){return typeof Symbol===\"function\"\u0026\u0026typeof Symbol()===\"symbol\"?Symbol():a}var G=xa(),ya=xa(\"2ex\");var za=F?function(a,b){a[G]|=b}:function(a,b){a.g!==void 0?a.g|=b:Object.defineProperties(a,{g:{value:b,configurable:!0,writable:!0,enumerable:!1}})},H=F?function(a){return a[G]|0}:function(a){return a.g|0},I=F?function(a){return a[G]}:function(a){return a.g},J=F?function(a,b){a[G]=b}:function(a,b){a.g!==void 0?a.g=b:Object.defineProperties(a,{g:{value:b,configurable:!0,writable:!0,enumerable:!1}})};function Aa(a,b){J(b,(a|0)\u0026-14591)}function Ba(a,b){J(b,(a|34)\u0026-14557)};var K={},Ca={};function Da(a){return!(!a||typeof a!==\"object\"||a.g!==Ca)}function Ea(a){return a!==null\u0026\u0026typeof a===\"object\"\u0026\u0026!Array.isArray(a)\u0026\u0026a.constructor===Object}function L(a,b,c){if(!Array.isArray(a)||a.length)return!1;var d=H(a);if(d\u00261)return!0;
1if(!(b\u0026\u0026(Array.isArray(b)?b.includes(c):b.has(c))))return!1;J(a,d|1);return!0};var M=0,N=0;function Fa(a){var b=a\u003e\u003e\u003e0;M=b;N=(a-b)/4294967296\u003e\u003e\u003e0}function Ga(a){if(a\u003c0){Fa(-a);var b=n(Ha(M,N));a=b.next().value;b=b.next().value;M=a\u003e\u003e\u003e0;N=b\u003e\u003e\u003e0}else Fa(a)}function Ia(a,b){b\u003e\u003e\u003e=0;a\u003e\u003e\u003e=0;if(b\u003c=2097151)var c=\"\"+(4294967296*b+a);else E()?c=\"\"+(BigInt(b)\u003c\u003cBigInt(32)|BigInt(a)):(c=(a\u003e\u003e\u003e24|b\u003c\u003c8)\u002616777215,b=b\u003e\u003e16\u002665535,a=(a\u002616777215)+c*6777216+b*6710656,c+=b*8147497,b*=2,a\u003e=1E7\u0026\u0026(c+=a/1E7\u003e\u003e\u003e0,a%=1E7),c\u003e=1E7\u0026\u0026(b+=c/1E7\u003e\u003e\u003e0,c%=1E7),c=b+Ja(c)+Ja(a));return c}\nfunction Ja(a){a=String(a);return\"0000000\".slice(a.length)+a}function Ha(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};var Ka=/^-?([1-9][0-9]*|0)(.[0-9]+)?$/;var O;function La(a,b){O=b;a=new a(b);O=void 0;return a}\nfunction P(a,b,c){a==null\u0026\u0026(a=O);O=void 0;if(a==null){var d=96;c?(a=[c],d|=512):a=[];b\u0026\u0026(d=d\u0026-16760833|(b\u00261023)\u003c\u003c14)}else{if(!Array.isArray(a))throw Error(\"narr\");d=H(a);if(d\u00262048)throw Error(\"farr\");if(d\u002664)return a;d|=64;if(c\u0026\u0026(d|=512,c!==a[0]))throw Error(\"mid\");a:{c=a;var e=c.length;if(e){var f=e-1;if(Ea(c[f])){d|=256;b=f-(+!!(d\u0026512)-1);if(b\u003e=1024)throw Error(\"pvtlmt\");d=d\u0026-16760833|(b\u00261023)\u003c\u003c14;break a}}if(b){b=Math.max(b,e-(+!!(d\u0026512)-1));if(b\u003e1024)throw Error(\"spvt\");d=d\u0026-16760833|(b\u00261023)\u003c\u003c\n14}}}J(a,d);return a};function Ma(a){switch(typeof a){case \"number\":return isFinite(a)?a:String(a);case \"boolean\":return a?1:0;case \"object\":if(a)if(Array.isArray(a)){if(L(a,void 0,0))return}else if(ua\u0026\u0026a!=null\u0026\u0026a instanceof Uint8Array){if(va){for(var b=\"\",c=0,d=a.length-10240;c\u003cd;)b+=String.fromCharCode.apply(null,a.subarray(c,c+=10240));b+=String.fromCharCode.apply(null,c?a.subarray(c):a);a=btoa(b)}else{b===void 0\u0026\u0026(b=0);if(!D){D={};c=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\");d=[\"+/=\",\n\"+/\",\"-_=\",\"-_.\",\"-_\"];for(var e=0;e\u003c5;e++){var f=c.concat(d[e].split(\"\"));ta[e]=f;for(var g=0;g\u003cf.length;g++){var h=f[g];D[h]===void 0\u0026\u0026(D[h]=g)}}}b=ta[b];c=Array(Math.floor(a.length/3));d=b[64]||\"\";for(e=f=0;f\u003ca.length-2;f+=3){var k=a[f],m=a[f+1];h=a[f+2];g=b[k\u003e\u003e2];k=b[(k\u00263)\u003c\u003c4|m\u003e\u003e4];m=b[(m\u002615)\u003c\u003c2|h\u003e\u003e6];h=b[h\u002663];c[e++]=g+k+m+h}g=0;h=d;switch(a.length-f){case 2:g=a[f+1],h=b[(g\u002615)\u003c\u003c2]||d;case 1:a=a[f],c[e]=b[a\u003e\u003e2]+b[(a\u00263)\u003c\u003c4|g\u003e\u003e4]+h+d}a=c.join(\"\")}return a}}return a};function Na(a,b,c){a=Array.prototype.slice.call(a);var d=a.length,e=b\u0026256?a[d-1]:void 0;d+=e?-1:0;for(b=b\u0026512?1:0;b\u003cd;b++)a[b]=c(a[b]);if(e){b=a[b]={};for(var f in e)Object.prototype.hasOwnProperty.call(e,f)\u0026\u0026(b[f]=c(e[f]))}return a}function Oa(a,b,c,d,e){if(a!=null){if(Array.isArray(a))a=L(a,void 0,0)?void 0:e\u0026\u0026H(a)\u00262?a:Pa(a,b,c,d!==void 0,e);else if(Ea(a)){var f={},g;for(g in a)Object.prototype.hasOwnProperty.call(a,g)\u0026\u0026(f[g]=Oa(a[g],b,c,d,e));a=f}else a=b(a,d);return a}}\nfunction Pa(a,b,c,d,e){var f=d||c?H(a):0;d=d?!!(f\u002632):void 0;a=Array.prototype.slice.call(a);for(var g=0;g\u003ca.length;g++)a[g]=Oa(a[g],b,c,d,e);c\u0026\u0026c(f,a);return a}function Qa(a){return a.s===K?a.toJSON():Ma(a)};function Ra(a,b,c){c=c===void 0?Ba:c;if(a!=null){if(ua\u0026\u0026a instanceof Uint8Array)return b?a:new Uint8Array(a);if(Array.isArray(a)){var d=H(a);if(d\u00262)return a;b\u0026\u0026(b=d===0||!!(d\u002632)\u0026\u0026!(d\u002664||!(d\u002616)));return b?(J(a,(d|34)\u0026-12293),a):Pa(a,Ra,d\u00264?Ba:c,!0,!0)}a.s===K\u0026\u0026(c=a.h,d=I(c),a=d\u00262?a:La(a.constructor,Sa(c,d,!0)));return a}}function Sa(a,b,c){var d=c||b\u00262?Ba:Aa,e=!!(b\u002632);a=Na(a,b,function(f){return Ra(f,e,d)});za(a,32|(c?2:0));return a};function Ta(a,b){a=a.h;return Ua(a,I(a),b)}function Va(a,b,c,d){b=d+(+!!(b\u0026512)-1);if(!(b\u003c0||b\u003e=a.length||b\u003e=c))return a[b]}\nfunction Ua(a,b,c,d){if(c===-1)return null;var e=b\u003e\u003e14\u00261023||536870912;if(c\u003e=e){if(b\u0026256)return a[a.length-1][c]}else{var f=a.length;
1if(d\u0026\u0026b\u0026256\u0026\u0026(d=a[f-1][c],d!=null)){if(Va(a,b,e,c)\u0026\u0026ya!=null){var g;a=(g=wa)!=null?g:wa={};g=a[ya]||0;g\u003e=4||(a[ya]=g+1,g=Error(),g.__closure__error__context__984382||(g.__closure__error__context__984382={}),g.__closure__error__context__984382.severity=\"incident\",na(g))}return d}return Va(a,b,e,c)}}\nfunction Wa(a,b,c,d,e){var f=b\u003e\u003e14\u00261023||536870912;if(c\u003e=f||e\u0026\u0026!qa){var g=b;if(b\u0026256)e=a[a.length-1];else{if(d==null)return;e=a[f+(+!!(b\u0026512)-1)]={};g|=256}e[c]=d;c\u003cf\u0026\u0026(a[c+(+!!(b\u0026512)-1)]=void 0);g!==b\u0026\u0026J(a,g)}else a[c+(+!!(b\u0026512)-1)]=d,b\u0026256\u0026\u0026(a=a[a.length-1],c in a\u0026\u0026delete a[c])}\nfunction Xa(a,b){var c=Ya;var d=d===void 0?!1:d;var e=a.h;var f=I(e),g=Ua(e,f,b,d);if(g!=null\u0026\u0026typeof g===\"object\"\u0026\u0026g.s===K)c=g;else if(Array.isArray(g)){var h=H(g),k=h;k===0\u0026\u0026(k|=f\u002632);k|=f\u00262;k!==h\u0026\u0026J(g,k);c=new c(g)}else c=void 0;c!==g\u0026\u0026c!=null\u0026\u0026Wa(e,f,b,c,d);e=c;if(e==null)return e;a=a.h;f=I(a);f\u00262||(g=e,c=g.h,h=I(c),g=h\u00262?La(g.constructor,Sa(c,h,!1)):g,g!==e\u0026\u0026(e=g,Wa(a,f,b,e,d)));return e}function Za(a,b){a=Ta(a,b);return a==null||typeof a===\"string\"?a:void 0}\nfunction $a(a,b){var c=c===void 0?0:c;a=Ta(a,b);if(a!=null)if(b=typeof a,b===\"number\"?Number.isFinite(a):b!==\"string\"?0:Ka.test(a))if(typeof a===\"number\"){if(a=Math.trunc(a),!Number.isSafeInteger(a)){Ga(a);b=M;var d=N;if(a=d\u00262147483648)b=~b+1\u003e\u003e\u003e0,d=~d\u003e\u003e\u003e0,b==0\u0026\u0026(d=d+1\u003e\u003e\u003e0);b=d*4294967296+(b\u003e\u003e\u003e0);a=a?-b:b}}else if(b=Math.trunc(Number(a)),Number.isSafeInteger(b))a=String(b);else{if(b=a.indexOf(\".\"),b!==-1\u0026\u0026(a=a.substring(0,b)),!(a[0]===\"-\"?a.length\u003c20||a.length===20\u0026\u0026Number(a.substring(0,7))\u003e-922337:\na.length\u003c19||a.length===19\u0026\u0026Number(a.substring(0,6))\u003c922337)){if(a.length\u003c16)Ga(Number(a));else if(E())a=BigInt(a),M=Number(a\u0026BigInt(4294967295))\u003e\u003e\u003e0,N=Number(a\u003e\u003eBigInt(32)\u0026BigInt(4294967295));else{b=+(a[0]===\"-\");N=M=0;d=a.length;for(var e=b,f=(d-b)%6+b;f\u003c=d;e=f,f+=6)e=Number(a.slice(e,f)),N*=1E6,M=M*1E6+e,M\u003e=4294967296\u0026\u0026(N+=Math.trunc(M/4294967296),N\u003e\u003e\u003e=0,M\u003e\u003e\u003e=0);b\u0026\u0026(b=n(Ha(M,N)),a=b.next().value,b=b.next().value,M=a,N=b)}a=M;b=N;b\u00262147483648?E()?a=\"\"+(BigInt(b|0)\u003c\u003cBigInt(32)|BigInt(a\u003e\u003e\u003e0)):(b=\nn(Ha(a,b)),a=b.next().value,b=b.next().value,a=\"-\"+Ia(a,b)):a=Ia(a,b)}}else a=void 0;return a!=null?a:c}function R(a,b){var c=c===void 0?\"\":c;a=Za(a,b);return a!=null?a:c};var S;function T(a,b,c){this.h=P(a,b,c)}T.prototype.toJSON=function(){return ab(this)};T.prototype.s=K;T.prototype.toString=function(){try{return S=!0,ab(this).toString()}finally{S=!1}};\nfunction ab(a){var b=S?a.h:Pa(a.h,Qa,void 0,void 0,!1);var c=!S;var d=pa?void 0:a.constructor.v;var e=I(c?a.h:b);if(a=b.length){var f=b[a-1],g=Ea(f);g?a--:f=void 0;e=+!!(e\u0026512)-1;var h=b;if(g){b:{var k=f;var m={};g=!1;if(k)for(var r in k)if(Object.prototype.hasOwnProperty.call(k,r))if(isNaN(+r))m[r]=k[r];else{var y=k[r];Array.isArray(y)\u0026\u0026(L(y,d,+r)||Da(y)\u0026\u0026y.size===0)\u0026\u0026(y=null);y==null\u0026\u0026(g=!0);y!=null\u0026\u0026(m[r]=y)}if(g){for(var Q in m)break b;m=null}else m=k}k=m==null?f!=null:m!==f}for(var ia;a\u003e0;a--){Q=\na-1;r=h[Q];Q-=e;if(!(r==null||L(r,d,Q)||Da(r)\u0026\u0026r.size===0))break;ia=!0}if(h!==b||k||ia){if(!c)h=Array.prototype.slice.call(h,0,a);else if(ia||k||m)h.length=a;m\u0026\u0026h.push(m)}b=h}return b};function bb(a){return function(b){if(b==null||b==\"\")b=new a;else{b=JSON.parse(b);if(!Array.isArray(b))throw Error(\"dnarr\");za(b,32);b=La(a,b)}return b}};function cb(a){this.h=P(a)}t(cb,T);var db=bb(cb);var U;function V(a){this.g=a}V.prototype.toString=function(){return this.g+\"\"};var eb={};function fb(a){if(U===void 0){var b=null;var c=u.trustedTypes;if(c\u0026\u0026c.createPolicy){try{b=c.createPolicy(\"goog#html\",{createHTML:w,createScript:w,createScriptURL:w})}catch(d){u.console\u0026\u0026u.console.error(d.message)}U=b}else U=b}a=(b=U)?b.createScriptURL(a):a;return new V(a,eb)};
1/*\n\n SPDX-License-Identifier: Apache-2.0\n*/\nfunction gb(a){var b=ma.apply(1,arguments);if(b.length===0)return fb(a[0]);for(var c=a[0],d=0;d\u003cb.length;d++)c+=encodeURIComponent(b[d])+a[d+1];return fb(c)};function hb(a,b){a.src=b instanceof V\u0026\u0026b.constructor===V?b.g:\"type_error:TrustedResourceUrl\";var c,d;(c=(b=(d=(c=(a.ownerDocument\u0026\u0026a.ownerDocument.defaultView||window).document).querySelector)==null?void 0:d.call(c,\"script[nonce]\"))?b.nonce||b.getAttribute(\"nonce\")||\"\":\"\")\u0026\u0026a.setAttribute(\"nonce\",c)};function ib(){return Math.floor(Math.random()*2147483648).toString(36)+Math.abs(Math.floor(Math.random()*2147483648)^Date.now()).toString(36)};function jb(a,b){b=String(b);a.contentType===\"application/xhtml+xml\"\u0026\u0026(b=b.toLowerCase());return a.createElement(b)}function kb(a){this.g=a||u.document||document};function lb(a){a=a===void 0?document:a;return a.createElement(\"script\")};function mb(a,b,c,d,e,f){try{var g=a.g,h=lb(g);h.async=!0;hb(h,b);g.head.appendChild(h);h.addEventListener(\"load\",function(){e();d\u0026\u0026g.head.removeChild(h)});h.addEventListener(\"error\",function(){c\u003e0?mb(a,b,c-1,d,e,f):(d\u0026\u0026g.head.removeChild(h),f())})}catch(k){f()}};var nb=u.atob(\"aHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2ljb25zL21hdGVyaWFsL3N5c3RlbS8xeC93YXJuaW5nX2FtYmVyXzI0ZHAucG5n\"),ob=u.atob(\"WW91IGFyZSBzZWVpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2UgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlIGlzIGludGVyZmVyaW5nIHdpdGggdGhpcyBwYWdlLg==\"),pb=u.atob(\"RGlzYWJsZSBhbnkgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlLCB0aGVuIHJlbG9hZCB0aGlzIHBhZ2Uu\");function qb(a,b,c){this.i=a;this.u=b;this.o=c;this.g=null;this.j=[];this.m=!1;this.l=new kb(this.i)}\nfunction rb(a){if(a.i.body\u0026\u0026!a.m){var b=function(){sb(a);
1u.setTimeout(function(){tb(a,3)},50)};mb(a.l,a.u,2,!0,function(){u[a.o]||b()},b);a.m=!0}}\nfunction sb(a){for(var b=W(1,5),c=0;c\u003cb;c++){var d=X(a);a.i.body.appendChild(d);a.j.push(d)}b=X(a);b.style.bottom=\"0\";b.style.left=\"0\";b.style.position=\"fixed\";b.style.width=W(100,110).toString()+\"%\";b.style.zIndex=W(2147483544,2147483644).toString();b.style.backgroundColor=ub(249,259,242,252,219,229);b.style.boxShadow=\"0 0 12px #888\";b.style.color=ub(0,10,0,10,0,10);b.style.display=\"flex\";b.style.justifyContent=\"center\";b.style.fontFamily=\"Roboto, Arial\";c=X(a);c.style.width=W(80,85).toString()+\n\"%\";c.style.maxWidth=W(750,775).toString()+\"px\";c.style.margin=\"24px\";c.style.display=\"flex\";c.style.alignItems=\"flex-start\";c.style.justifyContent=\"center\";d=jb(a.l.g,\"IMG\");d.className=ib();d.src=nb;d.alt=\"Warning icon\";d.style.height=\"24px\";d.style.width=\"24px\";d.style.paddingRight=\"16px\";var e=X(a),f=X(a);f.style.fontWeight=\"bold\";f.textContent=ob;var g=X(a);g.textContent=pb;Y(a,e,f);Y(a,e,g);Y(a,c,d);Y(a,c,e);Y(a,b,c);a.g=b;a.i.body.appendChild(a.g);b=W(1,5);for(c=0;c\u003cb;c++)d=X(a),a.i.body.appendChild(d),\na.j.push(d)}function Y(a,b,c){for(var d=W(1,5),e=0;e\u003cd;e++){var f=X(a);b.appendChild(f)}b.appendChild(c);c=W(1,5);for(d=0;d\u003cc;d++)e=X(a),b.appendChild(e)}function W(a,b){return Math.floor(a+Math.random()*(b-a))}function ub(a,b,c,d,e,f){return\"rgb(\"+W(Math.max(a,0),Math.min(b,255)).toString()+\",\"+W(Math.max(c,0),Math.min(d,255)).toString()+\",\"+W(Math.max(e,0),Math.min(f,255)).toString()+\")\"}function X(a){a=jb(a.l.g,\"DIV\");a.className=ib();return a}\nfunction tb(a,b){b\u003c=0||a.g!=null\u0026\u0026a.g.offsetHeight!==0\u0026\u0026a.g.offsetWidth!==0||(vb(a),sb(a),u.setTimeout(function(){tb(a,b-1)},50))}function vb(a){for(var b=n(a.j),c=b.next();!c.done;c=b.next())(c=c.value)\u0026\u0026c.parentNode\u0026\u0026c.parentNode.removeChild(c);a.j=[];(b=a.g)\u0026\u0026b.parentNode\u0026\u0026b.parentNode.removeChild(b);a.g=null};function wb(a,b,c,d,e){function f(k){document.body?g(document.body):k\u003e0?u.setTimeout(function(){f(k-1)},e):b()}function g(k){k.appendChild(h);u.setTimeout(function(){h?(h.offsetHeight!==0\u0026\u0026h.offsetWidth!==0?b():a(),h.parentNode\u0026\u0026h.parentNode.removeChild(h)):a()},d)}var h=xb(c);f(3)}function xb(a){var b=document.createElement(\"div\");b.className=a;b.style.width=\"1px\";b.style.height=\"1px\";b.style.position=\"absolute\";b.style.left=\"-10000px\";b.style.top=\"-10000px\";b.style.zIndex=\"-10000\";return b};function Ya(a){this.h=P(a)}t(Ya,T);function yb(a){this.h=P(a)}t(yb,T);var zb=bb(yb);function Ab(a){if(!a)return null;a=Za(a,4);var b;a===null||a===void 0?b=null:b=fb(a);return b};var Bb=ea([\"\"]),Cb=ea([\"\"]);function Db(a,b){this.m=a;this.o=new kb(a.document);this.g=b;this.j=R(this.g,1);this.u=Ab(Xa(this.g,2))||gb(Bb);this.i=!1;b=Ab(Xa(this.g,13))||gb(Cb);this.l=new qb(a.document,b,R(this.g,12))}Db.prototype.start=function(){Eb(this)};\nfunction Eb(a){Fb(a);mb(a.o,a.u,3,!1,function(){a:{var b=a.j;var c=u.btoa(b);
vendor: 3,749 bytes, line 1
1if(c=u[c]){try{var d=db(u.atob(c))}catch(e){b=!1;break a}b=b===Za(d,1)}else b=!1}b?Z(a,R(a.g,14)):(Z(a,R(a.g,8)),rb(a.l))},function(){wb(function(){Z(a,R(a.g,7));rb(a.l)},function(){return Z(a,R(a.g,6))},R(a.g,9),$a(a.g,10),$a(a.g,11))})}function Z(a,b){a.i||(a.i=!0,a=new a.m.XMLHttpRequest,a.open(\"GET\",b,!0),a.send())}function Fb(a){var b=u.btoa(a.j);a.m[b]\u0026\u0026Z(a,R(a.g,5))};(function(a,b){u[a]=function(){var c=ma.apply(0,arguments);u[a]=function(){};b.call.apply(b,[null].concat(c instanceof Array?c:fa(n(c))))}})(\"__h82AlnkH6D91__\",function(a){typeof window.atob===\"function\"\u0026\u0026(new Db(window,zb(window.atob(a)))).start()});}).call(this);\n\nwindow.__h82AlnkH6D91__(\"WyJwdWItMzg0NTY0NTUzMzQ0Mjc0MSIsW251bGwsbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9iL3B1Yi0zODQ1NjQ1NTMzNDQyNzQxIl0sbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9lbC9BR1NLV3hXbEdMaXBJUmRRMlR4ZGY3V0ZXb0l2d0dLcFNhMXQxZVFoX3M0QldLcHRtZDR2Z0RXUTZQdUkxeDlpSzZQVDdzSHdGSklCU2N2SWNQN2FiU1BlSU95Yy1BXHUwMDNkXHUwMDNkP3RlXHUwMDNkVE9LRU5fRVhQT1NFRCIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFVMOVZhMi01UVBpa3MwUzNDS1EzblQ2eDE2LVp2MU05cloxaGpqQmNfYV9CSzVDdUE1R1gyTnVibWtzRG90WFRjRjdIb3djcWxLV2ZhWWtLT3p2b2Q2NndcdTAwM2RcdTAwM2Q/YWJcdTAwM2QxXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFZPOG5yMlU2MloyUlNySXdSTlhvMUxuaU5pbUNYS3hveHJlSmU4cFE5LVZoZTNQUGdZWjA5ZkhqSkEzMS1ILVd5SWRrU0tqMjgxOUJWWGlsYXBVZWFzZWdcdTAwM2RcdTAwM2Q/YWJcdTAwM2QyXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFcwMUowdzFZV2pLYnJCTzRaNlRVemFVazZYaUUtaXZYSVM0ejl1bGxPemxMbjZHcTlWaFIwNFRTZ3dQM1JDVW1GdTM5VG9mWFM5c05qcl9aNUc3N3lTQ0FcdTAwM2RcdTAwM2Q/c2JmXHUwMDNkMiIsImRpdi1ncHQtYWQiLDIwLDEwMCwiY0hWaUxUTTRORFUyTkRVMU16TTBOREkzTkRFXHUwMDNkIixbbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tLzBlbW4vZi9wL3B1Yi0zODQ1NjQ1NTMzNDQyNzQxLmpzP3VzcXBcdTAwM2RDQVUiXSwiaHR0cHM6Ly9mdW5kaW5nY2hvaWNlc21lc3NhZ2VzLmdvb2dsZS5jb20vZWwvQUdTS1d4V0liZXZ2Y184TkNzck5tUFRrbVBCelhETnczb1VDQTljb3dLSlI1bVI1WnBLbm9ycE9kclROZGl6MTZpSFdUdi0zNGx4Q21tTENUa0pYY0tPX0QySEJXUVx1MDAzZFx1MDAzZCJd\");15:[[\"$\",\"$L17\",null,{\"async\":true,\"src\":\"https://fundingchoicesmessages.google.com/i/pub-3845645533442741?ers=1\"}],[\"$\",\"$L17\",null,{\"id\":\"googlefc-script\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();\"}}],[\"$\",\"$L17\",null,{\"id\":\"googlefc-iframe-script\",\"dangerouslySetInnerHTML\":{\"__html\":\"$18\"}}],\"$L19\"]\n14:[\"$\",\"$L1a\",null,{\"formats\":\"$undefined\",\"locale\":\"en\",\"messages\":{\"metadata\":{\"titleShort\":\"Full Stack Engineer with Low Vision\",\"description\":\"Our primary focus is sharing methods for developing cross-platform applications with Claude Code. Built around TypeScript, we also provide information on integration with Rust, Python, and LLMs (Large Language Models) when necessary. We also occasionally accept requests for system development projects.\"},\"navigation\":{\"loading\":\"Loading page\"},\"header\":{\"home\":\"Home\",\"productList\":\"Products\",\"tagStructure\":\"Category\",\"contact\":\"Contact\",\"github\":\"GitHub Profile\",\"x\":\"X Profile\",\"localeToggle\":\"Language Toggle\",\"themeToggle\":\"Theme Toggle\",\"short_description\":\"A te
1chnical media by a full stack engineer with low vision.\",\"short_description+a\":\"Cross-platform development with Claude Code\"},\"form\":{\"contact\":{\"title\":\"Contact Form\",\"description\":\"Please feel free to contact us regarding system development projects, product development consultations, article contributions, advertising placements, or any feedback or requests you may have.\",\"name\":{\"label\":\"Name\",\"placeholder\":\"Enter your name\"},\"subject\":{\"label\":\"Subject\",\"placeholder\":\"Enter the subject\"},\"replyEmail\":{\"label\":\"Reply-To Email\",\"placeholder\":\"Enter your email address\"},\"body\":{\"label\":\"Body\",\"placeholder\":\"Enter your message\"},\"submit\":\"Submit\",\"success\":\"Your message has been sent successfully. Thank you.\",\"errors\":{\"name\":{\"min\":\"Name must be at least 2 characters long.\",\"max\":\"Name must be at most 40 characters long.\"},\"subject\":{\"min\":\"Subject must be at least 2 characters long.\",\"max\":\"Subject must be at most 100 characters long.\"},\"replyEmail\":{\"invalid\":\"Invalid email address.\",\"max\":\"Email address must be at most 150 characters long.\"},\"body\":{\"min\":\"Body must be at least 2 characters long.\",\"max\":\"Body must be at most 2500 characters long.\"},\"error\":\"An error occurred while sending your message. Please try again later.\"}}},\"footer\":{\"home\":\"Home\",\"privacy-policy\":\"Privacy Policy\",\"specified-commercial-terms\":\"Specified Commercial Transactions Act\",\"contact\":\"Contact\"}}
1,\"now\":\"$undefined\",\"timeZone\":\"Asia/Tokyo\",\"children\":[\"$\",\"$L11\",null,{\"attribute\":\"class\",\"defaultTheme\":\"dark\",\"enableSystem\":true,\"children\":[\"$\",\"$L1b\",null,{\"adsOff\":false,\"gaOff\":false,\"children\":[[\"$\",\"$L1c\",null,{}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"flex min-h-screen flex-col items-center justify-center bg-background px-4 text-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"mb-4 text-4xl font-bold\",\"children\":\"404 - ページが見つかりません\"}],[\"$\",\"p\",null,{\"className\":\"mb-8 text-lg text-muted-foreground\",\"children\":\"お探しのページは存在しません。\"}],[\"$\",\"$L12\",null,{\"href\":\"/\",\"className\":\"text-primary hover:underline\",\"children\":\"ホームに戻る\"}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L1d\",null,{}]]}]}]}]\n19:[\"$\",\"$L17\",null,{\"async\":true,\"strategy\":\"afterInteractive\",\"src\":\"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3845645533442741\",\"crossOrigin\":\"anonymous\",\"id\":\"adsense-script\"}]\n1e:I[215697,[\"/_next/static/chunks/0er0-ieyjh0la.js\"],\"IconMark\"]\na:null\nf:[[\"$\",\"title\",\"0\",{\"children\":\"画像をWEBP形式へ変換するためのCLIツールの覚書 | Ryusei.IO\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"画像をWEBP形式へ変換するためのCLIツールの覚書\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"Ryusei.IO\"}],[\"$\",\"meta\",\"3\",{\"name\":\"generator\",\"content\":\"Next.js\"}],[\"$\",\"meta\",\"4\",{\"name\":\"referrer\",\"content\":\"strict-origin-when-cross-origin\"}],[\"$\",\"link\",\"5\",{\"rel\":\"canonical\",\"href\":\"https://ryusei.io/tips/image-convert-to-webp\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"画像をWEBP形式へ変換するためのCLIツールの覚書 | Ryusei.IO\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"画像をWEBP形式へ変換するためのCLIツールの覚書\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://ryusei.io/en/tips/image-convert-to-webp\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"Ryusei.IO\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:locale\",\"content\":\"en\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image\",\"content\":\"https://ryusei.io/home-ogp.png\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:width\",\"content\":\"800\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:height\",\"content\":\"450\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:alt\",\"content\":\"Ryusei.IO\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:site\",\"content\":\"@ryusei__46\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:creator\",\"content\":\"@ryusei__46\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:title\",\"content\":\"画像をWEBP形式へ変換するためのCLIツールの覚書 | Ryusei.IO\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:description\",\"content\":\"画像をWEBP形式へ変換するためのCLIツールの覚書\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://ryusei.io/home-ogp.png\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image:alt\",\"content\":\"Ryusei.IO\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:width\",\"content\":\"800\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:height\",\"content\":\"450\"}],[\"$\",\"link\",\"25\",{\"rel\":\"icon\",\"href\":\"/-/icon-1uwpyr.png?icon.0jo7r6k_gf046.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"26\",{\"rel\":\"apple-touch-icon\",\"href\":\"/-/apple-icon-1uwpyr.png?apple-icon.0jo7r6k_gf046.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"$L1e\",\"27\",{}]]\n1f:I[679759,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"RefreshRouteOnSave\"]\n21:I[445952,[\"/_
1next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"LatestPostsHeroSlider\"]\n7:[[\"$\",\"$L1f\",null,{}],[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BlogPosting\\\",\\\"@id\\\":\\\"https://ryusei.io/en/tips/image-convert-to-webp#article\\\",\\\"mainEntityOfPage\\\":{\\\"@type\\\":\\\"WebPage\\\",\\\"@id\\\":\\\"https://ryusei.io/en/tips/image-convert-to-webp\\\"},\\\"url\\\":\\\"https://ryusei.io/en/tips/image-convert-to-webp\\\",\\\"headline\\\":\\\"画像をWEBP形式へ変換するためのCLIツールの覚書\\\",\\\"description\\\":\\\"画像をWEBP形式へ変換するためのCLIツールの覚書\\\",\\\"image\\\":\\\"https://ryusei.io/en/home-ogp.png\\\",\\\"datePublished\\\":\\\"2025-12-10T06:11:43.410Z\\\",\\\"dateModified\\\":\\\"2025-12-10T06:27:11.206Z\\\",\\\"inLanguage\\\":\\\"en\\\",\\\"author\\\":{\\\"@id\\\":\\\"https://ryusei.io#person\\\"},\\\"publisher\\\":{\\\"@id\\\":\\\"https://ryusei.io#person\\\"},\\\"isPartOf\\\":{\\\"@id\\\":\\\"https://ryusei.io#website\\\"}}\"}}],false],[\"$\",\"div\",null,{\"className\":\"w-full\",\"children\":\"$L20\"}],[\"$\",\"div\",null,{\"className\":\"w-full\",\"children\":[[\"$\",\"main\",null,{\"className\":\"w-full flex flex-col justify-center gap-y-4\",\"children\":[[\"$\",\"$L21\",null,{\"posts\":[{\"id\":33,\"slug\":\"x-space-archive-replay\",\"image\":{\"id\":192,\"alt\":\"A play button with a lock and sound waves on a black background, illustrating why an X Space recording will not play and how long it lasts\",\"caption\":null,\"credit\":{\"sourceName\":null,\"sourceUrl\":null,\"license\":null,\"licenseUrl\":null},\"memo\":null,\"updatedAt\":\"2026-09-24T10:51:57.426Z\",\"createdAt\":\"2026-09-24T10:51:57.425Z\",\"url\":\"/api/media/file/x-space-archive-replay-thumbnail-en.webp\",\"thumbnailURL\":null,\"filename\":\"x-space-archive-replay-thumbnail-en.webp\",\"mimeType\":\"image/webp\",\"filesize\":23052,\"width\":1200,\"height\":630,\"focalX\":50,\"focalY\":50},\"title\":\"How to Listen to X Space Recordings | Why They Won’t Play and How Long They Last\",\"createdAt\":\"2026-09-24T10:15:27.489Z\"},{\"id\":31,\"slug\":\"speaker-diarization\",\"image\":{\"id\":188,\"alt\":\"A diagram showing one waveform splitting into three rows labelled speaker A, B and C\",\"caption\":null,\"credit\":{\"sourceName\":null,\"sourceUrl\":null,\"license\":null,\"licenseUrl\":null},\"memo\":null,\"updatedAt\":\"2026-09-19T23:46:44.294Z\",\"createdAt\":\"2026-09-19T23:46:44.293Z\",\"url\":\"/api/media/file/diarization-thumbnail-en.webp\",\"thumbnailURL\":null,\"filename\":\"diarization-thumbnail-en.webp\",\"mimeType\":\"image/webp\",\"filesize\":19640,\"width\":1200,\"height\":630,\"focalX\":50,\"focalY\":50},\"title\":\"Free Transcription with Speaker Diarization | Split by Who Spoke\",\"createdAt\":\"2026-09-19T22:58:33.949Z\"},{\"id\":30,\"slug\":\"m4a-transcription\",\"image\":{\"id\":186,\"alt\":\"A diagram showing an m4a file being turned into text split by speaker\",\"caption\":null,\"credit\":{\"sourceName\":null,\"sourceUrl\":null,\"license\":null,\"licenseUrl\":null},\"memo\":null,\"updatedAt\":\"2026-09-19T22:33:41.893Z\",\"createdAt\":\"2026-09-19T22:33:41.892Z\",\"url\":\"/api/media/file/m4a-transcription-thumbnail-en.webp\",\"thumbnailURL\":null,\"filename\":\"m4a-transcription-thumbnail-en.webp\",\"mimeType\":\"image/webp\",\"filesize\":22970,\"width\":1200,\"height\":630,\"focalX\":50,\"focalY\":50},\"title\":\"How to Transcribe an m4a File | No Conversion, No Upload\",\"createdAt\":\"2026-09-19T22:17:40.915Z\"},{\"id\":29,\"slug\":\"image-stylize\",\"image\":{\"id\":180,\"alt\":\"A photo alongside four generated versions in illustration, anime and mosaic styles\",\"caption\":null,\"credit\"
1:{\"sourceName\":null,\"sourceUrl\":null,\"license\":null,\"licenseUrl\":null},\"memo\":null,\"updatedAt\":\"2026-09-18T09:14:49.340Z\",\"createdAt\":\"2026-09-18T09:14:49.340Z\",\"url\":\"/api/media/file/image-stylize-thumbnail-en.webp\",\"thumbnailURL\":null,\"filename\":\"image-stylize-thumbnail-en.webp\",\"mimeType\":\"image/webp\",\"filesize\":65982,\"width\":1200,\"height\":630,\"focalX\":50,\"focalY\":50},\"title\":\"How to Turn Photos into Illustrations and Anime Art|7 Styles at Once, No Upload\",\"createdAt\":\"2026-09-18T09:14:49.260Z\"},{\"id\":28,\"slug\":\"image-ai-upscale\",\"image\":{\"id\":173,\"alt\":\"A small photo next to a larger, sharper version produced by AI upscaling\",\"caption\":null,\"credit\":{\"sourceName\":null,\"sourceUrl\":null,\"license\":null,\"licenseUrl\":null},\"memo\":null,\"updatedAt\":\"2026-09-18T03:55:51.648Z\",\"createdAt\":\"2026-09-18T03:55:51.648Z\",\"url\":\"/api/media/file/image-ai-upscale-thumbnail-en.webp\",\"thumbnailURL\":null,\"filename\":\"image-ai-upscale-thumbnail-en.webp\",\"mimeType\":\"image/webp\",\"filesize\":23336,\"width\":1200,\"height\":630,\"focalX\":50,\"focalY\":50},\"title\":\"How to Upscale Images with AI|No Blur When Enlarged, No Upload\",\"createdAt\":\"2026-09-18T03:55:51.578Z\"},{\"id\":27,\"slug\":\"old-photo-face-restore\",\"image\":{\"id\":165,\"alt\":\"A portrait from around 1900 shown side by side, with the right half restored by AI and visibly sharper\",\"caption\":null,\"credit\":{\"sourceName\":null,\"sourceUrl\":null,\"license\":null,\"licenseUrl\":null},\"memo\":null,\"updatedAt\":\"2026-09-18T01:16:30.177Z\",\"createdAt\":\"2026-09-18T01:16:30.177Z\",\"url\":\"/api/media/file/old-photo-face-restore-thumbnail-en.webp\",\"thumbnailURL\":null,\"filename\":\"old-photo-face-restore-thumbnail-en.webp\",\"mimeType\":\"image/webp\",\"filesize\":32238,\"width\":1200,\"height\":630,\"focalX\":50,\"focalY\":50},\"title\":\"How to Restore Faces in Old Photos with AI|Free, No Upload, Entirely in Your Browser\",\"createdAt\":\"2026-09-18T01:16:30.103Z\"},{\"id\":26,\"slug\":\"image-remove-background\",\"image\":{\"id\":153,\"alt\":\"A photo with its background on the left half and removed on the right half\",\"caption\":null,\"credit\":{\"sourceName\":null,\"sourceUrl\":null,\"license\":null,\"licenseUrl\":null},\"memo\":null,\"updatedAt\":\"2026-09-17T07:08:53.000Z\",\"createdAt\":\"2026-09-17T07:08:53.000Z\",\"url\":\"/api/media/file/image-remove-background-thumbnail-en.webp\",\"thumbnailURL\":null,\"filename\":\"image-remove-background-thumbnail-en.webp\",\"mimeType\":\"image/webp\",\"filesize\":26690,\"width\":1200,\"height\":630,\"focalX\":50,\"focalY\":50},\"title\":\"How to Remove an Image Background | Free, No Upload, People and Products Alike\",\"createdAt\":\"2026-09-17T06:02:35.690Z\"},{\"id\":25,\"slug\":\"x-video-how-to-download\",\"image\":{\"id\":147,\"alt\":\"A post on X containing a video, with the saved MP4 file layered in front of it\",\"caption\":null,\"credit\":{\"sourceName\":null,\"sourceUrl\":null,\"license\":null,\"licenseUrl\":null},\"memo\":null,\"updatedAt\":\"2026-09-17T05:05:03.607Z\",\"createdAt\":\"2026-09-17T05:05:03.607Z\",\"url\":\"/api/media/file/x-video-how-to-download-thumbnail-en.webp\",\"thumbnailURL\":null,\"filename\":\"x-video-how-to-download-thumbnail-en.webp\",\"mimeType\":\"image/webp\",\"filesize\":18028,\"width\":1200,\"height\":630,\"focalX\":50,\"focalY\":50},\"title\":\"How to Save Videos from X (Formerly Twitter) | Step-by-Step for PC and Phone\",\"createdAt\":\"2026-09-17T04:46:53.939Z\"},{\"id\":24,\"slug\":\"browser-video-webcodecs\",\"image\":{\"id\":140,\"alt\":\"A comparison of how long it took to convert a 20-second video: 20.1 seconds with ffmpeg.wasm against 0.82 seconds with WebCodecs and mediabunny\",\"caption\":null,\"credit\":{\"sourceName\":null,\"sourceUrl\":null,\"license\":null,\"licenseUrl\":null},\"memo\":null,\"updatedAt\":\"2026-09-17T03:17:14.802Z\",\"createdAt\":\"2026-09-17T03:17:14.802Z\",\"url\":\"/api/media/file/browser-video-webcodecs-thumbnail-en.webp\",\"thumbnailURL\":null,\"filename\":\"browser-video-webcodecs-thumbnail-en.webp\",\"mimeType\":\"image/webp\",\"filesize\":18350,\"width\":1200,\"height\"
1:630,\"focalX\":50,\"focalY\":50},\"title\":\"Building In-Browser Video Conversion with WebCodecs | Why I Skipped ffmpeg.wasm\",\"createdAt\":\"2026-09-17T02:09:02.182Z\"},{\"id\":23,\"slug\":\"subtitle-burn-in-browser\",\"image\":{\"id\":126,\"alt\":\"A headline reading \\\"Burn Subtitles into Your Video\\\" next to a video player with a subtitle burned into the picture\",\"caption\":null,\"credit\":{\"sourceName\":null,\"sourceUrl\":null,\"license\":null,\"licenseUrl\":null},\"memo\":null,\"updatedAt\":\"2026-09-17T00:50:26.367Z\",\"createdAt\":\"2026-09-17T00:50:26.367Z\",\"url\":\"/api/media/file/subtitle-burn-in-browser-thumbnail-en.webp\",\"thumbnailURL\":null,\"filename\":\"subtitle-burn-in-browser-thumbnail-en.webp\",\"mimeType\":\"image/webp\",\"filesize\":26208,\"width\":1200,\"height\":630,\"focalX\":50,\"focalY\":50},\"title\":\"How to Add Subtitles to a Video in Your Browser | Free, No Install, No Upload\",\"createdAt\":\"2026-09-16T23:41:42.704Z\"}]}],\"$L22\",\"$L23\"]}],\"$L24\"]}],\"$L25\"]\n26:I[398141,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"LexicalConverter\"]\n27:I[168419,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"ShareLinks\"]\n22:[\"$\",\"header\",null,{\"className\":\"w-full px-4 sm:px-2 py-4 sm:py-8 flex flex-col justify-center items-center gap-y-3\",\"children\":[[\"$\",\"h1\",null,{\"style\":{\"animationDuration\":\"1s\"},\"className\":\"animate__animated animate__fadeInDown text-2xl font-bold text-center\",\"children\":\"画像をWEBP形式へ変換するためのCLIツールの覚書\"}],[\"$\",\"div\",null,{\"style\":{\"animationDuration\":\"1.8s\"},\"className\":\"animate__animated animate__fadeInDown flex flex-col lg:flex-row lg:flex-wrap gap-x-5 gap-y-3 justify-center items-center\",\"children\":[false,[\"$\",\"div\",null,{\"className\":\"inline-flex flex-wrap items-center justify-center gap-x-4 gap-y-2 text-sm\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-base\",\"children\":[\"Created on\",\":\",\"December 10, 2025 at 3:11 PM\"]}],[\"$\",\"time\",null,{\"dateTime\":\"2025-12-10T06:27:11.206Z\",\"className\":\"text-base\",\"children\":[\"Updated on\",\":\",\"December 10, 2025 at 3:27 PM\"]}]]}]]}]]}]\n23:[\"$\",\"div\",null,{\"className\":\"w-full lg:max-w-7xl mx-auto p-2 flex flex-col lg:flex-row\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-full lg:grow lg:min-w-0\",\"children\":[[\"$\",\"article\",null,{\"className\":\"lexical-content w-full rounded-sm mt-4 lg:mt-0 px-4 lg:px-8 lg:py-4 bg-stone-100 dark:bg-stone-900\",\"children\":[[\"$\",\"$L26\",null,{\"isVisibleAdsense\":true,\"lexicalData\":{\"root\":{\"type\":\"root\",\"format\":\"\",\"indent\":0,\"version\":1,\"children\":[{\"type\":\"paragraph\",\"format\":\"\",\"indent\":0,\"version\":1,\"children\":[{\"mode\":\"normal\",\"text\":\"webp公式のユーティリティツールを以下からダウンロードする。\",\"type\":\"text\",\"style\":\"\",\"detail\":0,\"format\":0,\"version\":1}],\"direction\":null,\"textStyle\":\"\",\"textFormat\":0},{\"type\":\"block\",\"fields\":{\"id\":\"69390f68c418a3b430576012\",\"url\":\"https://developers.google.com/speed/webp/docs/precompiled?hl=ja\u0026_gl=1*1gh7ajd*_up*MQ..*_ga*MTQyNjg1OTYyNC4xNzY1MzQ3MDcy*_ga_SM8HXJ53K2*czE3NjUzNDcwNzEkbzEkZzAkdDE3NjUzNDcwNzEkajYwJGwwJGgw\",\"title\":\"プリコンパイルされたユーティリティ  |  WebP  |  Google for Developers\",\"imageUrl\":\"https://www.gstatic.com/devrel-devsite/prod/v9de0f443992d54ad799f913d3a82969ff613e39ab9e3e056983c556b3c2ef1f8/developers/images/opengraph/google-green.png\",\"blockName\":\"\",\"blockType\":\"link-card\",\"fixedImageUrl\":false,\"imageUrlCache\":\"/my-rest/ogp-image-cache?url=https%3A%2F%2Fwww.gstatic.
1com%2Fdevrel-devsite%2Fprod%2Fv9de0f443992d54ad799f913d3a82969ff613e39ab9e3e056983c556b3c2ef1f8%2Fdevelopers%2Fimages%2Fopengraph%2Fgoogle-green.png\"},\"format\":\"\",\"version\":2},{\"type\":\"paragraph\",\"format\":\"\",\"indent\":0,\"version\":1,\"children\":[{\"mode\":\"normal\",\"text\":\"「libwebp」という名称で各OSごとにバイナリーが提供されているので、自分の環境にあったものをダウンロードする。\",\"type\":\"text\",\"style\":\"\",\"detail\":0,\"format\":0,\"version\":1}],\"direction\":null,\"textStyle\":\"\",\"textFormat\":0},{\"type\":\"paragraph\",\"format\":\"\",\"indent\":0,\"version\":1,\"children\":[{\"mode\":\"normal\",\"text\":\"「libwebp」自体はコマンドラインツールなので、WindowsならコマンドプロンプトやPowerShellから実行することになる。\",\"type\":\"text\",\"style\":\"\",\"detail\":0,\"format\":0,\"version\":1}],\"direction\":null,\"textStyle\":\"\",\"textFormat\":0},{\"type\":\"paragraph\",\"format\":\"\",\"indent\":0,\"version\":1,\"children\":[{\"mode\":\"normal\",\"text\":\"プログラム本体はどこに置いても構わないが、環境変数にパスを登録しておいた方が便利だと思う。\",\"type\":\"text\",\"style\":\"\",\"detail\":0,\"format\":0,\"version\":1}],\"direction\":null,\"textStyle\":\"\",\"textFormat\":0},{\"type\":\"paragraph\",\"format\":\"\",\"indent\":0,\"version\":1,\"children\":[{\"mode\":\"normal\",\"text\":\"以下にそれぞれコスパ最高な設定で、「不可逆圧縮」と「可逆圧縮」両方のコマンドを示しておく。\",\"type\":\"text\",\"style\":\"\",\"detail\":0,\"format\":0,\"version\":1}],\"direction\":null,\"textStyle\":\"\",\"textFormat\":0},{\"type\":\"paragraph\",\"format\":\"\",\"indent\":0,\"version\":1,\"children\":[{\"mode\":\"normal\",\"text\":\"◇不可逆圧縮\",\"type\":\"text\",\"style\":\"\",\"detail\":0,\"format\":0,\"version\":1}],\"direction\":null,\"textStyle\":\"\",\"textFormat\":0},{\"type\":\"block\",\"fields\":{\"id\":\"69391209b0e89d2b2fc23e8f\",\"code\":\"cwebp -q 92 -m 6 -o lossy_image.webp image.jpg\",\"language\":\"commandline\",\"blockName\":\"\",\"blockType\":\"code-block\"},\"format\":\"\",\"version\":2},{\"type\":\"paragraph\",\"format\":\"\",\"indent\":0,\"version\":1,\"children\":[{\"mode\":\"normal\",\"text\":\"◇可逆圧縮\",\"type\":\"text\",\"style\":\"\",\"detail\":0,\"format\":0,\"version\":1}],\"direction\":null,\"textStyle\":\"\",\"textFormat\":0},{\"type\":\"block\",\"fields\":{\"id\":\"69391229b0e89d2b2fc23e90\",\"code\":\"cwebp -lossless -q 100 -m 6 -progress -o lossless_image.webp image.png\",\"language\":\"commandline\",\"blockName\":\"\",\"blockType\":\"code-block\"},\"format\":\"\",\"version\":2},{\"type\":\"paragraph\",\"format\":\"\",\"indent\":0,\"version\":1,\"children\":[{\"mode\":\"normal\",\"text\":\"◇参考サイト\",\"type\":\"text\",\"style\":\"\",\"detail\":0,\"format\":0,\"version\":1}],\"direction\":null,\"textStyle\":\"\",\"textFormat\":0},{\"type\":\"block\",\"fields\":{\"id\":\"69391247b0e89d2b2fc23e91\",\"url\":\"https://blog.chaotic-notes.com/articles/convert-image-format-to-webp/\",\"title\":\"WebP形式の画像に統一してウェブサイトを高速化しよう\",\"imageUrl\":\"https://blog.chaotic-notes.com/images/technology/sitespeed/title.webp\",\"blockName\":\"\",\"blockType\":\"link-card\",\"description\":\"ウェブサイトで使っている JPEG 形式や PNG 形式の画像から、優秀な次世代フォーマットである WebP に変換する方法をご紹介します。\",\"fixedImageUrl\":false,\"imageUrlCache\":\"/my-rest/ogp-image-cache?url=https%3A%2F%2Fblog.chaotic-notes.com%2Fimages%2Ftechnology%2Fsitespeed%2Ftitle.webp\"},\"format\":\"\",\"version\":2}],\"direction\":null}}}],[\"$\",\"$L27\",null,{\"title\":\"画像をWEBP形式へ変換するためのCLIツールの覚書\",\"url\":\"https://ryusei.io/en/tips/image-convert-to-webp\"}],[\"$\",\"aside\",null,{\"className\":\"mt-6 flex flex-col\",\"children\":[\"$L28\",false]}]]}],[\"$\",\"aside\",null,{\"className\":\"w-full my-4\",\"children\":\"$L29\"}],\"$L2a\",\"$L2b\"]}],\"$L2c\"]}]\n25:[\"$\",\"div\",null,{\"className\":\"w-full bg-stone-200 dark:bg-stone-800\",\"children\":\"$L2d\"}]\n2e:I[879752,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"AdsenseResponsive\"]\n3c:I[583336,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"SlideSquareAd\"]\n3e:I[449348,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"AdsenseSquare\"]\n3f:I[897539,[\"/_
1next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"default\"]\n42:I[841680,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"ContactFormDialogToggle\"]\n29:[\"$\",\"$L2e\",null,{\"visible\":true}]\n2a:[\"$\",\"aside\",null,{\"className\":\"w-full mt-6 rounded-sm bg-stone-100 dark:bg-stone-900\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold px-4 py-3\",\"children\":\"Other Latest Tips\"}],[\"$\",\"div\",null,{\"className\":\"w-full flex flex-wrap items-stretch mt-3\",\"children\":[[\"$\",\"article\",\"0\",{\"className\":\"w-full lg:w-1/2 p-2 flex\",\"children\":\"$L2f\"}],[\"$\",\"article\",\"1\",{\"className\":\"w-full lg:w-1/2 p-2 flex\",\"children\":\"$L30\"}],[\"$\",\"article\",\"2\",{\"className\":\"w-full lg:w-1/2 p-2 flex\",\"children\":\"$L31\"}]]}]]}]\n2b:[\"$\",\"aside\",null,{\"className\":\"w-full mt-6 rounded-sm bg-stone-100 dark:bg-stone-900\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold px-4 py-3\",\"children\":\"Latest Articles\"}],[\"$\",\"ul\",null,{\"className\":\"w-full py-3 flex flex-wrap items-center\",\"children\":[[\"$\",\"li\",\"0\",{\"className\":\"w-full px-2 lg:w-1/2\",\"children\":\"$L32\"}],[\"$\",\"li\",\"1\",{\"className\":\"w-full px-2 lg:w-1/2\",\"children\":\"$L33\"}],[\"$\",\"li\",\"2\",{\"className\":\"w-full px-2 lg:w-1/2\",\"children\":\"$L34\"}],[\"$\",\"li\",\"3\",{\"className\":\"w-full px-2 lg:w-1/2\",\"children\":\"$L35\"}],[\"$\",\"li\",\"4\",{\"className\":\"w-full px-2 lg:w-1/2\",\"children\":\"$L36\"}],[\"$\",\"li\",\"5\",{\"className\":\"w-full px-2 lg:w-1/2\",\"children\":\"$L37\"}],[\"$\",\"li\",\"6\",{\"className\":\"w-full px-2 lg:w-1/2\",\"children\":\"$L38\"}],[\"$\",\"li\",\"7\",{\"className\":\"w-full px-2 lg:w-1/2\",\"children\":\"$L39\"}],[\"$\",\"li\",\"8\",{\"className\":\"w-full px-2 lg:w-1/2\",\"children\":\"$L3a\"}],[\"$\",\"li\",\"9\",{\"className\":\"w-full px-2 lg:w-1/2\",\"children\":\"$L3b\"}]]}]]}]\n2c:[\"$\",\"aside\",null,{\"className\":\"w-full lg:w-[360px] lg:shrink-0 flex flex-col gap-y-4 pl-0 sm:pl-3 mt-4 lg:mt-0\",\"children\":[[\"$\",\"$L3c\",null,{\"ads\":{\"square\":[{\"code\":\"\u003ca href=\\\"https://px.a8.net/svt/ejp?a8mat=45KB4W+95UEEI+2JK4+4SOZQ9\\\" target=\\\"_blank\\\" rel=\\\"nofollow\\\"\u003e\u003cimg border=\\\"0\\\" width=\\\"300\\\" height=\\\"250\\\" alt=\\\"promotion banner\\\" src=\\\"https://www26.a8.net/svt/bgt?aid=251210336554\u0026wid=012\u0026eno=01\u0026mid=s00000011866029006000\u0026mc=1\\\"\u003e\u003c/a\u003e\u003cimg border=\\\"0\\\" width=\\\"1\\\" height=\\\"1\\\" src=\\\"https://www11.a8.net/0.gif?a8mat=45KB4W+95UEEI+2JK4+4SOZQ9\\\" alt=\\\"\\\"\u003e\",\"label\":\"レバテックダイレクト\"}]},\"locale\":\"en\"}],\"$L3d\",[\"$\",\"$L3e\",null,{\"visible\":true}]]}]\n28:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/tips/windows-system-check-command\",\"locale\":\"$undefined\",\"localeCookie\":{\"name\":\"NEXT_LOCALE\",\"sameSite\":\"lax\"},\"className\":\"w-full flex flex-row items-center justify-start gap-x-3 text-foreground hover:no-underline transition-colors hover:bg-stone-200 dark:hover:bg-stone-800 p-2 rounded\",\"title\":\"【Windows】システム修復・検証コマンドの覚書\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 24 24\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"fill\":\"none\",\"strokeWidth\":\"2\",\"d\":\"M2,12 L22,12 M13,3 L22,12 L13,21\",\"transform\":\"matrix(-1 0 0 1 24 0)\",\"children\":[]}]]],\"className\":\"$undefined\",\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],[\"$\",\"span\",null,{\"className\":\"text-sm line-clamp-2\",\"children\":\"【Windows】システム修復・検証コマンドの覚書\"}]]}]\n2d:[\"$\",\"footer\",null,{\"className\":\"w-full sm:max-w-7xl mx-auto mt-2 p-4 flex flex-col lg:flex-row items-center justify-center\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"grow\",\"children\":[\"$\",\"ul\",null,{\"className\":\"w-full px-2 flex flex-wrap items-center justify-center sm:justify-start gap-x-4 gap-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":\"$L40\"}],[\"$\",\"li\",null,{\"children\":\"$L41\"}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L42\",null,{\"text\":\"Contact\"}]}]]}]}],[\"$\",\"div\",null,{\"className\":\"px-2\",\"children\":[\"$\",\"small\",null,{\"className\":\"text-sm text-muted-foreground\",\"children\":[\"Copyright © \",2026,\" Ryusei. All rights reserved.\"]}]}]]}]\n43:I[359658,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"Image\"]\n2f:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/tips/windows-system-check-command\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-col flex-1 p-2 rounded-sm bg-stone-100 dark:bg-stone-800 border-2 border-solid border-transparent transition-colors hover:border-stone-300 dark:hover:border-stone-600\",\"children\":[[\"$\",\"h3\",null,{\"title\":\"【Windows】システム修復・検証コマンドの覚書\",\"className\":\"text-lg font-semibold line-clamp-2 mb-2\",\"children\":\"【Windows】システム修復・検証コマンドの覚書\"}],[\"$\",\"p\",null,{\"title\":\"【Windows】システム修復・検証コマンドの覚書\",\"className\":\"text-sm text-muted-foreground line-clamp-4\",\"children\":\"【Windows】システム修復・検証コマンドの覚書\"}],[\"$\",\"ul\",null,{\"className\":\"w-full mt-2\",\"children\":[]}],[\"$\",\"span\",null,{\"className\":\"mt-auto place-self-end text-muted-foreground flex flex-row items-center gap-x-1\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 24 24\",\"aria-label\":\"post date\",\"children\":[\"$undefined\",[[\"$\",\"g\",\"0\",{\"id\":\"Timer\",\"children\":[[\"$\",\"g\",\"0\",{\"children\":[[\"$\",\"path\",\"0\",{\"d\":\"M2.336,9.685A9.934,9.934,0,0,0,13.592,21.808,9.931,9.931,0,0,0,20.708,7.23,10.046,10.046,0,0,0,12,2.072a.507.507,0,0,0-.5.5v4.2a.5.5,0,0,0,1,0v-4.2l-.5.5a8.935,8.935,0,0,1,8.433,11.892A8.938,8.938,0,0,1,6.468,19.027,9.041,9.041,0,0,1,3.3,9.951c.142-.627-.822-.9-.964-.266Z\",\"children\":[]}],[\"$\",\"path\",\"1\",{\"d\":\"M7.4,8.117a.5.5,0,0,1,.707-.707l4.243,4.242h0a.5.5,0,0,1-.707.707Z\",\"children\":[]}]]}]]}]]],\"className\":\"$undefined\",\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"August 26, 2025 at 10:14 AM\"]}]]}]\n30:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/tips/python-pip-command-memo\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-col flex-1 p-2 rounded-sm bg-stone-100 dark:bg-stone-800 border-2 border-solid border-transparent transition-colors hover:border-stone-300 dark:hover:border-stone-600\",\"children\":[[\"$\",\"h3\",null,{\"title\":\"Pythonのパッケージ管理コマンド「pip」の覚書\",\"className\":\"text-lg font-semibold line-clamp-2 mb-2\",\"children\":\"Pythonのパッケージ管理コマンド「pip」の覚書\"}],[\"$\",\"p\",null,{\"title\":\"Pythonのパッケージ管理コマンド「pip」の覚書\",\"className\":\"text-sm text-muted-foreground line-clamp-4\",\"children\":\"Pythonのパッケージ管理コマンド「pip」の覚書\"}],[\"$\",\"ul\",null,{\"className\":\"w-full mt-2\",\"children\":[[\"$\",\"li\",\"0\",{\"className\":\"inline-flex flex-row items-center justify-end gap-x-1 text-xs bg-stone-300 dark:bg-stone-700 text-stone-800 dark:text-stone-200 rounded-full px-2 py-1 mr-1 mt-2\",\"children\":[[\"$\",\"$L43\",null,{\"width\":30,\"height\"
1:30,\"src\":\"/api/media/file/programing.webp\",\"alt\":\"icon\",\"className\":\"size-[1.3em] rounded-full\"}],\"Programing\"]}],[\"$\",\"li\",\"1\",{\"className\":\"inline-flex flex-row items-center justify-end gap-x-1 text-xs bg-stone-300 dark:bg-stone-700 text-stone-800 dark:text-stone-200 rounded-full px-2 py-1 mr-1 mt-2\",\"children\":[[\"$\",\"$L43\",null,{\"width\":30,\"height\":30,\"src\":\"/api/media/file/python.webp\",\"alt\":\"icon\",\"className\":\"size-[1.3em] rounded-full\"}],\"Python\"]}]]}],[\"$\",\"span\",null,{\"className\":\"mt-auto place-self-end text-muted-foreground flex flex-row items-center gap-x-1\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 24 24\",\"aria-label\":\"post date\",\"children\":[\"$undefined\",[[\"$\",\"g\",\"0\",{\"id\":\"Timer\",\"children\":[[\"$\",\"g\",\"0\",{\"children\":[[\"$\",\"path\",\"0\",{\"d\":\"M2.336,9.685A9.934,9.934,0,0,0,13.592,21.808,9.931,9.931,0,0,0,20.708,7.23,10.046,10.046,0,0,0,12,2.072a.507.507,0,0,0-.5.5v4.2a.5.5,0,0,0,1,0v-4.2l-.5.5a8.935,8.935,0,0,1,8.433,11.892A8.938,8.938,0,0,1,6.468,19.027,9.041,9.041,0,0,1,3.3,9.951c.142-.627-.822-.9-.964-.266Z\",\"children\":[]}],[\"$\",\"path\",\"1\",{\"d\":\"M7.4,8.117a.5.5,0,0,1,.707-.707l4.243,4.242h0a.5.5,0,0,1-.707.707Z\",\"children\":[]}]]}]]}]]],\"className\":\"$undefined\",\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"August 26, 2025 at 10:12 AM\"]}]]}]\n31:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/tips/certbot-command-memo\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-col flex-1 p-2 rounded-sm bg-stone-100 dark:bg-stone-800 border-2 border-solid border-transparent transition-colors hover:border-stone-300 dark:hover:border-stone-600\",\"children\":[[\"$\",\"h3\",null,{\"title\":\"certbotコマンドで「Let's Encrypt」のSSL証明書を取得する時の覚書\",\"className\":\"text-lg font-semibold line-clamp-2 mb-2\",\"children\":\"certbotコマンドで「Let's Encrypt」のSSL証明書を取得する時の覚書\"}],[\"$\",\"p\",null,{\"title\":\"certbotコマンドで「Let's Encrypt」のSSL証明書を取得する時の覚書\",\"className\":\"text-sm text-muted-foreground line-clamp-4\",\"children\":\"certbotコマンドで「Let's Encrypt」のSSL証明書を取得する時の覚書\"}],[\"$\",\"ul\",null,{\"className\":\"w-full mt-2\",\"children\":[[\"$\",\"li\",\"0\",{\"className\":\"inline-flex flex-row items-center justify-end gap-x-1 text-xs bg-stone-300 dark:bg-stone-700 text-stone-800 dark:text-stone-200 rounded-full px-2 py-1 mr-1 mt-2\",\"children\":[[\"$\",\"$L43\",null,{\"width\":30,\"height\":30,\"src\":\"/api/media/file/hosting.webp\",\"alt\":\"icon\",\"className\":\"size-[1.3em] rounded-full\"}],\"Hosting\"]}]]}],[\"$\",\"span\",null,{\"className\":\"mt-auto place-self-end text-muted-foreground flex flex-row items-center gap-x-1\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 24 24\",\"aria-label\":\"post date\",\"children\":[\"$undefined\",[[\"$\",\"g\",\"0\",{\"id\":\"Timer\",\"children\":[[\"$\",\"g\",\"0\",{\"children\":[[\"$\",\"path\",\"0\",{\"d\":\"M2.336,9.685A9.934,9.934,0,0,0,13.592,21.808,9.931,9.931,0,0,0,20.708,7.23,10.046,10.046,0,0,0,12,2.072a.507.507,0,0,0-.5.5v4.2a.5.5,0,0,0,1,0v-4.2l-.5.5a8.935,8.935,0,0,1,8.433,11.892A8.938,8.938,0,0,1,6.468,19.027,9.041,9.041,0,0,1,3.3,9.951c.142-.627-.822-.9-.964-.266Z\",\"children\":[]}],[\"$\",\"path\",\"1\",{\"d\":\"M7.4,8.117a.5.5,0,0,1,.707-.707l4.243,4.242h0a.5.5,0,0,1-.707.707Z\",\"children\":[]}]]}]]}]]],\"className\":\"$undefined\",\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"August 26, 2025 at 10:06 AM\"]}]]}]\n32:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/article/x-space-archive-replay\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dar
1k:hover:bg-stone-800 rounded-md\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/x-space-archive-replay-thumbnail-en.webp\",\"alt\":\"thumbnail image\",\"width\":100,\"height\":100,\"loading\":\"lazy\",\"className\":\"w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md\"}],[\"$\",\"span\",null,{\"title\":\"How to Listen to X Space Recordings | Why They Won’t Play and How Long They Last\",\"className\":\"text-lg font-medium line-clamp-2\",\"children\":\"How to Listen to X Space Recordings | Why They Won’t Play and How Long They Last\"}]]}]\n33:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/article/speaker-diarization\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/diarization-thumbnail-en.webp\",\"alt\":\"thumbnail image\",\"width\":100,\"height\":100,\"loading\":\"lazy\",\"className\":\"w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md\"}],[\"$\",\"span\",null,{\"title\":\"Free Transcription with Speaker Diarization | Split by Who Spoke\",\"className\":\"text-lg font-medium line-clamp-2\",\"children\":\"Free Transcription with Speaker Diarization | Split by Who Spoke\"}]]}]\n34:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/article/m4a-transcription\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/m4a-transcription-thumbnail-en.webp\",\"alt\":\"thumbnail image\",\"width\":100,\"height\":100,\"loading\":\"lazy\",\"className\":\"w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md\"}],[\"$\",\"span\",null,{\"title\":\"How to Transcribe an m4a File | No Conversion, No Upload\",\"className\":\"text-lg font-medium line-clamp-2\",\"children\":\"How to Transcribe an m4a File | No Conversion, No Upload\"}]]}]\n35:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/article/image-stylize\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/image-stylize-thumbnail-en.webp\",\"alt\":\"thumbnail image\",\"width\":100,\"height\":100,\"loading\":\"lazy\",\"className\":\"w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md\"}],[\"$\",\"span\",null,{\"title\":\"How to Turn Photos into Illustrations and Anime Art|7 Styles at Once, No Upload\",\"className\":\"text-lg font-medium line-clamp-2\",\"children\":\"How to Turn Photos into Illustrations and Anime Art|7 Styles at Once, No Upload\"}]]}]\n36:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/article/image-ai-upscale\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/image-ai-upscale-thumbnail-en.webp\",\"alt\":\"thumbnail image\",\"width\":100,\"height\":100,\"loading\":\"lazy\",\"className\":\"w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md\"}],[\"$\",\"span\",null,{\"title\":\"How to Upscale Images with AI|No Blur When Enlarged, No Upload\",\"className\":\"text-lg font-medium line-clamp-2\",\"children\":\"How to Upscale Images with AI|No Blur When Enlarged, No Upload\"}]]}]\n37:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/article/old-photo-face-restore\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dar
1k:hover:bg-stone-800 rounded-md\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/old-photo-face-restore-thumbnail-en.webp\",\"alt\":\"thumbnail image\",\"width\":100,\"height\":100,\"loading\":\"lazy\",\"className\":\"w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md\"}],[\"$\",\"span\",null,{\"title\":\"How to Restore Faces in Old Photos with AI|Free, No Upload, Entirely in Your Browser\",\"className\":\"text-lg font-medium line-clamp-2\",\"children\":\"How to Restore Faces in Old Photos with AI|Free, No Upload, Entirely in Your Browser\"}]]}]\n38:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/article/image-remove-background\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/image-remove-background-thumbnail-en.webp\",\"alt\":\"thumbnail image\",\"width\":100,\"height\":100,\"loading\":\"lazy\",\"className\":\"w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md\"}],[\"$\",\"span\",null,{\"title\":\"How to Remove an Image Background | Free, No Upload, People and Products Alike\",\"className\":\"text-lg font-medium line-clamp-2\",\"children\":\"How to Remove an Image Background | Free, No Upload, People and Products Alike\"}]]}]\n39:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/article/x-video-how-to-download\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/x-video-how-to-download-thumbnail-en.webp\",\"alt\":\"thumbnail image\",\"width\":100,\"height\":100,\"loading\":\"lazy\",\"className\":\"w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md\"}],[\"$\",\"span\",null,{\"title\":\"How to Save Videos from X (Formerly Twitter) | Step-by-Step for PC and Phone\",\"className\":\"text-lg font-medium line-clamp-2\",\"children\":\"How to Save Videos from X (Formerly Twitter) | Step-by-Step for PC and Phone\"}]]}]\n3a:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/article/browser-video-webcodecs\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/browser-video-webcodecs-thumbnail-en.webp\",\"alt\":\"thumbnail image\",\"width\":100,\"height\":100,\"loading\":\"lazy\",\"className\":\"w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md\"}],[\"$\",\"span\",null,{\"title\":\"Building In-Browser Video Conversion with WebCodecs | Why I Skipped ffmpeg.wasm\",\"className\":\"text-lg font-medium line-clamp-2\",\"children\":\"Building In-Browser Video Conversion with WebCodecs | Why I Skipped ffmpeg.wasm\"}]]}]\n3b:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/article/subtitle-burn-in-browser\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"flex flex-row items-center gap-x-4 p-3 border-b-2 border-dotted border-stone-200 dark:border-stone-700 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/subtitle-burn-in-browser-thumbnail-en.webp\",\"alt\":\"thumbnail image\",\"width\":100,\"height\":100,\"loading\":\"lazy\",\"className\":\"w-[3.5em] h-[3.5em] shrink-0 object-cover rounded-md\"}],[\"$\",\"span\",null,{\"title\":\"How to Add Subtitles to a Video in Your Browser | Free, No Install, No Upload\",\"className\":\"text-lg font-medium line-clamp-2\",\"children\":\"How to Add Subtitles to a Video in Your Browser | Free, No Install, No Upload\"}]]}]\n40:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"children\":\"Home\"}]\n41:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/privacy-policy\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"children\":\"Privacy Policy\"}]\n24:[\"$\",\"aside\",null,{\"className\":\"w-full sm:max-w-7xl mx-auto p-2 my-2\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold\",\"children\":\"Categories\"}],[\"$\",\"ul\",null,{\"className\":\"w-full py-3 flex flex-wrap items-center\",\"children\":[[\"$\",\"li\",\"0\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L44\"}],[\"$\",\"li\",\"1\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L45\"}],[\"$\",\"li\",\"2\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L46\"}],[\"$\",\"li\",\"3\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L47\"}],[\"$\",\"li\",\"4\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L48\"}],[\"$\",\"li\",\"5\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L49\"}],[\"$\",\"li\",\"6\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L4a\"}],[\"$\",\"li\",\"7\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L4b\"}],[\"$\",\"li\",\"8\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L4c\"}],[\"$\",\"li\",\"9\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L4d\"}],[\"$\",\"li\",\"10\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L4e\"}],[\"$\",\"li\",\"11\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L4f\"}],[\"$\",\"li\",\"12\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L50\"}],[\"$\",\"li\",\"13\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L51\"}],[\"$\",\"li\",\"14\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L52\"}],[\"$\",\"li\",\"15\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L53\"}],[\"$\",\"li\",\"16\",{\"className\":\"p-2 w-auto flex items-center justify-start\",\"children\":\"$L54\"}]]}]]}]\n55:I[779569,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"MobileMenuSheetToggle\"]\n44:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/transcription\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dar
1k:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/tag-transcription.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Transcription\"}]]}]\n45:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/image-editing\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 448 512\",\"aria-label\":\"icon\",\"className\":\"shrink-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Image Editing\"}]]}]\n46:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/x-twitter\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/tag-x-social.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"X (Twitter)\"}]]}]\n47:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/rust\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/rust.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Rust\"}]]}]\n48:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/framework\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 448 512\",\"aria-label\":\"icon\",\"className\":\"shrink-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Framework\"}]]}]\n49:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/video-editing\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 448 512\",\"aria-label\":\"icon\",\"className\":\"shrink-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Video Editing\"}]]}]\n4a:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/nextjs\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/nextjs.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Next.js\"}]]}]\n4b:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/python\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/python.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Python\"}]]}]\n4c:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/hosting\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/hosting.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Hosting\"}]]}]\n4d:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/job-change\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/job-change.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Job Change\"}]]}]\n4e:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/typescript\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/typescript.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"TypeScript\"}]]}]\n4f:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/programing\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/programing.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Programing\"}]]}]\n50:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/tauri\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/tauri.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Tauri\"}]]}]\n51:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/desktop-app-develop\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dar
1k:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 448 512\",\"aria-label\":\"icon\",\"className\":\"shrink-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Desktop App Dev\"}]]}]\n52:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/web-app-develop\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 448 512\",\"aria-label\":\"icon\",\"className\":\"shrink-0\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Web App Dev\"}]]}]\n53:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/tools\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/tag-tools.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Tools\"}]]}]\n54:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en/category/individual-development\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"className\":\"inline-flex flex-row items-center gap-x-2 p-3 transition-colors hover:bg-stone-100 dark:hover:bg-stone-800 text-xl\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/individual-development.webp\",\"alt\":\"icon\",\"width\":50,\"height\":50,\"loading\":\"lazy\",\"className\":\"w-[1.2em] shrink-0 rounded-full\"}],[\"$\",\"span\",null,{\"className\":\"\",\"children\":\"Iline Developer\"}]]}]\n20:[[\"$\",\"header\",null,{\"className\":\"w-full\",\"children\":[[\"$\",\"aside\",null,{\"className\":\"w-full py-2 px-2 bg-primary/80 dark:bg-primary/40 hidden lg:block\",\"children\":[\"$\",\"p\",null,{\"className\":\"w-full sm:max-w-7xl mx-auto text-white text-center text-sm truncate\",\"children\":[\"A technical media by a full stack engineer with low vision.\",[\"$\",\"span\",null,{\"className\":\"hidden xl:inline\",\"children\":[\" / \",\"Cross-platform development with Claude Code\"]}]]}]}],[\"$\",\"div\",null,{\"className\":\"w-full sm:max-w-7xl mx-auto p-5 flex flex-row items-center gap-x-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"shrink-0 flex flex-row gap-x-2\",\"children\":[[\"$\",\"$L55\",null,{\"locale\":\"en\",\"productList\":[{\"url\":\"https://twspace-dl.tools.ryusei.io/\",\"title\":{\"en\":\"X Space Downloader\",\"ja\":\"X Space Downloader\"},\"imageUrl\":\"/api/media/file/twitter-space-downloader.webp\",\"description\":{\"en\":\"This web tool allows you to download published recording archives of X (formerly Twitter) Spaces as \\\"m4a\\\" audio files. You can download X Space recording data to your PC or smartphone for offline permanent storage.\",\"ja\":\"本Webツールは、X(旧Twitter)スペースの公開済み録音アーカイブを、 「m4a」形式の音声ファイルとしてダウンロードできます。Xスペースの録音データをPCやスマホにダウンロードして、 オフラインで永久的な保存が可能です。\"}},{\"url\":\"https://twvideo-dl.tools.ryusei.io/\",\"title\":{\"en\":\"X Video Downloader\",\"ja\":\"X Video Downloader\"},\"imageUrl\":\"/api/media/file/x-video-downloader.webp\",\"description\":{\"en\":\"This tool allows you to easily download videos and live archives from X and save them to your PC or smartphone. Simply enter the URL containing the video to easily download the video data in MP4 format.\",\"ja\":\"このツールは、Xの動画やライブのアーカイブを手軽にダウンロードして、お手持ちのPCやスマホに保存できるようにします。動画のあるURLを入力するだけで簡単にMP4形式で動画データをダウンロードできます。\"}},{\"url\":\"https://transcriber.tools.ryusei.io/\",\"title\":{\"en\":\"Transcriber\",\"ja\":\"Transcriber\"},\"imageUrl\":\"/api/media/file/transcriber_ja.webp\",\"description\":{\"en\":\"Transcribe audio files with high accuracy using only your browser. The audio data never leaves your device, ensuring complete privacy. Also supports speaker separation using Whisper AI.\",\"ja\":\"音声ファイルをブラウザだけで高精度に文字起こし。音声データはデバイスの外に出ないため完全にプライベート。Whisper AI による話者分離にも対応。\"}},{\"url\":\"https://media.tools.ryusei.io/\",\"title\":{\"en\":\"Media Tools\",\"ja\":\"Media Tools\"},\"imageUrl\":\"/api/media/file/media-tools.webp\",\"description\":{\"en\":\"Convert, compress, crop and caption images, audio and video, plus AI upscaling, background removal, face restoration and illustration, all inside your browser. Files are never uploaded; no size limits, no sign-up.\",\"ja\":\"画像・音声・動画の変換・
1圧縮・切り抜き・字幕焼き込みから、AI による高画質化・背景除去・顔復元・イラスト化まで、すべてブラウザの中だけで処理。ファイルは送信されず、サイズ制限も登録も不要。\"}},{\"url\":\"https://games.ryusei.io/\",\"title\":{\"en\":\"Ryusei Games\",\"ja\":\"世界の遊び工房\"},\"imageUrl\":\"/api/media/file/games.webp\",\"description\":{\"en\":\"Play 10 traditional games from around the world, including board games and a number-guessing game, on a 3D board in your browser. Play against the computer or send a link to play with a friend. Free, no sign-up. Available in English, Japanese, Chinese, Spanish, and Korean.\",\"ja\":\"世界の盤ゲームや数当て 10 種を、ブラウザの 3D の盤で遊べます。CPU と対戦するほか、URL を送って友達と対戦できます。無料・登録不要。\"}},{\"url\":\"https://chromewebstore.google.com/detail/google-search-with-duckdu/gagkgkcgcfmbgnapiajgkljenmegdpgm?hl=ja\",\"title\":{\"en\":\"Google Search With DuckDuckGo\",\"ja\":\"Google Search With DuckDuckGo\"},\"imageUrl\":\"/api/media/file/google-search-with-duckduckgo.webp\",\"description\":{\"en\":\"Displays DuckDuckGo search results in addition to Google search results. (Chrome extension)\",\"ja\":\"Google検索での検索結果に加えて、DuckduckGoの検索結果も表示します。(Chrome拡張)\"}}],\"category\":[{\"id\":1,\"name\":{\"en\":\"Programing\",\"ja\":\"プログラミング\"},\"slug\":\"programing\",\"iconUrl\":\"/api/media/file/programing.webp\",\"children\":[{\"id\":2,\"name\":{\"en\":\"Python\",\"ja\":\"Python\"},\"slug\":\"python\",\"iconUrl\":\"/api/media/file/python.webp\",\"children\":[],\"tagsToSelect\":[\"programing\",\"python\"]},{\"id\":3,\"name\":{\"en\":\"TypeScript\",\"ja\":\"TypeScript\"},\"slug\":\"typescript\",\"iconUrl\":\"/api/media/file/typescript.webp\",\"children\":[],\"tagsToSelect\":[\"programing\",\"typescript\"]},{\"id\":4,\"name\":{\"en\":\"Rust\",\"ja\":\"Rust\"},\"slug\":\"rust\",\"iconUrl\":\"/api/media/file/rust.webp\",\"children\":[],\"tagsToSelect\":[\"programing\",\"rust\"]}],\"tagsToSelect\":[\"programing\"]},{\"id\":5,\"name\":{\"en\":\"Framework\",\"ja\":\"フレームワーク\"},\"slug\":\"framework\",\"children\":[{\"id\":6,\"name\":{\"en\":\"Web App Dev\",\"ja\":\"Webアプリ開発\"},\"slug\":\"web-app-develop\",\"children\":[{\"id\":7,\"name\":{\"en\":\"Next.js\",\"ja\":\"Next.js\"},\"slug\":\"nextjs\",\"iconUrl\":\"/api/media/file/nextjs.webp\",\"children\":[],\"tagsToSelect\":[\"framework\",\"web-app-develop\",\"nextjs\"]}],\"tagsToSelect\":[\"framework\",\"web-app-develop\"]},{\"id\":8,\"name\":{\"en\":\"Desktop App Dev\",\"ja\":\"デスクトップアプリ開発\"},\"slug\":\"desktop-app-develop\",\"children\":[{\"id\":9,\"name\":{\"en\":\"Tauri\",\"ja\":\"Tauri\"},\"slug\":\"tauri\",\"iconUrl\":\"/api/media/file/tauri.webp\",\"children\":[],\"tagsToSelect\":[\"framework\",\"desktop-app-develop\",\"tauri\"]}],\"tagsToSelect\":[\"framework\",\"desktop-app-develop\"]}],\"tagsToSelect\":[\"framework\"]},{\"id\":15,\"name\":{\"en\":\"Tools\",\"ja\":\"ツール\"},\"slug\":\"tools\",\"iconUrl\":\"/api/media/file/tag-tools.webp\",\"children\":[{\"id\":13,\"name\":{\"en\":\"Transcription\",\"ja\":\"文字起こし\"},\"slug\":\"transcription\",\"iconUrl\":\"/api/media/file/tag-transcription.webp\",\"children\":[],\"tagsToSelect\":[\"tools\",\"transcription\"]},{\"id\":14,\"name\":{\"en\":\"X (Twitter)\",\"ja\":\"X(Twitter)\"},\"slug\":\"x-twitter\",\"iconUrl\":\"/api/media/file/tag-x-social.webp\",\"children\":[],\"tagsToSelect\":[\"tools\",\"x-twitter\"]}
1,{\"id\":16,\"name\":{\"en\":\"Image Editing\",\"ja\":\"画像編集\"},\"slug\":\"image-editing\",\"children\":[],\"tagsToSelect\":[\"tools\",\"image-editing\"]},{\"id\":17,\"name\":{\"en\":\"Video Editing\",\"ja\":\"動画編集\"},\"slug\":\"video-editing\",\"children\":[],\"tagsToSelect\":[\"tools\",\"video-editing\"]}],\"tagsToSelect\":[\"tools\"]},{\"id\":10,\"name\":{\"en\":\"Iline Developer\",\"ja\":\"個人開発\"},\"slug\":\"individual-development\",\"iconUrl\":\"/api/media/file/individual-development.webp\",\"children\":[],\"tagsToSelect\":[\"individual-development\"]},{\"id\":11,\"name\":{\"en\":\"Hosting\",\"ja\":\"ホスティング\"},\"slug\":\"hosting\",\"iconUrl\":\"/api/media/file/hosting.webp\",\"children\":[],\"tagsToSelect\":[\"hosting\"]},{\"id\":12,\"name\":{\"en\":\"Job Change\",\"ja\":\"転職\"},\"slug\":\"job-change\",\"iconUrl\":\"/api/media/file/job-change.webp\",\"children\":[],\"tagsToSelect\":[\"job-change\"]}]}],\"$L56\"]}],\"$L57\"]}]]}],\"$L58\"]\n59:T518,M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z3d:[\"$\",\"section\",null,{\"className\":\"w-full p-4 rounded-sm bg-stone-100 dark:bg-stone-900\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl mb-4 pb-3 border-b-2 border-dotted border-stone-300 dark:border-stone-700\",\"children\":\"Profile\"}],[\"$\",\"div\",null,{\"className\":\"w-full flex flex-row items-start gap-x-4\",\"children\":[[\"$\",\"$L43\",null,{\"src\":\"/api/media/file/avatar.webp\",\"alt\":\"Profile Picture\",\"width\":100,\"height\":100,\"className\":\"rounded-full\"}],[\"$\",\"div\",null,{\"className\":\"grow flex flex-col\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-2xl font-medium\",\"children\":\"Ryusei\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 w-full flex flex-wrap gap-3\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://github.com/ryusei-48\",\"className\":\"inline-flex flex-row items-center gap-x-1 bg-stone-200 dark:bg-stone-700 p-2 rounded-md\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 496 512\",\"aria-label\":\"icon\",\"className\":\"text-stone-500 dark:text-stone-400\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"$59\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"GitHub\"]}],[\"$\",\"a\",null,{\"href\":\"https://x.com/ryusei__46\",\"className\":\"inline-flex flex-row items-center gap-x-1 bg-stone-200 dark:bg-stone-700 p-2 rounded-md\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 16 16\",\"aria-label\":\"icon\",\"className\":\"text-stone-500 dark:text-stone-400\",\"children\":[\"$undefined\",[[\"$\",\"path\",\"0\",{\"d\":\"M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}],\"Profile\"]}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"w-full mt-6 mb-4\",\"children\":[[\"$\",\"p\",\"0\",{\"className\":\"w-full text-sm text-muted-foreground my-2\",\"children\":\"Despite being visually impaired with one nearly completely blind, he works as a full-stack engineer.\"}],[\"$\",\"p\",\"1\",{\"className\":\"w-full text-sm text-muted-foreground my-2\",\"children\":\"I primarily use TypeScript and Rust for developing web applications and desktop applications.\"}],[\"$\",\"p\",\"2\",{\"className\":\"w-full text-sm text-muted-foreground my-2\",\"children\":\"I also have an interest in AI and machine learning, and am working on projects that utilize these technologies.\"}],\"$L5a\",\"$L5b\"]}],\"$L5c\"]}]\n5f:I[789543,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"ProductListViewToggle\"]\n60:I[853962,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"CategoryViewToggle\"]\n61:I[985502,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"LocaleToggle\"]\n62:I[231129,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"ThemeModeToggle\"]\n65:I[479416,[\"/_next/static/chunks/1fvwqygqlexo7.js\",\"/_next/static/chunks/0ur-o6t7pewci.js\",\"/_next/static/chunks/2v40lipx7f3ld.js\",\"/_next/static/chunks/3sbwsqcslhm5-.js\",\"/_next/static/chunks/077uyb8i0zoq7.js\",\"/_next/static/chunks/1cfccinl3-nwe.js\",\"/_next/static/chunks/39qpm_50mo2u5.js\",\"/_next/static/chunks/301p4tin60qd5.js\"],\"FixedHeader\"]\n56:[\"$\",\"div\",null,{\"className\":\"text-2xl sm:text-3xl font-semibold\",\"children\":\"$L5d\"}]\n57:[\"$\",\"nav\",null,{\"className\":\"grow flex flex-row justify-end\",\"children\":[\"$\",\"ul\",null,{\"className\":\"flex flex-wrap items-center gap-2 sm:gap-3 lg:gap-5\",\"children\":[[\"$\",\"li\",null,{\"className\":\"hidden md:block\",\"children\":\"$L5e\"}],[\"$\",\"li\",null,{\"className\":\"relative hidden md:block\",\"children\":[\"$\",\"$L5f\",null,{\"productList\":\"$20:0:props:children:1:props:children:0:props:children:0:props:productList\",\"locale\":\"en\",\"text\":\"Products\"}]}],[\"$\",\"li\",null,{\"className\":\"relative hidden md:block\",\"children\":[\"$\",\"$L60\",null,{\"category\":\"$20:0:props:children:1:props:children:0:props:children:0:props:category\",\"locale\":\"en\",\"text\":\"Category\"}]}],[\"$\",\"li\",null,{\"className\":\"hidden md:block\",\"children\":[\"$\",\"$L42\",null,{\"text\":\"Contact\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L61\",null,{}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L62\",null,{\"variant\":\"ghost\",\"className\":\"cursor-pointer !px-0 !py-1 size-fit sm:!px-1 sm:!py-1 m-0\"}]}],[\"$\",\"li\",null,{\"className\":\"hidden sm:block\",\"children\":\"$L63\"}],[\"$\",\"li\",null,{\"className\":\"hidden sm:block\",\"children\":\"$L64\"}]]}]}]\n58:[\"$\",\"$L65\",null,{\"categories\":\"$20:0:props:children:1:props:children:0:props:children:0:props:category\",\"productList\":\"$20:0:props:children:1:props:children:0:props:children:0:props:productList\",\"locale\":\"en\",\"wide\":false}]\n5a:[\"$\",\"p\",\"3\",{\"className\":\"w-full text-sm text-muted-foreground my-2\",\"children\":\"Our website publishes technical articles and tutorials, offering content suitable for users ranging from beginners to advanced users.\"}]\n5b:[\"$\",\"p\",\"4\",{\"className\":\"w-full text-sm text-muted-foreground my-2\",\"children\":\"If you have any questions or requests for work, please don't hesitate to contact us.\"}]\n5c:[\"$\",\"div\",null,{\"className\":\"w-full mt-5 flex flex-wrap lg:flex-col items-center justify-center gap-3\",\"children\":[false,[\"$\",\"a\",null,{\"href\":\"https://coconala.com/users/263625\",\"className\":\"inline-flex flex-row items-center gap-x-1 bg-stone-200 dark:bg-stone-700 p-2 rounded-md\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"Work (Coconala)\"}]]}]\n5d:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"children\":\"Ryusei.IO\"}]\n5e:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"/en\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"children\":\"Home\"}]\n66:T518,M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z63:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"https://github.com/ryusei-48\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"target\":\"_blank\",\"className\":\"flex items-center gap-x-2\",\"children\":[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 496 512\",\"aria-label\":\"GitHub Profile\",\"className\":\"text-lg\",\"children\":[[\"$\",\"title\",null,{\"children\":\"GitHub Profile\"}],[[\"$\",\"path\",\"0\",{\"d\":\"$66\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"}
1,\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}]}]\n64:[\"$\",\"$L3f\",null,{\"ref\":\"$undefined\",\"href\":\"https://x.com/ryusei__46\",\"locale\":\"$undefined\",\"localeCookie\":\"$28:props:localeCookie\",\"target\":\"_blank\",\"className\":\"flex items-center gap-x-2\",\"children\":[\"$\",\"svg\",null,{\"stroke\":\"currentColor\",\"fill\":\"currentColor\",\"strokeWidth\":\"0\",\"viewBox\":\"0 0 16 16\",\"aria-label\":\"X Profile\",\"className\":\"text-lg\",\"children\":[[\"$\",\"title\",null,{\"children\":\"X Profile\"}],[[\"$\",\"path\",\"0\",{\"d\":\"M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z\",\"children\":[]}]]],\"style\":{\"color\":\"$undefined\"},\"height\":\"1em\",\"width\":\"1em\",\"xmlns\":\"http://www.w3.org/2000/svg\"}]}]\n"])</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.