Ip-webcam.appspot • Hot


  "id": "front-door",
  "name": "Front Door",
  "src_url": "http://192.168.1.10:8080/video",
  "token": "camera-secret",
  "resolution": "640x480",
  "fps": 10

Place the old phone near a doorway, plug it into a charger, and enable motion detection with email alerts. You can also combine it with Alfred Camera or Home Assistant for a multi-camera setup.

⚠️ The Appspot relay is often broken or rate-limited today. Many users report “Server not found” or timeouts.


The service works by installing a small application or configuring an existing webcam on your device. Once set up, the webcam can stream video to the ip-webcam.appspot.com server, which then allows you to access the live feed remotely through a web interface. This is particularly useful for monitoring your home, office, or any other place where you've set up the webcam. ip-webcam.appspot

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. Place the old phone near a doorway, plug


While ip-webcam.appspot.com offers a convenient way to access your webcam remotely, it's crucial to consider the security implications:

If you find the app non-functional or want more modern features, consider these options. ⚠️ The Appspot relay is often broken or

| 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. |

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>