Skip to content

Commit

Permalink
refactor: Rename to Multiplex
Browse files Browse the repository at this point in the history
  • Loading branch information
pojntfx committed Aug 26, 2023
1 parent 8eac7d3 commit e809d35
Show file tree
Hide file tree
Showing 23 changed files with 107 additions and 106 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/flatpak.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ jobs:
- uses: actions/checkout@v3
- uses: flatpak/flatpak-github-actions/[email protected]
with:
bundle: com.pojtinger.felicitas.Vintangle.flatpak
manifest-path: com.pojtinger.felicitas.Vintangle.yaml
bundle: com.pojtinger.felicitas.Multiplex.flatpak
manifest-path: com.pojtinger.felicitas.Multiplex.yaml
cache-key: flatpak-builder-${{ github.sha }}
- name: Extract branch name
id: extract_branch
Expand Down
40 changes: 20 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,45 @@
# Vintangle
# Multiplex

![Logo](./docs/logo-readme.png)

Synchronized torrent streaming for distributed watch parties.

[![Flatpak CI](https://github.com/pojntfx/vintangle/actions/workflows/flatpak.yaml/badge.svg)](https://github.com/pojntfx/vintangle/actions/workflows/flatpak.yaml)
[![Flatpak CI](https://github.com/pojntfx/multiplex/actions/workflows/flatpak.yaml/badge.svg)](https://github.com/pojntfx/multiplex/actions/workflows/flatpak.yaml)
![Go Version](https://img.shields.io/badge/go%20version-%3E=1.18-61CFDD.svg)
[![Go Reference](https://pkg.go.dev/badge/github.com/pojntfx/vintangle.svg)](https://pkg.go.dev/github.com/pojntfx/vintangle)
[![Matrix](https://img.shields.io/matrix/vintangle:matrix.org)](https://matrix.to/#/#vintangle:matrix.org?via=matrix.org)
[![Go Reference](https://pkg.go.dev/badge/github.com/pojntfx/multiplex.svg)](https://pkg.go.dev/github.com/pojntfx/multiplex)
[![Matrix](https://img.shields.io/matrix/multiplex:matrix.org)](https://matrix.to/#/#multiplex:matrix.org?via=matrix.org)

## Overview

Vintangle is an app to watch torrents together, providing an experience similar to Apple's [SharePlay](https://support.apple.com/en-us/HT212823) and Amazon's [Prime Video Watch Party](https://www.amazon.com/adlp/watchparty).
Multiplex is an app to watch torrents together, providing an experience similar to Apple's [SharePlay](https://support.apple.com/en-us/HT212823) and Amazon's [Prime Video Watch Party](https://www.amazon.com/adlp/watchparty).

It enables you to ...

- **Stream any torrent**: By utilizing the mpv video player, Vintangle has support for a wide range of video and audio formats.
- **Synchronize playback between remote peers**: Thanks to [weron](https://github.com/pojntfx/weron), Vintangle can be used to host online watch parties by synchronizing playback position, magnet links and other data between peers.
- **Circumvent BitTorrent protocol censorship**: By splitting the core [hTorrent backend](https://github.com/pojntfx/weron) and UI into two separate projects, Vintangle can be used without having to connect a client to the BitTorrent protocol.
- **Stream any torrent**: By utilizing the mpv video player, Multiplex has support for a wide range of video and audio formats.
- **Synchronize playback between remote peers**: Thanks to [weron](https://github.com/pojntfx/weron), Multiplex can be used to host online watch parties by synchronizing playback position, magnet links and other data between peers.
- **Circumvent BitTorrent protocol censorship**: By splitting the core [hTorrent backend](https://github.com/pojntfx/weron) and UI into two separate projects, Multiplex can be used without having to connect a client to the BitTorrent protocol.

## Installation

On Linux, Vintangle is available on Flathub:
On Linux, Multiplex is available on Flathub:

<a href="https://flathub.org/apps/details/com.pojtinger.felicitas.Vintangle"><img src="https://flathub.org/assets/badges/flathub-badge-en.png" alt="Flathub badge" width="200"/></a>
<a href="https://flathub.org/apps/details/com.pojtinger.felicitas.Multiplex"><img src="https://flathub.org/assets/badges/flathub-badge-en.png" alt="Flathub badge" width="200"/></a>

For other platforms, see [contributing](#contributing).

## Usage

### 1. Start Streaming a Torrent

To get started, first find a [magnet link](https://en.wikipedia.org/wiki/Magnet_URI_scheme) that you want to stream. There are many sites on the internet to find them; check out [webtorrent.io/free-torrents](https://webtorrent.io/free-torrents) for some copyright-free torrents to try out. Once you've found one, launch Vintangle and enter the link:
To get started, first find a [magnet link](https://en.wikipedia.org/wiki/Magnet_URI_scheme) that you want to stream. There are many sites on the internet to find them; check out [webtorrent.io/free-torrents](https://webtorrent.io/free-torrents) for some copyright-free torrents to try out. Once you've found one, launch Multiplex and enter the link:

<p align="center">
<img alt="Starting the app" src="./docs/launch-app.png" />
</p>

![Initial start screen with link entered](./docs/link-entered.png)

Note that Vintangle will prompt you to install the [mpv media player](https://mpv.io/) if you don't already have it installed; to continue, please do so:
Note that Multiplex will prompt you to install the [mpv media player](https://mpv.io/) if you don't already have it installed; to continue, please do so:

<p align="center">
<img alt="Prompt to install mpv" src="./docs/install-mpv.png" />
Expand All @@ -65,7 +65,7 @@ After you've given your consent, playback will start, and you can enjoy the medi

## 2. Ask Friends to Join

While consuming media on your own can be fun, doing so with friends or your SO is always better. I built Vintangle to enjoy media together with my partner, but due to COVID and the Atlantic ocean we're unable to do so in person all the time - this app intents to bridge that gap. To ask someone to join, click on the people button in the top right, and copy the [stream code](https://github.com/pojntfx/vintangle/wiki/Stream-Codes):
While consuming media on your own can be fun, doing so with friends or your SO is always better. I built Multiplex to enjoy media together with my partner, but due to COVID and the Atlantic ocean we're unable to do so in person all the time - this app intents to bridge that gap. To ask someone to join, click on the people button in the top right, and copy the [stream code](https://github.com/pojntfx/multiplex/wiki/Stream-Codes):

![Join screen](./docs/join.png)

Expand All @@ -85,17 +85,17 @@ All play/pause events, seeking position etc. will be synchronized between all pe

## 3. Increase Privacy and Security

As noted above, the legality of consuming media from torrents depends on the country you're in. In most countries, following [these guidelines on VPNs from the Electronic Frontier Foundation](https://sec.eff.org/topics/VPN) will suffice, but Vintangle provides an additional option: **Remoting**.
As noted above, the legality of consuming media from torrents depends on the country you're in. In most countries, following [these guidelines on VPNs from the Electronic Frontier Foundation](https://sec.eff.org/topics/VPN) will suffice, but Multiplex provides an additional option: **Remoting**.

Vintangle is built on [hTorrent](https://github.com/pojntfx/htorrent), an HTTP to BitTorrent gateway. Using remoting, it is possible to use a trusted server as a proxy to stream torrents from. This makes it possible to not only increase security for all peers without them having to take the appropriate measures themselves, but it can also increase the performance by caching the media on a single server with a good internet connection. To enable remoting, first [host a hTorrent gateway with basic authentication enabled](https://github.com/pojntfx/htorrent#1-start-a-gateway-with-htorrent-gateway) - be sure to set up TLS certificates to enable encryption, for example by using [Caddy](https://caddyserver.com/). Once you have a gateway set up, you can configure Vintangle to use in its preferences:
Multiplex is built on [hTorrent](https://github.com/pojntfx/htorrent), an HTTP to BitTorrent gateway. Using remoting, it is possible to use a trusted server as a proxy to stream torrents from. This makes it possible to not only increase security for all peers without them having to take the appropriate measures themselves, but it can also increase the performance by caching the media on a single server with a good internet connection. To enable remoting, first [host a hTorrent gateway with basic authentication enabled](https://github.com/pojntfx/htorrent#1-start-a-gateway-with-htorrent-gateway) - be sure to set up TLS certificates to enable encryption, for example by using [Caddy](https://caddyserver.com/). Once you have a gateway set up, you can configure Multiplex to use in its preferences:

![Remoting preferences](./docs/prefs-remoting.png)

Be sure to ask the people who want to stream the media with you to also use the gateway.

For more preferences, see the [screenshots](#screenshots).

🚀 **That's it!** We hope you enjoy using Vintangle.
🚀 **That's it!** We hope you enjoy using Multiplex.

## Screenshots

Expand Down Expand Up @@ -157,17 +157,17 @@ Click on an image to see a larger version.

To contribute, please use the [GitHub flow](https://guides.github.com/introduction/flow/) and follow our [Code of Conduct](./CODE_OF_CONDUCT.md).

To build and start a development version of Vintangle locally, run the following:
To build and start a development version of Multiplex locally, run the following:

```shell
$ git clone https://github.com/pojntfx/vintangle.git
$ cd vintangle
$ git clone https://github.com/pojntfx/multiplex.git
$ cd multiplex
$ go generate ./...
$ go run .
```

## License

Vintangle (c) 2023 Felicitas Pojtinger and contributors
Multiplex (c) 2023 Felicitas Pojtinger and contributors

SPDX-License-Identifier: AGPL-3.0
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=Vintangle
Name=Multiplex
Comment=Synchronized torrent streaming for distributed watch parties.
Exec=vintangle
Icon=com.pojtinger.felicitas.Vintangle
Exec=multiplex
Icon=com.pojtinger.felicitas.Multiplex
Categories=AudioVideo;Video
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>com.pojtinger.felicitas.Vintangle</id>
<name>Vintangle</name>
<id>com.pojtinger.felicitas.Multiplex</id>
<name>Multiplex</name>
<summary>Synchronized torrent streaming for distributed watch parties</summary>

<metadata_license>CC0-1.0</metadata_license>
Expand All @@ -11,59 +11,59 @@
<content_attribute id="social-chat">mild</content_attribute>
</content_rating>

<url type="homepage">https://github.com/pojntfx/vintangle</url>
<url type="bugtracker">https://github.com/pojntfx/vintangle/issues</url>
<url type="help">https://matrix.to/#/#vintangle:matrix.org?via=matrix.org</url>
<url type="homepage">https://github.com/pojntfx/multiplex</url>
<url type="bugtracker">https://github.com/pojntfx/multiplex/issues</url>
<url type="help">https://matrix.to/#/#multiplex:matrix.org?via=matrix.org</url>

<launchable type="desktop-id">com.pojtinger.felicitas.Vintangle.desktop</launchable>
<launchable type="desktop-id">com.pojtinger.felicitas.Multiplex.desktop</launchable>

<provides>
<binary>vintangle</binary>
<binary>multiplex</binary>
</provides>

<description>
<p>Vintangle is an app to watch torrents together, providing an experience similar to Apple&#39;s SharePlay and Amazon&#39;s Prime Video Watch Party.</p>
<p>Multiplex is an app to watch torrents together, providing an experience similar to Apple&#39;s SharePlay and Amazon&#39;s Prime Video Watch Party.</p>
<p>It enables you to ...</p>
<ul>
<li>Stream any torrent: By utilizing the mpv video player, Vintangle has support for a wide range of video and audio formats.</li>
<li>Synchronize playback between remote peers: Thanks to weron, Vintangle can be used to host online watch parties by synchronizing playback position, magnet links and other data between peers.</li>
<li>Circumvent BitTorrent protocol censorship: By splitting the core hTorrent backend and UI into two separate projects, Vintangle can be used without having to connect a client to the BitTorrent protocol.</li>
<li>Stream any torrent: By utilizing the mpv video player, Multiplex has support for a wide range of video and audio formats.</li>
<li>Synchronize playback between remote peers: Thanks to weron, Multiplex can be used to host online watch parties by synchronizing playback position, magnet links and other data between peers.</li>
<li>Circumvent BitTorrent protocol censorship: By splitting the core hTorrent backend and UI into two separate projects, Multiplex can be used without having to connect a client to the BitTorrent protocol.</li>
</ul>
</description>

<screenshots>
<screenshot type="default">
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/sync-playback.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/sync-playback.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/initial.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/initial.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/media-selection.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/media-selection.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/confirmation.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/confirmation.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/playback.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/playback.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/audiotracks.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/audiotracks.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/subtitles.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/subtitles.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/join.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/join.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/prefs-playback.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/prefs-playback.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/prefs-remoting.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/prefs-remoting.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/pojntfx/vintangle/main/docs/prefs-sync.png</image>
<image>https://raw.githubusercontent.com/pojntfx/multiplex/main/docs/prefs-sync.png</image>
</screenshot>
</screenshots>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
app-id: com.pojtinger.felicitas.Vintangle
app-id: com.pojtinger.felicitas.Multiplex
runtime: org.gnome.Platform
runtime-version: "44"
sdk: org.gnome.Sdk
sdk-extensions:
- org.freedesktop.Sdk.Extension.golang
command: vintangle
command: multiplex
finish-args:
- --share=network
- --socket=fallback-x11
Expand Down
Binary file modified docs/logo-dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 7 additions & 7 deletions docs/logo-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/logo-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 9 additions & 8 deletions docs/logo-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/logo-readme.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module github.com/pojntfx/vintangle
module github.com/pojntfx/multiplex

go 1.18

Expand Down
10 changes: 5 additions & 5 deletions internal/components/assistant.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ import (
"github.com/mitchellh/mapstructure"
"github.com/pojntfx/htorrent/pkg/client"
"github.com/pojntfx/htorrent/pkg/server"
"github.com/pojntfx/vintangle/internal/gschema"
"github.com/pojntfx/vintangle/internal/ressources"
api "github.com/pojntfx/vintangle/pkg/api/webrtc/v1"
mpvClient "github.com/pojntfx/vintangle/pkg/client"
"github.com/pojntfx/multiplex/internal/gschema"
"github.com/pojntfx/multiplex/internal/ressources"
api "github.com/pojntfx/multiplex/pkg/api/webrtc/v1"
mpvClient "github.com/pojntfx/multiplex/pkg/client"
"github.com/pojntfx/weron/pkg/wrtcconn"
"github.com/rs/zerolog/log"
)
Expand Down Expand Up @@ -331,7 +331,7 @@ func OpenAssistantWindow(
wu.String(),
streamCodeParts[2],
strings.Split(settings.String(gschema.WeronICEFlag), ","),
[]string{"vintangle/sync"},
[]string{"multiplex/sync"},
&wrtcconn.AdapterConfig{
Timeout: time.Duration(time.Second * time.Duration(settings.Int64(gschema.WeronTimeoutFlag))),
ForceRelay: settings.Boolean(gschema.WeronForceRelayFlag),
Expand Down
Loading

0 comments on commit e809d35

Please sign in to comment.