Ip-webcam.appspot
By default, the URL only works on your local network. To unlock the full potential of ip-webcam.appspot from anywhere in the world, you have two reliable options:
Inside the app, go to Settings > Data Logging and Power > Start on Boot and enable "Video streaming via cloud relay (Google)." The app will generate a public ip-webcam.appspot.com URL that relays traffic through Google’s servers. This is more secure than port forwarding but introduces slight latency.
app.yaml
runtime: python311
entrypoint: gunicorn -b :$PORT main:app
env_variables:
GCS_BUCKET: "ip-webcam-exports"
AUTH_TOKEN: "replace-me"
requirements.txt
Flask==2.3.2
requests==2.31.0
opencv-python-headless==4.7.0.72
google-cloud-storage==2.11.0
gunicorn==20.1.0
main.py
from flask import Flask, Response, request, jsonify, send_file
import requests, io, os, time
from google.cloud import storage
app = Flask(__name__)
GCS_BUCKET = os.getenv("GCS_BUCKET")
CAMERAS = {} # simple in-memory registry for demo
def check_auth():
token = request.headers.get("Authorization","").replace("Bearer ","")
return token == os.getenv("AUTH_TOKEN")
@app.route("/api/v1/cameras", methods=["POST"])
def register_camera():
if not check_auth(): return ("Unauthorized", 401)
data = request.json
cam_id = data.get("id") or str(int(time.time()*1000))
CAMERAS[cam_id] = data
CAMERAS[cam_id].update("last_seen": None)
return jsonify("id": cam_id), 201
@app.route("/camera/<cam_id>/stream")
def proxy_stream(cam_id):
cam = CAMERAS.get(cam_id)
if not cam: return ("Not found", 404)
src = cam["src_url"]
r = requests.get(src, stream=True, timeout=5)
return Response(r.iter_content(chunk_size=1024), content_type=r.headers.get("Content-Type","image/jpeg"))
@app.route("/camera/<cam_id>/snapshot")
def snapshot(cam_id):
cam = CAMERAS.get(cam_id)
if not cam: return ("Not found", 404)
r = requests.get(cam["src_url"], timeout=10)
return Response(r.content, content_type="image/jpeg")
Note: production needs robust error handling, connection pooling, timeouts, and rate limiting.
If you find the app non-functional or want more modern features, consider these options. ip-webcam.appspot
| Alternative | Platform | Key Benefit | | :--- | :--- | :--- | | Alfred Camera | Android & iOS | Cloud recording, night vision emulation, motion zones – more polished UX. | | Home Assistant + Android IP Webcam integration | Open source | Full local control, no cloud dependency, integrates into smart home dashboards. | | DroidCam | Windows/Android | Converts phone into a high-quality PC webcam for Zoom/Teams, not security-focused. |
IP Webcam is a popular Android application that turns your phone into a network video stream. When you run the app, it provides a local IP address (like 192.168.1.5:8080) that you can type into any browser. However, the magic truly happens when you use their dynamic DNS service: ip-webcam.appspot.com. By default, the URL only works on your local network
This service gives you a permanent, custom URL (e.g., yourname.ip-webcam.appspot.com) that bypasses your home’s changing public IP address.