The brief
A recommendation feed drifts toward whatever you watched last month. The ask was a tool that pushes it back: you type the hashtags you want more of, and the tool spends genuine watch time on them inside your own signed in session, so the platform learns from real behaviour rather than a fake signal.
Architecture
One platform can be driven inside an embedded browser and one cannot, so the app does both.
- Instagram runs in an embedded pane on desktop and a WebView on Android.
- YouTube on desktop is driven through the user's real Chrome over the DevTools protocol, because Google refuses sign in inside an embedded browser and no amount of user agent editing changes that.
- YouTube on Android cannot be driven at all without a PC in the loop, so the app harvests video ids in a WebView, then hands them to real Chrome through a Custom Tab and a temporary playlist URL. It queues the videos and says so. It never claims watches it cannot prove.
The engine above all of this takes a driver interface of exactly two methods, navigate and evaluate, so the embedded path and the real browser path share every line of logic that matters.
Four findings that cost real hours
- Chrome sets the webdriver flag to true merely because a remote debugging port was passed, attached or not, and it stays true after the debugger disconnects. So the window you sign in with can never be the window you drive. Reseed uses two windows on one profile and asks you to close the first, which also flushes the cookie jar.
- Custom Tabs and WebViews do not share cookies. They are separate jars in separate processes, and nothing transfers. Sign in over here, automate over there is simply not a design that exists on Android.
- Search results are client rendered and can take six to nine seconds. Waiting for the result links to appear is correct. Sleeping for a fixed interval is a coin flip.
- A screenshot is not proof a desktop app is usable. The framework will happily capture a window that was never shown to anyone. Visibility is now checked through the operating system instead.
Honest limits
The desktop app is verified end to end, including the whole remote control path: launch, attach, navigate, inject, harvest. Android is verified on an emulator built for the purpose, with two tags searched, twelve videos queued and playing. A signed in run has never been verified by me, because that needs the account holder's password and the app never asks for one.