This is a fork of https://github.com/WofWca/video-call-over-email.
A webxdc app for actual video calls over actual email (albeit with 15-second ping (but it may improve soon)) over the recently added real-time P2P webxdc channels.
This is just a prototype.
As was said, this is a webxdc app. It requires a webxdc-supporting messenger to run. Delta Chat is one such messenger.
However, as of 2024-06-21, sending audio/video won't work on unmodified versions of Delta Chat, but this may change in the near future.
Receiving video does work on regular Delta Chat, so you can play around with the app without having to convince your friends to modify their Delta Chat.
Below are instructions on how to modify Delta Chat. But make sure not to launch any webxdc apps that you don't trust on the modified version of Delta Chat as it is insecure. These instructions were tested on Delta Chat 1.46.1.
-
Download Delta Chat Desktop.
-
Find the
DeltaChat/resources/app.asar
file in the app folder. -
Open it as a ZIP file.
-
Open the
tsc-dist/main/deltachat/webxdc.js
file inside the archive. -
Find the line
const permission_handler = (permission) => {
and add a line
return true; // ADDED BY ME
right below it.
-
Save the modified app.asar file.
-
After you're done playing around with this app, make sure to remove the line you added, or simply reinstall Delta Chat.
- Launch Delta Chat.
- Build an
.xdc
file with./create-xdc.sh
, or just download it from the "Releases" section. - Send the
.xdc
file to a chat. - Wait for some other chat members to launch the app.
- Press "Start sending my media"; or just wait for others to send theirs.
Because it's funny.
And it might actually become an actually useful video call app, when:
- the ratelimit gets much better than 1 email per 10 seconds
- webxdc apps can be allowed camera permission
- A way is found to not fill up email servers with audio/video data (maybe something like "ephemeral webxdc messages")
Nope, it's not WebRTC.
- Record
100.03 seconds of your camera stream with aMediaRecorder
. - Serialize the data.
- Send it
over email (withover a real-time P2P channel withwebxdc.sendUpdate()
)realtimeChannel.send()
. - Repeat from step 1.
When we receive data, deserialize it and display it using Media Source Extensions API.
If you just want to see how the app feels, without actually using email, go to https://wofwca.github.io/video-call-over-email/ .