Skip to main content

rtspfinder

Discover RTSP IP cameras on your local network, try common default credentials, and automatically save configuration when exactly one device is found.

admin:123456 is tried first, followed by a built-in list of common camera usernames and passwords.

Install

From PyPI:

pip install rtspfinder

From source:

pip install .
# optional: better multi-interface subnet detection
pip install rtspfinder[netifaces]

Quick start (auto mode)

With no arguments, rtspfinder:

  1. Uses saved config if present (~/.config/rtspfinder/config.json) and connects to the stream
  2. Otherwise scans the LAN for RTSP (port 554)
  3. If one RTSP host is found, probes paths/credentials, writes config, and opens the stream
  4. If several hosts exist but only one authenticates, still auto-configures and connects

In-terminal video (like ani-cli)

By default, when run from a TTY, video plays inside the terminal using mpv (--vo=kitty, tct, or caca) — same idea as ani-cli’s --no-detach in-terminal mpv.

brew install mpv ffmpeg    # required for TTY video
brew install chafa         # optional ASCII fallback
rtspfinder                 # discover → save → play in TTY
rtspfinder --tty           # force TTY even if auto-detection differs
rtspfinder --gui           # separate window (ffplay/mpv)
rtspfinder

Force a new scan:

rtspfinder --refresh

Print the saved URL for scripts:

rtspfinder --url

Skip auto-connect:

rtspfinder --no-connect

Camera controls (YCC365 Plus / Ginatex HTTP + ONVIF)

Per YCC365 docs: HTTP 80, RTSP 554, ONVIF 80.

Many of these cameras (including Ginatex/TAS-Tech firmware) expose ONVIF PTZ over HTTP without auth — same approach as the PTZ-YCC365 Home Assistant component.

# Discover HTTP/ONVIF endpoints (uses saved config if present)
rtspfinder controls --discover-only --save

# Interactive PTZ in the terminal: w/a/s/d move, x stop, q quit
rtspfinder controls

More commands

Command Description
rtspfinder --discover-only List hosts with port 554 open
rtspfinder --host 192.168.1.100 -v Probe one camera
rtspfinder --show-config Show saved configuration
rtspfinder --no-auto Scan all hosts without auto-save rules
rtspfinder --no-save Discover but do not write config file

Config file permissions are set to 600 where supported.

Python API

from rtspfinder import auto_configure, load_config

result = auto_configure()
if result.configured:
    print(result.config.url)

Security

Only use on networks and devices you own or are authorized to test. Change default camera passwords after setup.

Publish to PyPI

pip install build twine
python -m build
twine check dist/*
twine upload dist/*

Use PyPI API tokens; do not commit credentials.

License

MIT — see LICENSE.

Metadata

Release files for rtspfinder 1.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rtspfinder 1.4.1
File Size Uploaded
rtspfinder-1.4.1.tar.gz 27.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rtspfinder 1.4.1
File Interpreter ABI Platform
rtspfinder-1.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 57.1 kB

Release files / rtspfinder-1.4.1.tar.gz

Download URL rtspfinder-1.4.1.tar.gz
Size 27.7 kB
Tags Source
SHA-256 checksum
How to use checksums
35e509dd95b8f6ba075472fe06348bdf6a261fe76d922d2ef7e0463fa9f7a295
BLAKE2b-256 checksum
How to use checksums
00d219fd799f1e504ce3aef825f708c69f208de8c2314e60f9cc6b2289b9b742
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / rtspfinder-1.4.1-py3-none-any.whl

Download URL rtspfinder-1.4.1-py3-none-any.whl
Size 29.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b3df2e505f00dc36836ce0a29dcc1f502cf435e9ed6a32a4de2931b812cbe7f4
BLAKE2b-256 checksum
How to use checksums
f48de89c52e1e078ea8cf513705d117d3f0b5b69dc6f2e1095b4357eeccf6464
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

1.4.1 This release

2 release files

1.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page