YouTube is still one of the major points of centralization on the internet, so I’ve been brainstorming ways around the problem.

From the readme:


Torrent-Tube is a set of tools to help decentralize YouTube videos, by moving them to torrents, which can be shared by many people. It includes:

  • A Torrent-Tube search site which searches the Torrents-csv search engine to see if the given YouTube video already exists, and is being seeded.
    • It does this by extracting the YouTube [VIDEO_ID] from a link, which you can also do manually if you like (IE, the text after watch?v=...).
  • A script to download, and create torrent files from YouTube videos, with a uniform naming style and format, taken from TheFrenchGhosty’s YouTube-DL-Scripts.
  • You will need to upload these torrent files yourself to a service (details below), and seed them.

Torrent-Tube Search

In the future, it may be possible to create a browser plugin that checks a video link that you’re currently watching for existing torrents.

Create torrent script

Requirements

Instructions

Copy a YouTube video URL.

# Clone this repo
git clone https://github.com/dessalines/torrent-tube

# Run the script
./create_torrent.sh [YOUTUBE_URL]

The video will download, and is saved in the videos folder. The torrent file is saved in the torrents folder.

Add the torrent to your torrent app, such as qbittorrent.

  • turdas@suppo.fi
    link
    fedilink
    arrow-up
    0
    ·
    23 days ago

    I have no real feedback on your project specifically, but I’ve had this same concern of YouTube eventually probably going away or being totally enshittified and the videos on it becoming effectively lost, so I’ve been archiving a few of my favourite channels using ytdl-sub. It’s a script wrapper for yt-dlp that downloads the videos along with a bunch of metadata.

    Personally I’ve been adding them to my Jellyfin server for now under a separate category (ytdl-sub creates Jellyfin-friendly metadata). Some kind of community archive would of course be best, but there’s many difficulties with that. Most prominently the fact that YouTube isn’t dead or completely enshittified yet, so there’s no driving motivation for the effort. Copyright issues would be the second major problem.

    Creating an individual torrent for every video doesn’t seem like a great solution, because the typical channel has lots of videos, up to thousands. Just between the four channels I’ve archived I have about 2000 video files, which is getting in the realm of torrent clients starting to choke on that many torrents.

    Also these four channels add up to about 500 GB of data, which is why I pretty quickly started having second thoughts about archiving every channel I’m subscribed to. I mostly went with 1080p quality; settling for 720p would probably help a lot in the disk space department.

    • Dessalines@lemmy.mlOP
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      23 days ago

      https://github.com/jmbannon/ytdl-sub

      Nice, seems very similar to TheFrenchGhosty’s scripts that are being used here.

      Creating an individual torrent for every video doesn’t seem like a great solution, because the typical channel has lots of videos, up to thousands.

      It’s def a tradeoff, and you’re correct that we could potentially seed entire channels.

      But seeding single videos is IMO better for a few reasons:

      • Torrent clients won’t have to select a subset of files.
      • Its more future proof (ie you don’t have to make a new torrent after the channel releases a new video)
      • Searching for individual videos is easier, since the torrent name can contain the youtube video_id
      • Seeders won’t have to dedicate massive hd space to entire channels, especially since high quality videos nowadays can already be over 1GB. They just seed the specific videos they think are worth keeping.

      The main problem I foresee, is streamlining the process of creating and uploading torrents, so that people actually do it.

      And a browser plugin could potentially help.