Synchronized viewing, theater, live streaming, video, long-distance relationship
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
dependabot[bot] f73ce1886e
cargo: bump the cargo-non-breaking group across 1 directory with 15 updates
Bumps the cargo-non-breaking group with 15 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [tower-http](https://github.com/tower-rs/tower-http) | `0.7.0` | `0.7.1` |
| [reqwest](https://github.com/seanmonstar/reqwest) | `0.13.4` | `0.13.5` |
| [redis](https://github.com/redis-rs/redis-rs) | `1.6.0` | `1.7.0` |
| [jsonwebtoken](https://github.com/Keats/jsonwebtoken) | `11.0.0` | `11.1.0` |
| [ammonia](https://github.com/rust-ammonia/ammonia) | `4.1.4` | `4.2.0` |
| [toml](https://github.com/toml-rs/toml) | `1.1.4+spec-1.1.0` | `1.1.6+spec-1.1.0` |
| [indexmap](https://github.com/indexmap-rs/indexmap) | `2.14.1` | `2.14.2` |
| [lru](https://github.com/jeromefroe/lru-rs) | `0.18.3` | `0.18.4` |
| [uuid](https://github.com/uuid-rs/uuid) | `1.26.0` | `1.26.1` |
| [rand](https://github.com/rust-random/rand) | `0.10.2` | `0.10.3` |
| [clap](https://github.com/clap-rs/clap) | `4.6.6` | `4.6.7` |
| [clap_complete](https://github.com/clap-rs/clap) | `4.6.9` | `4.6.11` |
| [tokio-rustls](https://github.com/rustls/tokio-rustls) | `0.26.4` | `0.26.5` |
| [rustls](https://github.com/rustls/rustls) | `0.23.43` | `0.23.45` |
| [ipnet](https://github.com/krisprice/ipnet) | `2.12.1` | `2.12.2` |



Updates `tower-http` from 0.7.0 to 0.7.1
- [Release notes](https://github.com/tower-rs/tower-http/releases)
- [Commits](https://github.com/tower-rs/tower-http/compare/tower-http-0.7.0...tower-http-0.7.1)

Updates `reqwest` from 0.13.4 to 0.13.5
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.13.4...v0.13.5)

Updates `redis` from 1.6.0 to 1.7.0
- [Release notes](https://github.com/redis-rs/redis-rs/releases)
- [Commits](https://github.com/redis-rs/redis-rs/compare/redis-1.6.0...redis-1.7.0)

Updates `jsonwebtoken` from 11.0.0 to 11.1.0
- [Changelog](https://github.com/Keats/jsonwebtoken/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Keats/jsonwebtoken/compare/v11.0.0...v11.1.0)

Updates `ammonia` from 4.1.4 to 4.2.0
- [Release notes](https://github.com/rust-ammonia/ammonia/releases)
- [Changelog](https://github.com/rust-ammonia/ammonia/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-ammonia/ammonia/commits)

Updates `toml` from 1.1.4+spec-1.1.0 to 1.1.6+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml-v1.1.4...toml-v1.1.6)

Updates `indexmap` from 2.14.1 to 2.14.2
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md)
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.14.1...2.14.2)

Updates `lru` from 0.18.3 to 0.18.4
- [Changelog](https://github.com/jeromefroe/lru-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jeromefroe/lru-rs/compare/0.18.3...0.18.4)

Updates `uuid` from 1.26.0 to 1.26.1
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.26.0...v1.26.1)

Updates `rand` from 0.10.2 to 0.10.3
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.10.2...0.10.3)

Updates `clap` from 4.6.6 to 4.6.7
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/main/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.6...clap_complete-v4.6.7)

Updates `clap_complete` from 4.6.9 to 4.6.11
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/main/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.9...clap_complete-v4.6.11)

Updates `tokio-rustls` from 0.26.4 to 0.26.5
- [Release notes](https://github.com/rustls/tokio-rustls/releases)
- [Commits](https://github.com/rustls/tokio-rustls/compare/v/0.26.4...v/0.26.5)

Updates `rustls` from 0.23.43 to 0.23.45
- [Release notes](https://github.com/rustls/rustls/releases)
- [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustls/rustls/compare/v/0.23.43...v/0.23.45)

Updates `ipnet` from 2.12.1 to 2.12.2
- [Release notes](https://github.com/krisprice/ipnet/releases)
- [Changelog](https://github.com/krisprice/ipnet/blob/master/RELEASES.md)
- [Commits](https://github.com/krisprice/ipnet/commits)

---
updated-dependencies:
- dependency-name: tower-http
  dependency-version: 0.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: reqwest
  dependency-version: 0.13.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: redis
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-non-breaking
- dependency-name: jsonwebtoken
  dependency-version: 11.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-non-breaking
- dependency-name: ammonia
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-non-breaking
- dependency-name: toml
  dependency-version: 1.1.6+spec-1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: indexmap
  dependency-version: 2.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: lru
  dependency-version: 0.18.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: uuid
  dependency-version: 1.26.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: rand
  dependency-version: 0.10.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: clap
  dependency-version: 4.6.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: clap_complete
  dependency-version: 4.6.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: tokio-rustls
  dependency-version: 0.26.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: rustls
  dependency-version: 0.23.45
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
- dependency-name: ipnet
  dependency-version: 2.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-non-breaking
...

Signed-off-by: dependabot[bot] <support@github.com>
7 hours ago
.cargo refactor(metrics): centralize registry and lifecycle tracking (#446) 4 weeks ago
.config chore: replace synctv-org backend with SyncTV v1.0.0 2 months ago
.github release: prepare v1.0.4 (#456) 3 weeks ago
.sqlx fix: hydrate image chat events and expose room password state (#472) 2 weeks ago
docs release: prepare v1.0.4 (#456) 3 weeks ago
helm/synctv release: prepare v1.0.4 (#456) 3 weeks ago
migrations feat(admin): add async chat moderation cleanup (#445) 4 weeks ago
scripts refactor(metrics): centralize registry and lifecycle tracking (#446) 4 weeks ago
synctv fix: hydrate image chat events and expose room password state (#472) 2 weeks ago
synctv-adapter feat(livestream): add WebRTC ingest and playback (#454) 3 weeks ago
synctv-api feat(admin): add async chat moderation cleanup (#445) 4 weeks ago
synctv-api-common fix: hydrate image chat events and expose room password state (#472) 2 weeks ago
synctv-api-grpc refactor(metrics): centralize registry and lifecycle tracking (#446) 4 weeks ago
synctv-api-http fix: bilibili dash codec filter (#459) 3 weeks ago
synctv-cluster refactor(metrics): centralize registry and lifecycle tracking (#446) 4 weeks ago
synctv-common feat(livestream): add WebRTC ingest and playback (#454) 3 weeks ago
synctv-core fix: hydrate image chat events and expose room password state (#472) 2 weeks ago
synctv-livestream feat(livestream): add WebRTC ingest and playback (#454) 3 weeks ago
synctv-management fix: hydrate image chat events and expose room password state (#472) 2 weeks ago
synctv-media-providers fix: bilibili dash codec filter (#459) 3 weeks ago
synctv-proto fix: hydrate image chat events and expose room password state (#472) 2 weeks ago
synctv-proto-build feat(web): add client-aware playback and reproducible UI (#433) 1 month ago
synctv-proto-main refactor: remove low-value thin wrappers (#426) 1 month ago
synctv-proto-playback-provider feat(playlist): add browse access controls (#423) 1 month ago
synctv-proto-providers refactor: remove low-value thin wrappers (#426) 1 month ago
synctv-proxy chore: update nightly toolchain and dependencies (#455) 3 weeks ago
synctv-realtime refactor: remove low-value thin wrappers (#426) 1 month ago
synctv-web-ui release: prepare v1.0.4 (#456) 3 weeks ago
synctv-xiu chore: update nightly toolchain and dependencies (#455) 3 weeks ago
.dockerignore feat(web): add client-aware playback and reproducible UI (#433) 1 month ago
.env.postgres.example chore: replace synctv-org backend with SyncTV v1.0.0 2 months ago
.env.redis.example chore: replace synctv-org backend with SyncTV v1.0.0 2 months ago
.env.synctv.example feat(web): support runtime UI assets (#440) 1 month ago
.gitattributes feat: add recoverable resource deletion lifecycle (#394) 2 months ago
.gitignore feat(web): add client-aware playback and reproducible UI (#433) 1 month ago
CONTRIBUTING.md chore: replace synctv-org backend with SyncTV v1.0.0 2 months ago
Cargo.lock cargo: bump the cargo-non-breaking group across 1 directory with 15 updates 7 hours ago
Cargo.toml cargo: bump the cargo-non-breaking group across 1 directory with 15 updates 7 hours ago
Dockerfile refactor(metrics): centralize registry and lifecycle tracking (#446) 4 weeks ago
LICENSE chore: replace synctv-org backend with SyncTV v1.0.0 2 months ago
Makefile refactor(metrics): centralize registry and lifecycle tracking (#446) 4 weeks ago
README.md feat(livestream): add WebRTC ingest and playback (#454) 3 weeks ago
README.zh-CN.md feat(livestream): add WebRTC ingest and playback (#454) 3 weeks ago
SECURITY.md chore: replace synctv-org backend with SyncTV v1.0.0 2 months ago
deny.toml chore: replace synctv-org backend with SyncTV v1.0.0 2 months ago
docker-compose.dev.yml fix(bilibili): restore subtitles and dynamic live danmaku (#415) 1 month ago
docker-compose.yml fix(webrtc): use public STUN by default (#427) 1 month ago
rust-toolchain.toml chore: update nightly toolchain and dependencies (#455) 3 weeks ago
synctv.example.yaml feat(livestream): add WebRTC ingest and playback (#454) 3 weeks ago

README.md

SyncTV

SyncTV

简体中文 · Website

Rust Tokio Axum gRPC PostgreSQL Redis Docker Helm Kubernetes OpenAPI Astro Starlight License

SyncTV is a Rust implementation of a real-time synchronized video watching platform with media provider integration, livestreaming, HTTP/gRPC APIs, and Kubernetes-ready horizontal scaling.

SyncTV synchronized room playback

Highlights

  • Synchronized room playback with real-time state updates.
  • Media providers for Bilibili, Twitch, YouTube, Douyin, TikTok, Huya, Douyu, AcFun, CCTV, Alist, Cloudreve, Emby/Jellyfin, FNOS, QNAP, Synology, Nextcloud, Seafile, TrueNAS, direct URLs, and livestream sources.
  • WHIP and RTMP publishing with WHEP, HLS, and HTTP-FLV playback.
  • External WHEP, RTSP, RTMP, and HTTP-FLV pull with cross-node live relay.
  • HTTP REST, public gRPC, WebSocket, management gRPC, metrics, RTMP, and STUN runtime surfaces.
  • PostgreSQL-backed durable storage with optional Redis shared state, cache, rate limiting, and cluster coordination.
  • Docker Compose and Helm deployment templates.
  • Built-in management CLI and optional OpenAPI/Swagger UI.
  • Astro Starlight documentation site with English and Simplified Chinese content.

Discussion and Contributors

Join the SyncTV Telegram discussion to talk with users and contributors about deployment, operations, media providers, client development, and the product roadmap.

SyncTV contributors

Documentation

Read the complete documentation at docs.syncs.tv.

Download the native client from the client downloads guide or SyncTV App releases. Store builds are distributed through the supported app stores.

License

MIT. See LICENSE.