MCPcopy Index your code
hub / github.com/synctv-org/synctv

github.com/synctv-org/synctv @v0.9.15 sqlite

repository ↗ · DeepWiki ↗ · release v0.9.15 ↗
2,077 symbols 6,736 edges 201 files 92 documented · 4%
README

logo

👫一个可以远程一起看电影/直播的程序🍿

    <a href="https://goreportcard.com/report/github.com/synctv-org/synctv">
        <img src="https://goreportcard.com/badge/github.com/synctv-org/synctv" alt="latest version" />
    </a>
    <a href="https://github.com/synctv-org/synctv/blob/main/LICENSE">
        <img src="https://img.shields.io/github/license/synctv-org/synctv" alt="License" />
    </a>
    <a href="https://github.com/synctv-org/synctv/actions?query=workflow%3Arelease">
        <img src="https://img.shields.io/github/actions/workflow/status/synctv-org/synctv/release.yml?branch=main" alt="Release status" />
    </a>
    <a href="https://github.com/synctv-org/synctv/releases">
        <img src="https://img.shields.io/github/release/synctv-org/synctv" alt="latest version" />
    </a>






    <a href="https://github.com/synctv-org/synctv/releases">
        <img src="https://img.shields.io/github/downloads/synctv-org/synctv/total?color=%239F7AEA&logo=github" alt="Downloads" />
    </a>
    <a href="https://hub.docker.com/r/synctvorg/synctv">
        <img src="https://img.shields.io/docker/pulls/synctvorg/synctv?color=%2348BB78&logo=docker&label=pulls" alt="Downloads" />
    </a>

English | 中文

什么是SyncTV?

SyncTV 是一个允许您远程一起观看电影和直播的程序。它提供了同步观影、直播、聊天等功能。使用 SyncTV,您可以与朋友和家人一起观看视频和直播,无论他们在哪里。

SyncTV 的同步观影功能确保所有观看视频的人都在同一点上。这意味着您可以暂停、快进快退、倍速等操作,其他人也会同步到同一点。

特点

  • [x] 同步观看
  • [x] 视频同步
  • [x] 直播同步
  • [x] 影院模式
  • [x] 聊天
  • [x] 弹幕
  • [x] 代理
  • [x] 视频代理
  • [x] 直播代理
  • [x] 代理缓存
  • [x] 视频解析
  • [x] Alist
  • [x] Bilibili
  • [x] Emby
  • [x] 直播解析
  • [x] 哔哩哔哩
  • [x] WebRTC 在线通话
  • [x] 语音
  • [ ] 视频
  • [ ] 屏幕共享

演示站点

https://demo.synctv.wiki


安装方式

二进制

您可以从发布页面下载最新的二进制文件并手动安装。

一键脚本

您可以使用该脚本来安装和运行 SyncTV。

sudo -v ; curl -fsSL https://raw.githubusercontent.com/synctv-org/synctv/main/script/install.sh | sudo bash -s -- -v latest

Docker

您也可以使用 docker 安装并运行 SyncTV。

docker run -d --name synctv -v /opt/synctv:/root/.synctv -p 8080:8080 synctvorg/synctv

Docker compose

docker-compose.yml

Helm

Helm Install

helm repo add synctv https://docs.synctv.wiki/helm-charts
helm repo update synctv
helm upgrade --install synctv synctv/synctv \
  -n synctv --create-namespace \
  --set ingress.enabled=true \
  --set ingress.className=nginx \
  --set 'ingress.hosts[0].host=<yourdomain.com>' \
  --set 'ingress.hosts[0].secretName=<yourdomain-secretName>'

Helm Upgrade

helm repo update synctv
helm upgrade --install synctv synctv/synctv \
  -n synctv \
  --reuse-values

More Helm Values:helm-values

Helm Uninstall

helm uninstall -n synctv synctv

运行

synctv server 启动服务器

synctv server
# or
synctv server --data-dir ./

每次启动会检测是否有root权限的用户,如果没有则会初始化一个root用户,密码为root,请及时修改用户名密码。

用户注册功能需要启用任意 OAuth2 服务,如 GoogleGithub 等等,具体配置请参考文档

文档

https://docs.synctv.wiki

特别赞助商

贡献者

感谢这些出色的人们:

贡献者

免责声明

  • 这个程序是一个免费且开源的项目。它旨在播放网络上的视频文件,方便多人共同观看视频和学习golang。
  • 在使用时,请遵守相关法律法规,不要滥用。
  • 该程序仅进行客户端播放视频文件/流量转发,不会拦截、存储或篡改任何用户数据。
  • 在使用该程序之前,您应该了解并承担相应的风险,包括但不限于版权纠纷、法律限制等,这与该程序无关。
  • 如果有任何侵权行为,请通过电子邮件与我联系,将及时处理。

讨论

Extension points exported contracts — how you extend this code

Provider (Interface)
(no doc) [20 implementers]
internal/provider/provider.go
Decoder (Interface)
(no doc) [45 implementers]
server/model/decode.go
VendorService (Interface)
(no doc) [6 implementers]
server/handlers/vendors/vendors.go
BoolSetting (Interface)
(no doc) [4 implementers]
internal/settings/bool.go
Message (Interface)
(no doc) [2 implementers]
internal/op/message.go
WebSocketConfig (FuncType)
(no doc)
utils/websocket.go
FormatMailOption (FuncType)
(no doc)
utils/smtp/format.go
MapRefreshFunc0 (FuncType)
(no doc)
internal/cache/cache0.go

Core symbols most depended-on inside this repo

NewAPIErrorResp
called by 419
server/model/api.go
Value
called by 228
internal/model/movie.go
NewAPIErrorStringResp
called by 183
server/model/api.go
Get
called by 121
server/handlers/proxy/cache.go
GetLogger
called by 109
server/middlewares/log.go
NewAPIDataResp
called by 96
server/model/api.go
GetUserEntry
called by 82
server/middlewares/auth.go
Decode
called by 77
server/model/decode.go

Shape

Method 933
Function 825
Struct 248
TypeAlias 30
FuncType 21
Interface 20

Languages

Go100%

Modules by API surface

internal/op/room.go71 symbols
proto/provider/plugin.pb.go69 symbols
proto/message/message.pb.go67 symbols
internal/op/user.go63 symbols
internal/db/user.go48 symbols
internal/db/db.go46 symbols
internal/settings/string.go40 symbols
internal/settings/int64.go40 symbols
internal/settings/floate64.go40 symbols
internal/settings/bool.go39 symbols
internal/model/movie.go36 symbols
utils/utils.go35 symbols

Dependencies from manifests, versioned

cloud.google.com/go/compute/metadatav0.8.4 · 1×
filippo.io/edwards25519v1.1.0 · 1×
github.com/Boostport/mjml-gov0.16.0 · 1×
github.com/andybalholm/brotliv1.2.0 · 1×
github.com/armon/go-metricsv0.4.1 · 1×
github.com/bytedance/gopkgv0.1.3 · 1×
github.com/cavaliergopher/grab/v3v3.0.1 · 1×
github.com/cloudwego/base64xv0.1.6 · 1×

For agents

$ claude mcp add synctv \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact