logo elektroda
logo elektroda
X
logo elektroda

How to access cheap 1$ A9 camera video stream from LAN page (NodeJS)?

p.kaczmarek2  Cool? (+13)
📢 Listen (AI):
A small, round WiFi camera held between fingers, with icons showing HD, wide lens, and multi-platform viewing features.
Here's a step by step guide for accessing video and audio stream data of cheap Chinese X5/A9/etc cameras using the iLnk/iLnkP2P/PPPP protocol. Those cameras can be bought for as low as 1$ and are sometimes battery powered, but they still come in various models.
This demonstration will use a cam-reverse project by David Ventura, which is written in NodeJS. Here's the repository with full readme:
https://github.com/DavidVentura/cam-reverse

First, you need a camera. I bought one here:
Miniature wireless spy camera with a display showing its use in a living room.
The box arrived slightly dent, but camera is still in one piece:
Back side of A9 Mini IP camera packaging with barcode and product information. A box of A9 model HD IP camera with a camera illustration and function icons. Mini Wi-Fi camera set with accessories: USB cable, mounting bracket, Chinese manual, and box.
By the way, my camera is using XF16 chip, you can see details here: https://www.elektroda.com/rtvforum/topic4074636.html
Still, we don't need to open the case now. Just power it via USB.
Then, you need to run cam-reverse with NodeJS. You can build it from source, but I'd recommend to get precompiled CJS file:
A section of a webpage showing downloadable assets, with the bin.cjs file highlighted.
Of course, also install NodeJS if you don't have it yet.
The default command to run the server is very simple:

node dist/bin.cjs http_server

However, this will NOT work in many cases. This is because you may have multiple network interfaces (like VMware adapters), and they will not be checked unless specified. That's why I recommend creating config.yml:

http_server:
  port: 5000

logging:
  level: debug
  use_color: true


# If you are crossing broadcast domains (VLANs) then
# you need to specify all IPs as unicast targets
discovery_ips:
  - 192.168.238.1


Enter your network adapter IP that is in the same network as camera.
For the start, we will just put camera in AP mode and connect to its WiFi:
Wi-Fi network window showing no Internet connection and network name BATA825001CKETR.
Run the app with config specified:

node bin.cjs http_server --config_file <your_config.yml>

This should detect the cam:
HTTP server and IP camera connection logs displayed in a Windows console.
Now you can access the stream:
Close-up of a QR code on a white label with a partially visible border.
A blurry photo of a manual page with visible English text and an unclear image of an electronic device.

Excerpt from a user manual showing Wi-Fi connection instructions in English.
Label reading “DC FAN MOTOR” and “CR Electronics” on a white background.
You can also pair camera with your WiFi:

node dist/bin.cjs pair --ssid <SSID> --password <PASSWORD>

This way you should be able to have multiple cameras in NodeJS page, but I haven't tested that yet.

I've did some initial tests with this project, and it seems to work, however XF16 chip gets warm and I'm not yet sure how to connect it to Home Assistant. I will try to investigate it futher and provide more information in another topic. Let me know if you have any A9 cameras, did you try to access the video stream? Is your camera also getting warm? Stay tuned!

About Author
p.kaczmarek2
p.kaczmarek2 wrote 12307 posts with rating 10196 , helped 582 times. Been with us since 2014 year.

Comments

ferbulous 18 Apr 2025 05:25

Hi, what’s the resolution on these cameras? As for the battery powered ones, can you still get the live feed or does it only send images/video when motion is triggered? Also, how do you export the stream?... [Read more]

gulson 18 Apr 2025 08:22

Interesting. I have such a camcorder, but had to use the Chinese cloud. I didn't know it was possible to capture the video stream. Thanks. [Read more]

eDZio 18 Apr 2025 09:14

After applying this, the camera does not need to have an internet connection? [Read more]

operator5wp 18 Apr 2025 21:10

I have such a camcorder A9 and I have such a strange issue , when the camcorder is powered from usb the recorded image is good when recording is from the battery itself the video contains some transitions... [Read more]

gulson 18 Apr 2025 21:22

I had this when I plugged in the battery power - UPS under USB as a powerbank, as if something was introducing interference. It gets excited very easily. Possibly an inverter of some kind. Exactly,... [Read more]

p.kaczmarek2 19 Apr 2025 11:06

Of course, these solutions do not require a connection to the cloud, as can be seen from the example with the camera in AP mode - after all, it does not have access to the internet then. The application... [Read more]

%}