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
Oganneson 940334ee36
refactor(email): Refactor the email sending
Remove SMTP connection pool in favor of direct connections

BREAKING CHANGE: Replace SMTP connection pool with direct connections

The SMTP connection pool has been removed in favor of creating new
connections for each email send operation. This change:

- Removes Pool struct and related code
- Adds new Mailer struct for handling email operations
- Updates all email sending functions to use new Mailer
- Removes pool size configuration
- Simplifies connection management

Rationale:
- SMTP servers often don't handle long-lived connections well
- Connection pool adds complexity without significant benefits
- Direct connections are more reliable for email sending
- Email sending is typically not high-frequency enough to warrant pooling

Migration:
- Replace getSmtpPool() calls with getMailer()
- Update any direct Pool usage to use Mailer instead
10 months ago
.github
cmd
internal
proto
public
script
server
synctv-web@f0866f7851
utils
vendors@6675fec6c2
.gitignore
.gitmodules
Dockerfile
LICENSE
README-CN.md
README.md
SECURITY.md
build.config.sh
go.mod
go.sum
main.go

README.md

logo

👫A program that allows you to watch movies/live broadcasts together remotely🍿


English | 中文

What is SyncTV?

SyncTV is a program that allows you to watch movies and live broadcasts together remotely. It provides features such as synchronized viewing, live streaming, and chat. With SyncTV, you can watch videos and live broadcasts with friends and family, no matter where they are.

SyncTV's synchronized viewing feature ensures that everyone watching the video is at the same point. This means that you can pause, fast forward, rewind, change playback speed, and other operations, and everyone else will be synchronized to the same point.

Features

  • Synchronized viewing
    • Videos Sync
    • Live streaming
  • Theater
    • Chat
    • Bullet chat
  • Proxy
    • Videos proxy
    • Live proxy
    • Proxy cache
  • Parse video
    • Alist
    • Bilibili
    • Emby
  • Parse live
    • Bilibili
  • WebRTC online call
    • Audio
    • Video
    • Screen

Demo

https://demo.synctv.wiki


Installation

Binary

You can download the latest binary from release page and install it manually.

Script

You can use the script to install and run SyncTV.

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

Docker

You can also use docker to install and run SyncTV.

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

Docker compose

docker-compose.yml


Run

synctv server to start the server

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

Every time it starts, it will check for users with root permissions. If none are found, it will initialize a root user with the password root. Please change the username and password promptly.

The user registration function requires the use of any OAuth2 service, such as Google, Github, etc. For specific configuration, please refer to documentation.

Documentation

https://docs.synctv.wiki

Special sponsors

Contributors

Thanks goes to these wonderful people:

Contributors

License

The SyncTV is open-source software licensed under the AGPL-3.0 license.

Disclaimer

  • This program is a free and open-source project. It aims to play video files on the internet, making it convenient for multiple people to watch videos and learn golang together.
  • Please comply with relevant laws and regulations when using it, and do not abuse it.
  • The program only plays video files/forwards traffic on the client-side and will not intercept, store, or tamper with any user data.
  • Before using the program, you should understand and assume the corresponding risks, including but not limited to copyright disputes, legal restrictions, etc., which are not related to the program.
  • If there is any infringement, please contact me via email, and it will be dealt with promptly.

Discussion