install go2rtc on bob
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# TP-Link Tapo
|
||||
|
||||
[`new in v1.2.0`](https://github.com/AlexxIT/go2rtc/releases/tag/v1.2.0)
|
||||
|
||||
[TP-Link Tapo](https://www.tapo.com/) proprietary camera protocol with **two-way audio** support.
|
||||
|
||||
- stream quality is the same as [RTSP protocol](https://www.tapo.com/en/faq/34/)
|
||||
- use the **cloud password**, this is not the RTSP password! you do not need to add a login!
|
||||
- you can also use **UPPERCASE** MD5 hash from your cloud password with `admin` username
|
||||
- some new camera firmwares require SHA256 instead of MD5
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
streams:
|
||||
# cloud password without username
|
||||
camera1: tapo://cloud-password@192.168.1.123
|
||||
# admin username and UPPERCASE MD5 cloud-password hash
|
||||
camera2: tapo://admin:UPPERCASE-MD5@192.168.1.123
|
||||
# admin username and UPPERCASE SHA256 cloud-password hash
|
||||
camera3: tapo://admin:UPPERCASE-SHA256@192.168.1.123
|
||||
# VGA stream (the so called substream, the lower resolution one)
|
||||
camera4: tapo://cloud-password@192.168.1.123?subtype=1
|
||||
# HD stream (default)
|
||||
camera5: tapo://cloud-password@192.168.1.123?subtype=0
|
||||
```
|
||||
|
||||
```bash
|
||||
echo -n "cloud password" | md5 | awk '{print toupper($0)}'
|
||||
echo -n "cloud password" | shasum -a 256 | awk '{print toupper($0)}'
|
||||
```
|
||||
|
||||
## TP-Link Kasa
|
||||
|
||||
[`new in v1.7.0`](https://github.com/AlexxIT/go2rtc/releases/tag/v1.7.0)
|
||||
|
||||
> [!NOTE]
|
||||
> This source should be moved to separate module. Because it's source code not related to Tapo.
|
||||
|
||||
[TP-Link Kasa](https://www.kasasmart.com/) non-standard protocol [more info](https://medium.com/@hu3vjeen/reverse-engineering-tp-link-kc100-bac4641bf1cd).
|
||||
|
||||
- `username` - urlsafe email, `alex@gmail.com` -> `alex%40gmail.com`
|
||||
- `password` - base64password, `secret1` -> `c2VjcmV0MQ==`
|
||||
|
||||
```yaml
|
||||
streams:
|
||||
kc401: kasa://username:password@192.168.1.123:19443/https/stream/mixed
|
||||
```
|
||||
|
||||
Tested: KD110, KC200, KC401, KC420WS, EC71.
|
||||
|
||||
## TP-Link Vigi
|
||||
|
||||
[`new in v1.9.8`](https://github.com/AlexxIT/go2rtc/releases/tag/v1.9.8)
|
||||
|
||||
[TP-Link VIGI](https://www.vigi.com/) cameras. These are cameras from a different sub-brand, but the format is very similar to Tapo. Only the authorization is different. Read more [here](https://github.com/AlexxIT/go2rtc/issues/1470).
|
||||
|
||||
```yaml
|
||||
streams:
|
||||
camera1: vigi://admin:{password}@192.168.1.123
|
||||
```
|
||||
@@ -0,0 +1,22 @@
|
||||
package tapo
|
||||
|
||||
import (
|
||||
"github.com/AlexxIT/go2rtc/internal/streams"
|
||||
"github.com/AlexxIT/go2rtc/pkg/core"
|
||||
"github.com/AlexxIT/go2rtc/pkg/kasa"
|
||||
"github.com/AlexxIT/go2rtc/pkg/tapo"
|
||||
)
|
||||
|
||||
func Init() {
|
||||
streams.HandleFunc("kasa", func(source string) (core.Producer, error) {
|
||||
return kasa.Dial(source)
|
||||
})
|
||||
|
||||
streams.HandleFunc("tapo", func(source string) (core.Producer, error) {
|
||||
return tapo.Dial(source)
|
||||
})
|
||||
|
||||
streams.HandleFunc("vigi", func(source string) (core.Producer, error) {
|
||||
return tapo.Dial(source)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user