gRPC API
gRPC Entry Point
Section titled “gRPC Entry Point”SyncTV public gRPC and HTTP REST share server.port, default 8080.
server.enable_reflection=false by default. Enable reflection temporarily in a test or trusted internal environment to explore services with grpcurl. Use the protobuf files when calling a public instance.
Use grpcurl
Section titled “Use grpcurl”Enable reflection in the deployment configuration, then restart SyncTV:
SYNCTV_SERVER_ENABLE_REFLECTION=trueList services:
grpcurl -plaintext localhost:8080 listgrpcurl -plaintext localhost:8080 list synctv.client.AuthServicePublic client services include synctv.client.AuthService, UserService, RoomService, PublicService, EmailService, NotificationService, OAuth2Service, ProviderCommonService, AlistProviderService, BilibiliProviderService, EmbyProviderService, and RtmpProviderService. The public admin gRPC service is synctv.admin.AdminService. The management gRPC service is a separate endpoint named synctv.management.ManagementService; it is not served on server.port.
Use repository protobuf files without reflection:
grpcurl -plaintext \ -import-path synctv-proto \ -proto proto/client.proto \ localhost:8080 \ synctv.client.AuthService/Login-plaintext is for local development or trusted internal networks only. Production deployments should use TLS at the proxy or client connection layer.
Register Example
Section titled “Register Example”grpcurl -plaintext -d '{ "username": "alice", "email": "[email protected]", "password": "SecurePassword123"}' localhost:8080 synctv.client.AuthService/RegisterLogin Example
Section titled “Login Example”grpcurl -plaintext -d '{ "username": "alice", "password": "SecurePassword123"}' localhost:8080 synctv.client.AuthService/LoginRelationship With OpenAPI
Section titled “Relationship With OpenAPI”OpenAPI documents HTTP APIs only. gRPC debugging uses reflection or protobuf files. See OpenAPI Access for Swagger UI and OpenAPI JSON.