No updates detected yet. GitHub releases will appear here.
Same End: private, synchronised peer-assisted casting for small groups. Your match. Your mates.
翻訳待ち
Loading the full README.
Read the full README ↗Same End brings a small group of mates into the same private viewing room. One person shares a permitted browser tab from a computer; the others open an invitation to watch and chat. Save a club, plan the next match and add it to your calendar. Send the invitation in your existing WhatsApp group and keep your match-day circle together.
The video travels between participants’ devices. A separate service handles encrypted room state and chat. Private rooms need no account, extension or app installation; the optional public fan forum has its own account and pilot membership. Release builds use resilient version-3 media: independent audio and a 360p default, with optional 480p. The ordinary local build retains version-2 capture for compatibility checks.
Play the latest 81-second film on YouTube · Vimeo · The story behind Same End, with an embedded player
The film shows the live app using an original illustrated match and synthetic narration. It demonstrates sharing, invitations, picture and chat; it does not establish audible source-tab capture, different-home connectivity or full-match reliability. The thumbnail opens the video; GitHub READMEs do not embed a YouTube player.
Viewer page from the demo session; the match is an original illustration.
| For your mates | Under the hood |
|---|---|
| One private invitation for picture and chat | Saved room invitations can follow a restarted share |
| Watch the same delayed programme | A shared baseline gives peers time to receive and forward media |
| A club beyond one match | Saved club access, a match diary, calendar exports and optional reminders |
| Join from a phone, tablet or computer | Standard H.264/AAC with HLS playback; computers host |
| Choose whether to help with analytics | Explicit opt-in for three aggregate activity counters, with no visitor ID |
Same End is an early alpha for private, small-group use. Capture and direct connections depend on your device, network and source. Use material you are entitled to capture and share; an invitation grants no content rights, and Same End does not bypass DRM or service restrictions.
You can invite mates and chat before sharing starts. For a regular group, choose Create your club, save its member invitation and plan a match. Keep the separate organiser link to yourself.
New shares default to a 10-second delay with a short adaptive playback buffer. Longer delays are optional in Room settings & help. The optional match-night mode can choose a 30–120-second common delay from fresh delivery observations, with a five-minute fallback if the evidence is insufficient. A recovering viewer may stay up to 60 seconds further behind for smoother playback. Chat remains immediate, so exact frame alignment is not guaranteed.
User guide · Device check · Rehearsal guide · Troubleshooting
This diagram includes the resilience release. Both publishing workflows use npm run build:resilience; the ordinary local npm run build retains media version 2. SAMEEND_RESILIENT_DELIVERY=1 npm run build also enables version 3 for new shares. Updated clients, including the ordinary version 2 build, can still read version 1/2 invitations; older clients must refresh before opening a version 3 room.
Same End combines standard media formats with a custom live transport over WebRTC data channels. WebTorrent helps introduce peers; an ordinary torrent client cannot play this live transport. The resilience build adds a metadata-only room coordinator and an optional operator-run edge TURN fallback. The selected Mac edge host is supervised and assessed separately; only fresh admissible health enables credentials. The control cloud does not relay media.
flowchart LR
S["Permitted source tab"] --> H["Host computer<br/>Capture + continuous H.264/AAC encoding"]
H --> P["Standard HLS/CMAF<br/>Source-signed envelopes"]
P --> A["Mate A<br/>Verify, buffer, play"]
P --> B["Mate B<br/>Verify, buffer, play"]
A --> C["Mate C<br/>Verify, buffer, play"]
T["Tracker + STUN<br/>Direct-route discovery"] -.-> H
T -.-> A
CO["Room coordinator<br/>Short-lived route and cache metadata"] -.-> A
EDGE["Optional operator edge TURN<br/>Only if configured and healthy"] -.-> H
EDGE -.-> A
R["Control service<br/>Encrypted room state + chat; no media"] <-.-> H
R <-.-> A
This is the beginning of the README. Read the rest at the original. Read the full README ↗