Can someone help me with how peertube P2P works? I can understand how ActivityPub is used for all the “social” parts but I’m a bit confused about the actual video player.

Redundancy:
I have my own instance and I made a redundancy of a video from the blender instance. if I watch the video on my instance I see 2 peers, my instance and the blender one. I can seen both in Firefox dev tools.
If I watch the same video on the blender instance I see 7 peers, the blender instance, mine, and others. why are these extra peers not showing on my instance? do I need to do something? If I watch the video on one of these other instances mine does show up in the their peers list.

I also made a video from framatube redundant but my instance doesn’t appear as a peer on framatube.

Client P2P:
If I watch a video does my browser share It over P2P? if so what is the point of this? it seems to lose the video as soon as I leave the page so this functionality seems a bit useless to me.

EDIT: Answered in comments.

BitTorrent:
If I download a video I get the option of a BitTorrent torrent. If I seed this torrent can it be leeched by web clients? I tried and It doesn’t show up in the peer list. What’s the point of running a full BitTorrent tracker if it doesn’t work with the main P2P system?

EDIT: BitTorrent is incompatible with webtorrent that peertube uses. Peertube also uses HLS instead of webtorrent and behaves a bit different (you can’t seed it with a webtorrent client).

Peer discovery:
As I said in 1 and 2 how does the player actually find peers? Is there something like DHT or a tracker built in to peertube? if it’s an internal tracker how does the tracker find peers?

EDIT: It uses a tracker build in to peertube.

Thanks for any help.

  • poVoq@slrpnk.net
    link
    fedilink
    arrow-up
    17
    ·
    edit-2
    1 year ago

    If I watch a video does my browser share It over P2P? if so what is the point of this? it seems to lose the video as soon as I leave the page so this functionality seems a bit useless to me.

    This is the main feature of Peertube. It allows many people to watch the same video simultaneously without totally overwhelming and DDos-ing the server that hosts the video.

    Peertube uses webtorrents: https://webtorrent.io/

    • Thomas@lemmy.douwes.co.ukOP
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      Would it not make more sense if your instance downloaded and redistributed the torrent? then you could keep seeding after the tab closed. it also wouldn’t leak your IP then.
      What about peer discovery? I opened that webtorrent website in two browsers and they didn’t peer, is that demo real?

      • poVoq@slrpnk.net
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        This is about visitors re-seeding the video they watch, but yes like all p2p systems it leaks their IP to other peers.

          • poVoq@slrpnk.net
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            AFAIK it does, but if the instance seeds it then that is no different from hosting the video directly on the website, thus this doesn’t help with bandwidth at all.

            • Thomas@lemmy.douwes.co.ukOP
              link
              fedilink
              arrow-up
              1
              ·
              1 year ago

              why? if 5 instances are seeding the video, clients should be able to download from all 5 instances and spread the bandwidth usage right?

              • poVoq@slrpnk.net
                link
                fedilink
                arrow-up
                3
                ·
                1 year ago

                Other Peertube instance are not hosting the video at all AFAIK. The ActivityPub federation and the webtorrent p2p bandwidth off-load are two fully separate things.

                • Thomas@lemmy.douwes.co.ukOP
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  1 year ago

                  Webtorrent seems to have some issues with peer discovery. I’ve tried the instant.io site they have linked on webtorrent.io and I can’t get it to download or share anything, the desktop client managed to download a torrent from my peertube instance over normal BitTorrent but I can’t share it over webtorrent. I downloaded a video from my peertube instance using btorrent.xyz over webtorrent but I can’t seed new files because the peers don’t find each other. when I use a webtorrent with a tracker (like peertube) it works fine but how were sites like instant.io supposed to discover peers without trackers? I don’t think DHT exists for webtorrent yet.

                  You can manually seed videos on instances using redundancy but I was thinking automatic redundancy for watched videos might be a good idea, I guess you can do automatic redundancy for entire instances but that would take up a lot of storage space.

                  One of the nice thing with BitTorrent is the high reliability so I assumed that was what peertube was trying to do, I guess the idea is not to provide data redundancy but to split load instead?

    • Sean TilleyM
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 year ago

      Only partially true nowadays. WebTorrents is a format that PeerTube can use, but is deprecated and non-default in newer releases. Instead, the preferred method now is HLS, which I think is a fair bit more reliable.

      • poVoq@slrpnk.net
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 year ago

        Hmm, really? That seems to remove the main benefit of Peertube over just hosting a video on any other ActivityPub enabled website.

        Is there an explanation somewhere why they decided to depreciate webtorrents?

    • madeindjs
      link
      fedilink
      arrow-up
      3
      arrow-down
      2
      ·
      1 year ago

      I did think about building a Chrome extension to do this with Youtube. I wonder if it’s possible

  • Sean TilleyM
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    A simple way to understand it: PeerTube itself doesn’t actually federate videos - instead, it’s a shared catalogue where metadata representing video entries are the things that get shared from server to server, as ActivityPub Objects. This makes federation fairly lightweight, because instances aren’t just passing copies of huge files back and forth on a network.

    The actual video itself is hosted on the parent instance, or at the very least, in an Object Storage Layer (basically a CDN) that the server is integrated with. When a video is uploaded, it gets re-encoded in either one or two different formats - Webtorrent, or HLS. When people watch the video, it becomes peered between videos, where people with more of a downloaded video helping people with less of a downloaded video. The methods, I think, depend on which encoding format was used - HLS largely relies on “Playlists” that put together a video broken into several files, for seamless playback, Webtorrent I think works a little more like a traditional torrent does, with seeders.

  • EthicalAI@beehaw.org
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    All good questions! I’d also just like to know what a few of the “best” instances are to watch videos on. I don’t get discovery. They all have weird names.