Simple library for interacting with blink cameras, mainly: authentication, listing devices/networks/clips, and downloading clips from local storage
This library was made for my purposes but if you would like to see more features open an issue and I will get to it
Credit to MattTW, who's findings: BlinkMonitorProtocol I used to create this implementation
- authentication
- read networks, cameras, sync modules
- list videos
- download videos
With Go module support, simply add the following import
import "github.com/rekram1-node/blinkgo/blink"
to your code, and then go [build|run|test]
will automatically fetch the necessary dependencies.
Otherwise, run the following to install the blinkgo
library
$ go get -u github.com/rekram1-node/blinkgo/blink
Read the documentation for usage instructions
package main
import (
"fmt"
"log"
"github.com/rekram1-node/blinkgo/blink"
)
func main() {
email := "[email protected]"
password := "PLEASE_DON'T_PLAINTEXT_REAL_PASSWORDS"
// returns account object with: email, password, uuid
// this is required for login and once authenticated, used
// for any blink operations
account := blink.NewAccount(user, pass)
loginResp, err := account.Login()
if err != nil {
log.Fatal(err)
}
// if blink wants a 2FA verification you must use the
// verify pin operation
// 2FA is not always required but it is typically
// required first time on new device
if loginResp.Account.AccountVerificationRequired {
fmt.Print("Enter Pin: ")
var pin string
fmt.Scanln(&pin)
// this returns a verify pin response that you can use
// however, it is unneccessary for this example
if _, err := account.VerifyPin(pin); err != nil {
log.Fatal(err)
}
}
}
I did not discover this myself, this is from blinkpy
The steps for pulling videos from local storage
- Query sync module for information regarding stored clips
- Upload the clips to the cloud
- Download the clips from a cloud URL
Beware the upload/download sequence, there must be a waiting period between the two as the operation is not instantenous
If you have an issue: report it on the issue tracker