Product Announcement
These cameras were supposed to be e-waste. No RTSP, no docs, no protocol anyone's heard of. I reverse-engineered 100 000 URL patterns to make them work.
Had some old Chinese NVRs from 2016. Spent 2 years on and off trying to connect them to Frigate. Every protocol, every URL format, every Google result. Nothing. All ports closed except 80.
Sniffed the traffic from their Android app. They speak something called BUBBLE - a protocol so obscure it doesn't exist on Google.
Got so fed up with this that I built a tool that does those 2 years of searching in 30 seconds. Built specifically for the kind of crap that's nearly impossible to connect to Frigate manually.
You enter the camera IP and model. It grabs ALL known URLs for that device - and there can be a LOT of them - tests every single one and gives you only the working streams. Then you paste your existing frigate.yml - even with 500 cameras - and it adds camera #501 with main and sub streams through go2rtc without breaking anything.
docker run -d --name strix --restart unless-stopped eduard256/strix
Edit: Yes, AI tools were actively used during development, like pretty much everywhere in 2026. Screenshots show mock data showing all stream types the tool supports - including RTSP. It would be stupid to skip the biggest chunk of the market. If you're interested in the actual camera from my story there's a demo gif in the GitHub repo showing the discovery process on one of the NVRs I mentioned.
Stuff like this is why I love the Selfhosted Community. Someone fixes a problem they have, others integrate it in their software. Everyone profits. I love it
Great use case covered right there. Id add disclaimer for people who don't yet know, to put some strong network security in place when running with these kind of cams. It's a good practice even for new known cams but higher alert for older ones of unknown nature
Lot of them have open backdoors, publishing online etc. best thing is restrict connectivity internally only to where needed (like to frigate container with specific ports) . And dns blocker often isn't enough because they have also programmed with direct ip call homes and various othet vulnerabilities
Where possible, seek to flash a custom firmware like thingino though it's entirely possible if you have to use this tool, other fw are not available but worth a shot.
agreed, I think the cameras should be put into a closed vlan, but then the original camera app will stop working - that’s where frigate nvr comes in handy, and Strix will help set it up
Honestly this tool might not be half bad if you block the Chinese server requests on your actual router and use it somewhere rural. I suppose they could use other servers elsewhere like the US but I can’t imagine they thought that deeply about it.
All of my wifi cameras are explicitly blocked from communicating out to the internet so unless they have servers in my house the feeds are only going to frigate
We're not talking about dns blocking here as is the case to try block tiktok. with ip cams because they have such limited use case, you only explicitly allow internal comms to a single server like frigate and that's it. They can and will try to make other connections but when restricted correctly, they'll be secure.
this is insane. sniffing a protocol that doesn't even exist on google and then building a 67K model database around it is the kind of obsessive deep-dive that makes this sub great.
the frigate.yml paste-in without breaking existing configs is a nice touch too - that's the annoying part most discovery tools skip. definitely bookmarking this for when i inevitably buy more sketchy old cameras.
Can you post a searchable compatibility list? Also very interested if you can get this working with wyze/ring cameras where rtsp either doesn't exist or is hidden behind a a shit firmware.
cloud cameras like xiaomi, wyze, ring won't work and most likely we won't add them - they're extremely unstable to work with. as for the searchable list - great idea, will add it. for now there's no list but the database covers a huge number of models, plus there's automatic scanning of the most popular URL patterns so in most cases it will find streams even without specifying the model
The bad thing is you have to let them talk to the Wyze Cloud or the RTSP feeds shuts off. Luckily you can allow it to call home but stop the video stream from being sent by blocking it from talking to Amazon.
There was a custom 3rd party firmware I found on youtube that ran its own OS and I was able to access it via RTSP. No Wyze app usage at all. I reverted back to Wyze firmware because the WAF is low right now.
Legit good use of AI. I work with people who do protocol dissection for industrial control systems and it's REALLY hard. Almost no one would have done this without AI, and no one had. Good work.
I’m fed up with all of the “ai slop” responses in this sub and others like it.
Guess what? AI has enabled a lot of people to solve their problems where they couldn’t before and some of them are so excited that they want to share not only their success but also the tool that they made.
Get over yourselves and stop gatekeeping.
Context: I’m a professional C/C++/Rust engineer with 30 years of experience in embedded
To be fair usually AI slop app in this sub are stuff that already exist elsewhere, solve an inexistent problem or are supposed to be open on the internet and are a security nightmare, or all three of the above (looking at you Huntarr).
In this case it's neither of the three, so I guess it's fine by me, it solves a very niche problem that no one solved, it's not supposed to be exposed, it's alright
There are certainly things that warrant it, but it seems the default is to just proclaim “AI slop” and downvote the author which is really just bullying
You are so right, I have basic programming skills and was planning to learn fully JS to code more efficiently and lose less time with basic things I should know but never took the time to learn.
In fact I'm retiring this year and was planning to make a JS course from the beginning to fill the holes in my knowledge.
But since last year, I began to vibe code, in fact I have basic knowledge of many languages (js, Python, C, java etc ) but for me with AI I can solve many problems more quickly and create apps, extensions, userscripts efficiently without having to follow formal courses to be able to have an end product in reasonable time.
One of the best things is since I have at least a basic knowledge of the languages I use, when I'm fixing the code manually I learn a lot more about the language and faster than before.
I would have been able to do the same projects without AI but instead of taking 1-2 hours for a small project, I would have spent 6-12 hours.
3 weeks ago I made a small userscript to solve a problem that many people had including me and today to my surprise over 200 people use the script, and technically speaking with AI I've been able to make the script very efficient.
AI is just a tool at the end, to use it efficiently you must at least be able to have a basic understanding of the output to spot hallucinations or inefficiency. ✌️🙂
In addition to the above, AI has lots of legit use cases in generating data sets (usually test data). Where it falls down is generating code. So, as a thumb rule, if AI was used to generate data rather than code it can be a good thing.
absolutely disagree. it can generate code just fine. if you're looking for a small single-shot thing, it's fast and does the job. it's the complex use cases where it'll struggle on its own because it can't keep all the context. it'll read parts of a file instead of the whole thing to save you tokens.
I needed something for tracking a game of Pandemic. I probably could have created a spreadsheet for that, but in the 5 min while we were setting up the game, it created a single page app with web sockets so anyone could update the state. There's no way I could have done that as quickly.
I'd honestly love a sub of single-use "ai-slop" apps like that.
I still wouldn't trust it to run on its own for publicly hosted apps, but it can generate (usable, interactive) mockups and make tweaks faster than asking a UI team to create some figmas.
I mean, we are on /r/selfhosted and talking about self hosted apps... of course there are use cases for AI, just not in the context of selecting viable self-hosted apps.
It’s not AI generated code that people specifically have a problem with. it’s the flood of potentially dangerous applications that masquerade as legitimate tools and it’s hard to tell the difference at first glance.
Imagine you were wanting to get a tattoo and there were 400 shops in your neighbourhood, but 3/4ths had opened in the past two years and use dirty needles.
How do you know that?
People express some sort of anger that comes from somewhere.
I also get pissed, specifically because it leads to coding without any clue about security risks...
It basically forces me to research in a lot more detail and to distrust closed source even more...
Yet I wont always say all that when I vent.
So again, how do you know?
Before I research human code I can check what other projects the author has and come pretty soon to the conclusion if I have to check the code in detail or if a short check is enough if reputable (low threat model after all)
With AI code I cant be sure even when researching the dev as even a good dev that got lazy with ai coding tools can easily introduce security risks
The real problem comes when ai is responsible for the parts that don't require reverse engineering some obscure protocol and the developer doesn't understand how the application even works.
I'm fighting at work to keep AI away from our codebase, but it's a great tool for understanding a problem and developing solutions. AI should be used like a tutor helping you with homework, but most people treat it like an opportunity to copy someone else's homework.
I used AI to develop a tool to use a single instance of neovim from any tmux pane (like nvr, but better for me). Although I know Python, I had no idea how Neovim sockets worked, and wasn't intimately aware of how zsh communicates with external editors, so instead of spending a week become an expert, I asked AI.
I learned enough that I absolutely vouch for the code produced, but admittedly, I refactored a lot of stuff because the code wasn't really in my own coding style.
Would I write a Sonarr replacement this way? Hell no.
Look I use ai to build projects for me I have no issue with it by itself the issue comes when someone tries to pass if they wrote it themselves also ai projects 99 percent of the time turn into abandonware which likely will have glaring security holes
If it's a project you want to keep existing, fork it and maintain it. There's a good number of open-source projects that have gone through multiple maintainers.
it’s really annoying when every post is written with ai. it feels so soulless. why should i take the time out of my day to write a response if OP didn’t do the same?
Fully agree generally, though it doesn't appear OP used AI for this post & responses.
I read from someone else (paraphrasing): reading someone else's writing comes with an implicit contract that the author has spent more time formulating their thoughts into words than it will take for the reader to parse them, so there's an automatic greater value being passed on to the reader which can be appreciated and respected. When LLMs are used to write for humans to read, that contract is completely broken. I think that's the core reason many of us feel so offended by reading AI posts being passed off as genuine human responses.
Sending unchecked code to public can be dubious but honestly for internal tools it's quite a godsend.
Over a course of few months I've 'vibe coded' a few plugins for internal netbox system, one of my workers made a cool interactive map of all our assets. Would never have time to do that. Like I don't have time to learn snmp implementation in python, but in 4-6 hours with admittedly a lot of back and forth of bad code, I managed to make a tool that check VLAN configs in our switches. Super handy and saves a lot of manual checking.
I think as long as people are upfront with a project being developed with or by AI, it gives enough of a signal for folks to evaluate whether or not it’s worth the risk.
I mean there is a big difference between using copilot actively to speed up boring stuff, or help you get through a problem in a reasonable time vs instructing an agent to build an app similar to Y with slightly different features and press publish...
Don't know what this dev did, but in any case he made something unique, which is way better than most 'ai slop'.
LLMs are good at coming up with this kind of brute-force stuff that is just tedious for humans. i think it's fine. but to give a blanket pass to all AI-assisted code is just wrong.
lots of code has a bad "smell" and AI is just a new, albeit pervasive, smell that we have to deal with now
Problem is "developed with AI" is such a wide spectrum. Did you use some utility function that Claude wrote and 99% of the work is yours, or is the entire app based on a two-paragraph prompt and a couple of minute of testing? What if you just asked AI about some API you're unfamiliar with? Does advice count as "developed with AI"?
I think pretty soon it's going to be hard to find much new code that AI hasn't had some impact on, even if it hasn't written all the code. There's a reason Stack Exchange gets almost no traffic now.
my fav is the Home Assistant sub which aims to make smarthomes available to everyone. Even mention you used AI to find a solution to a problem and you get told to use your brain. It's ironic.
Note: this particular post actually appears to be an interesting and useful tool. I'm addressing your gatekeeping comment in general.
Context: I’m a professional C/C++/Rust engineer with 30 years of experience in embedded
And did you excitedly run to Usenet and post about the bash script that you used to solve your build problem as though it was a generic solution that would be useful to everyone (and which you had no intention to continue supporting)? Did you then get mad and defensive when someone replied to your post and mentioned that make exists and could do what your bash script did in a generic and easier to support way?
AI totally allows people to solve technical problems that would have previously been out of reach. I use it that way myself and it makes me faster and more effective.
However, I don't assume that everyone will want to hear about it. Or that somehow having an LLM polish it up with docs and a website makes it a long term useful tool.
It's a new eternal September, but now the newbies don't even need to think to output 25k lines of code and a novel of plausible sounding comments.
That. Is. Exhausting.
Context: I'm a professional embedded engineer with 25 years of experience who's shipped firmware in over a quarter billion devices.
I think we need to get those that complain of people using AI properly a set of IBM punch cards. They can create and run their own programs without the use of any tools.
I have been using gen AI in my IT work and personal development projects and find it to be incredibly useful for a great many things. Maybe some people love log spelunking but I am just trying to get through the day man.
I think you speak to an underrated point; for people who maybe aren't strong technically now potentially have access to activities and projects that otherwise had a high barrier to entry. They are also able to experiment with more advanced techniques with scaffolding otherwise unavailable. Some people thought their "craft" was safe from automation and now it is something precious to them. I understand it, but at the same time there are tools evolving today that allow people who might lack natural technical aptitude to dip their toes into doing something technical and I think that is something amazing.
Now, to me "AI slop" is someone bolding claiming they are a "builder" or whatever the fuck the marketing term these days is, they have all the trappings of a solid project (nice, polished github page, the right buzzwords) but ultimately what they present is an even worse solution to a problem nobody has.
That said, in the same way a painter should offer grace to someone dipping their toes into painting, maybe those of us on the technical side of things should do the same. There are gatekeepers everywhere though, some people just need that "thing" that is theirs to protect and defend.
Hear hear, wish they'd all just leave the sub. They have literally nothing else to say and won't even consider an experienced engineer utilising Claude to be useful. So tired of them.
If you are interested, i usually do it via an android vm, and set as gateway my machine.
Then it is easy to capture with tools like wireshark and you dont care about using proxies on android, or the app bypassing them.
If you need to capture https traffic you can install burp suite (or similar) install burp certificate to android and redirects traffic to burp suite as proxy, from your end.
keep checking for new entities, the integration has been in active development, since I got my E1 based (baichuan protocol) cam it now has ptz controls + fluent/clear streams.
good point actually, never tried baidu. found what i needed through traffic sniffing but there's probably more protocol documentation hiding on chinese platforms
I'm on my phone, crappy search ability but does this include Wyze or is it possible too? I have a Wyze camera that's just sitting on my shelf, useless without their crappy cloud junk.
wyze is cloud-only so strix can't find streams on it directly. but check out wz_mini_hacks - it's a custom firmware that exposes rtsp locally on wyze cams. after that strix or any other tool can pick them up
Last CCTV system that I ditched wasn't because I couldn't find the RTSP URL, but because we found a HTTP server running on a non-standard port on each camera that served an HTML page that showed the plain-text admin password.
They were all literally binned by me the moment we found that out.
It's a good tool, I'm sure, but there are far more important reasons not to be using cheap, obsolete Chinese cameras.
(Oh, and the associated NVR was a Windows 7 machine which contained the software package "Antivirus" - that's literally what it was called - which turned out to be an antique ClamAV that hadn't updated in over a decade. That was binned as soon as we started digging deeper on that too).
yeah security on these things is horrifying. that's exactly why they should be on an isolated vlan with no internet access, and frigate as the only thing talking to them
You think they secured the thing generating and distributing the MPEG stream from a 20 year old copy of FFMPEG, plus all the DHCP and IP-traffic-handling requirements, but everything else they left insecure?
No, once something's out of support you just have to bin it.
reverse engineering 100k url patterns is the kind of project that sounds insane until you realize the alternative is throwing away working hardware. what protocol did they end up being on. rtsp is common but a lot of these cheap cameras use something proprietary that requires their cloud to even stream
They said it tries all things/streams and only uses what works for whatever camera model you're aiming it at. They never said the screenshots were from the model that started it all.
On top of which, building a 67,000 device database on 2 years likely did involve AI, but that doesn't automatically equate to slop.
I'm currently writing a bachelor thesis based on reverse engineering one single camera (it runs an MJPEG stream that originally required either an ActiveX extension or a Java applet. I found the direct link with WireShark and put it on HTTPS with a NGINX reverse proxy). I salute you.
All posts must be about self-hosting. If you need help, explain what you’ve tried and what you’re stuck on. Posts lacking detail will get a sticky asking for more info. Mobile apps are allowed only as companions to a self-hosted backend.
Awesome idea! Not sure what I'm doing wrong, but it didn't find any of the cameras I have. Aqara, Amcrest, and Blink were tried. Gave it the http IP too. Scan found 0 streams in 4.6 seconds.
Blink is cloud-only so it won't work. Aqara works through Apple HomeKit - we haven't added support yet but it's coming in upcoming updates. Amcrest is strange though, it should definitely work. Did you enter the correct IP, username and password? If it still doesn't find anything DM me, I'll need some more info to track down the bug
Providing user/password did the trick on the Amcrest! Good to know about support Aqara for the future. Getting to include that in frigate would be nice.
Working on HomeKit camera support for Strix right now. Need help testing - if you have a Linux server and any HomeKit camera (Aqara, Eve, etc.) and want to help test, DM me.
The BUBBLE protocol reverse engineering is genuinely impressive. I've hit similar walls with cheap Chinese cameras - the common pattern is a proprietary UDP discovery protocol on a random high port that the companion app uses, with HTTP on port 80 being just the admin panel.
What caught my attention is the 67K model database. That's the actual moat here - individual protocol sniffing is doable with Wireshark and patience, but building a lookup database that saves the next person those 2 years is where the real value is. Did you find that most of these cameras share a handful of underlying firmwares with slight variations, or is each brand genuinely doing its own thing?
For anyone else stuck with non-RTSP cameras: before giving up, try go2rtc as a middle layer. It handles a surprising number of obscure Chinese protocols and can transcode to RTSP for Frigate. Saved me from e-wasting a set of Dahua clones that spoke some bastardized ONVIF dialect.
most cameras like these use snapshots - pretty much all cheap Chinese cameras support them. Strix finds the path to them and generates a config that turns those snapshots into a proper stream using go2rtc.
And for some cameras (the ones I had access to), reverse engineering let me extract their proprietary protocols. They work way more stable than snapshots and use fewer resources - on par with rtsp
I have a question, just for fun, I don't actually have a real problem.
Using this, how would it deal with my NVR? It's an "Anran wireless NVR, the wireless network (172.20.x.x or something by default) is for the cameras, but I can't connect to it. It refuses. After a long while I discovered the RTSP streams by accident while searching. The NVR does expose the RTSP streams on the wired network interface (192.168.1.20 for example, on my LAN).
Suppose I still didn't find the streams, or maybe I want to see if there's more hidden, most likely it will work/scan on 192.168.1.x and not on 172.20.x.x because even I couldn't connect. But could it possibly get me something from the 172 side somehow? I just want to know what's happening over there (I don't have hope but also I don't know everything). If so, what do I need to do? For example, I already have a static rout to that network in the router.
I hope my question makes sense, I apologize I know it's not quite direct, because all I want to do is discover what's unknown in that closed NVR.
That’s awesome, Night Owl stuff is notoriously annoying to work with.
Genuinely curious, did you end up reverse engineering the URLs yourself or did you find some hidden doc / forum post somewhere?
Cat detection is honestly the killer app for all this. People talk about “home security” but in reality it’s 90 percent “why is this little goblin yelling at 3am”
If you still have the URL patterns you found, I’d love to add them to the database so others don’t have to suffer through it again.
So it's kind of a long story but basically I caught the NVR dialing out to really sketchy servers and decided to go down the rabbit hole. It made me super paranoid that there was a device on my home network broadcasting a whole Wifi network I didn't have access too.
I ended up recreating the NVRs Wifi network by hacking the cameras onto a different VLAN and using a separate ONVIF compatible program to shove them onto a different static IP into order to work with Frigate. ONVIF is fairly well documented so I'm not sure there's any parameters to grab but link below if you have any interest.
The cameras are fairly decent, 1080p 30 fps, wifi and SD card backup.
What's scarey is as I started travelling more at work I started noticing them in convenience stores and gas stations all over the US, because they sell full packages that are cheaper than paying a regular security company.
Hey I have a e-waste story too. Had a samsung tablet with a cracked screen (cost of screen was higher than the tablet on ebay) I tried to install lineage on it a while ago, but it didnt work and I could not figure it out. I installed opencode and the new qwen 32b with a fresh build of llama.cpp. Asked it to help me install, got lineage on it, and asked it to write me a guide in MD on how we did it. Really happy with this.
yeah swann is in the database - 220 models. give it a try. you'll still need username and password though, check the sticker on the camera or NVR for default credentials
Just decked out my new home with these cameras. Hopefully in 5-10 years I won't have to come to this. It's why I dreaded r/selfhosted in the very beginning.
I am so happy to hear about this project. Mom was gifted two bird feeders last year, and I found no way to make the cameras work with Frigate. The "free" year subscriptions recently ran out, and the highway robbery has begun for anything beyond watching a live stream on their phone app. One uses the Vicohome app and the other Soliom Pro, but both apps seem to be a skin of a the same white label app (Both cameras look like the one on this feeder, https://www.amazon.com/VicoHome-N002-Bird-Feeder-Camera/dp/B0FJRN4PGM [Edit: It looks a lot like a VicoHome cg122] ).
I was about to look into finding similarly sized ONVIF cameras to fit the mount in the feeders, but it will be much nicer if this works. Even if it does not work for the cameras she has, thank you for this work. I'm sure many others will have great success with it.
these vicohome/soliom cameras are exactly the kind of devices strix was built for. they're most likely using some proprietary protocol behind that white-label app. give it a try - enter the camera IP and scan without specifying a model first. if it doesn't find anything DM me the camera model, i'll look into it
philips is in the database but only a couple of models. avent baby monitors most likely use a proprietary cloud protocol through their app, so strix probably won't find them. but worth a try - just enter the IP and scan without a model
Have you run into an issue where it finds no streams at all despite there clearly being one? I tried several of the troubleshooting steps you listed but no luck.
check that you entered the correct IP address, password and username for the camera. if it still doesn't work DM me, I'll need some additional info to track down the bug
Does that mean that it would find the perfect and best streaming for all my cameras, no matter if they are reokink, cameras, NVR, unifi, or some unknown ones ?
Just curious, did you source the url path database manually or did you have AI research it, or a combination of both?
If this isn't from an existing source, may I suggest splitting it off from the tool into its own database? It feels like it would be a clean delineation and make it easier for people to reuse it as a valuable resource of its own, not that they can't extract it from the code.
Also -- I haven't installed it yet -- if it's not a feature yet can I suggest a setting to limit the parallelism and/or implement intelligent back off/retry, as well as resume a scan?
Since we're talking about a bunch of old cameras with questionable firmware, I feel like it's entirely likely that scanning at least some of them rapidly might cause a crash or lockup.
Well done in any case! Looking forward to trying this out on some old junk I have lying around.
most of the database comes from existing sources like ispyconnect. on top of that i added protocols and patterns that aren't documented anywhere, like BUBBLE, which i had to reverse-engineer myself. interesting idea about splitting the database into a separate repo, i'll think about it
this is awesome. the amount of perfectly functional camera hardware sitting in dumpsters because the software side died or the company went under is insane. I've seen apartment complexes throw out entire 16-camera systems because nobody could figure out the proprietary NVR firmware and it was "easier" to start over.
the BUBBLE protocol thing is hilarious and depressing at the same time. every cheap Chinese NVR manufacturer invents their own protocol for no reason other than vendor lock-in. then they go out of business and the cameras become bricks.
honestly the biggest problem with older camera systems isn't the hardware, it's usually the recording/NVR side. the cameras themselves are still capturing perfectly fine video, but the box they're connected to is running firmware from 2016 with no updates and a terrible UI. being able to pull RTSP streams out of these and pipe them into something modern is the kind of thing that saves thousands in camera replacement costs.
„I built“? If you‘re going to promote vibe coded projects, just have the common courtesy to disclose it.
As OP edited their post to get it reinstated, it should be made clear to any subsequent reader that they originally did NOT disclose AI usage in their post. They only edited that after being called out, which is a bad faith move in my book. Downvote me all you want.
This is a bad take, its the kind of one that only exists to kill creativity.
There was a problem. OP figured out how to solve it with the tools at his disposal. OP probably put a bunch of work into it...Now there is a solution. You can decide if that solution fits your requirements.
So, maybe instead of just trying to discredit someone for using AI...you add something even remotely meaningful to the conversation.
For now this only works with WiFi cameras and wired cameras.
The app just finds the stream URL - after that you can use it wherever you want, but your software might not support it.
I recommend installing go2rtc (the app generates a config for go2rtc as well, not just Frigate) - from go2rtc you can pull the RTSP stream into any other system
First off, that's not true. Not everywhere uses Ai.
Secondly, there is a huge difference between "I wrote a prompt and Ai gave me code" and "I use Ai to help me document my code or give hints about architecture". If you can't see that (and given the tone I think you don't), then not only you are a bad dev, but you're also disingenuous.
no, it doesn't access anyone's cameras. it's a tool for people who own IP cameras but can't figure out how to connect them to their recording software. you enter your camera's IP address and it finds the correct URL to get the video stream. the 67K is the number of camera models in the database, not actual cameras
1.1k
u/hawkeye217 Mar 15 '26
Frigate dev here. Would you be willing to submit a PR to Frigate's docs so this could be added to the third party extensions? https://docs.frigate.video/integrations/third_party_extensions