EMEvan Mercerinevanmercer.hashnode.dev·Sep 29 · 4 min readChecking a Downloaded Video's Real Resolution and Orientation with ffprobeWhen you save a clip from social media, the label you picked ("720p", "HD", "1080×1920") and the file you get don't always match what a player shows. ffprobe tells you the truth in one command: the st00
EMEvan Mercerinevanmercer.hashnode.dev·Sep 23 · 4 min readSame problem, different platform: what carried over from an X viewer to a TikTok story viewerA while ago I built Twitter Viewer, a small free tool for reading public X profiles and posts without logging in. Later I noticed the same pattern on TikTok: someone sends a link, the recipient doesn'01T
EMEvan Mercerinevanmercer.hashnode.dev·Sep 21 · 5 min readDesigning around content that expires: three decisions from building a TikTok story viewerMost of the small tools I build deal with content that sits still. A tweet from 2019 is the same tweet today. A TikTok story is not like that: it is gone 24 hours after it was posted, and nothing brin00
EMEvan Mercerinevanmercer.hashnode.dev·Sep 17 · 3 min readThe states nobody designs for in a "paste a link, get a file" toolA "paste a link, get a file" tool looks trivial from the outside — one input, one button, one result. I've found the opposite is true: the harder a tool is to describe, the more the UX rides entirely 00
EMEvan Mercerinevanmercer.hashnode.dev·Aug 14 · 7 min readAfter Nitter: what's left of third-party X front-endsIf you go looking for a working Nitter instance today, you get a confusing answer. Some are gone. Some show you a bot check. A couple work perfectly well. And the flagship instance returns HTTP 200 wi00