Torrenting For Idiots Pt. 1: “Is it like Limewire?”

If you’re like me, you’re a complete moron. I make no attempt to hide the fact that I’m a few marbles short of a full jar. If that sounds like you too, then this guide is for you. Trust me, if a dipshit like me can grasp the concept of torrenting, you can as well.

DISCLAIMER: I do not condone or encourage piracy in any form. This guide simply serves to discuss a method of peer-to-peer networking.

File sharing has taken some pretty interesting turns over the past two decades. I remember seeing fansubbed animes being distributed on physical media during some of the smaller conventions back in the day. Now, anything one could ever want is just a search away. Torrenting took off as an easy-to-use method for sharing files with relatively low bandwidth usage. It also enabled the ability for incredible download speeds and, due to the nature in which it works (multiple peers sharing bits of data), it made it rather difficult to track. This has made torrenting especially popular with the “pirate scene”.

What is a torrent? In vastly oversimplified terms, a torrent is simply a file with a shopping list and an address. It doesn’t contain any actual media within it. Think of it like the table of contents at the front of a book. When you download a torrent and open it with a torrent client, it tells your computer, “Hey, you can find ______, _______, and ______ by going to ______ address.”

To open a .torrent file, you’re going to need a torrent client. There are literally dozens of them, all with their own capabilities, features and limitations. Which client you choose is entirely up to what you’re looking for, but I’d say the most popular clients would be BitTorrent, uTorrent, and qBittorrent. (Images in this guide are from the qBittorrent client.)

The qBittorrent window.

“I’m noticing a lot of unfamiliar terms”, you’re probably thinking to yourself. Don’t worry, we’ll go over all of them now. You should familiarize yourself with them before actually attempting to torrent anything. To help you understand how this all works, I’m going to use what I call the apple orchard analogy.

Bob has an apple orchard. Bob likes to share his apples with others who want to start their own apple orchards. This makes Bob a seed, or someone who has all of the pieces and is actively sharing/uploading. When Bob wants to start sharing with someone else, he puts the apples into equal-sized buckets, to make it easier to share. These are called pieces, and there can be thousands in a single torrent.

Now, Bill contacted Bob and asked for apples to start his own apple orchard. Bob agreed and is now sending Bill apples in buckets. This makes Bill a peer, or someone who actively downloading the content. Once Bill has made his own apple orchard, he stops being a peer; if he decides to also start sharing apples like Bob does, this will make him another Seed.

Cindy comes along and contacts both Bob and Bill, asking them both to share apples so she can have an apple orchard. Both agree and start sending her apples. Because both Bob and Bill are sending apple buckets, they care share the workload and don’t have to distribute as much. Furthermore, Bob decides he can only share 6 buckets a day. This means if Cindy only got apples from Bob, she’d only get 6 buckets maximum per day until she completed her apple orchard. However, because Bill is also sending her apples and he’s able to send 10 buckets a day, Cindy can now feasibly receive 16 buckets of apples per day, greatly speeding up the process. This is one of the advantages of torrenting; by getting pieces of a torrent from multiple different sources, you can feasibly achieve incredible download speeds.

Unfortunately, Cindy isn’t a very nice person. Once she gets the apple orchard she wanted, she cuts all ties with Bob and Bill and doesn’t share her apples with anyone. This makes Cindy a leech, or someone who downloads but does not upload or has extremely poor upload stats. The terms peer and leecher are frequently used interchangeably, but leech has a negative connotation to it. As such, the best practice is to only refer to someone as a leech if they do not share the content after downloading. We’ll talk more about this practice later, but for now, let’s continue.

Bob and Bill have been at the apple orchard game for a while, and they’ve made a few friends who now also have apple orchards. To continue sharing their apples in an efficient manner, all of the apple orchard owners decide to create a directory that anybody can look at and instantly get contact information (think of it like a phone book). This is known as a tracker, and it’s sole purpose is to keep track of who is uploading and who is downloading. It’s very important to note that the tracker only contains IP addresses which your torrent client can connect to; it does not store your actual personal information. Torrent files usually contain multiple trackers attached in order to ensure you can always find a seed.

Another term that I very rarely use is the swarm. The swarm is just a name for all of the seeds for a torrent. Think of it like a swarm of bees. Each bee is a seed, and they all fly together, yada yada yada. There’s not a lot of occasions I’ve found where I’ve wanted to use the term, so I won’t dwell on it.

By now, you have a general idea of how torrents work and the terms the community uses.

In Part 2, we’ll cover how to create, download, and upload a torrent.

Setting Up a Discord Webhook to Automatically Post Free Games

This took me a bit of time to figure out, but I’ve managed to find a way to monitor Reddit’s /r/GameDeals subreddit and automatically post the free games from there to a Discord server. This idea was based on the IFTTT Applet “Mail me free games with Steam keys posted to /r/gamedeals”. Everything included below has been tested personally and works as of the time of this post. If things should change, I will endeavor to keep the information current, but no promises. It is also worth noting that this webhook will pull games that are temporarily free (I.E, games that are offering a free weekend playthrough). There’s no way to accurately pull completely free games only. With that being said, let’s get started.

Part 1 – Creating the webhook

A webhook is basically a lengthy URL that certain applications can use to send and retrieve information without the need for credentials. Obviously, this means that anyone with the webhook can wreak some havok on your server, so be absolutely certain to keep it private! To create the webhook:

  1. Open Discord on your PC. **You can not create a webhook using the mobile site or mobile app.**
  2. Go to your server’s settings.
  3. Click on “Webhooks” in the left-hand menu.
  4. Click on “Create Webhook”.
  5. Enter a name for the bot that will post your free games.
  6. Choose the channel in which the free games will be posted.
  7. Upload an avatar to represent your bot (optional).
  8. Copy the Webhook URL. **DO NOT SHARE THIS WITH ANYONE**
  9. Click “Save”. You have now created your webhook.

Part 2 – Creating the bridge

Now that you’ve created the webhook, you need a way to pull the information from the subreddit and post it to the Discord via that webhook. Thankfully, there’s a website that’s built just for such a job: IFTTT, which stands for ‘If This, Then That’ (a common programming structure). This website allows users to create applets that follow that mentality; IF this (X) condition is met, THEN that (Y) action will happen. You’ll be using this site to create an applet that links Reddit and Discord. To do so:

  1. Create an IFTTT account.
  2. Click the “New Applet” button under your avatar. This should take you to the IFTTT Platform site (platform.ifttt.com).
  3. If this is your first time creating an applet, it’ll ask you to enter information regarding yourself and your company. Simply fill out the information in any way you wish; your applet will be private.
  4. Once you’ve finished with your Platform profile, click on the “Applets” menu option.
  5. Click on the “New Applet” button.
  6. Under the Trigger section, you need to select where you’re pulling the information from. In this case, we’ll be using Reddit, so select “Reddit” as the trigger service.
  7. By selecting Reddit, the options below the trigger should have changed. You now need to select what you want the trigger to do on Reddit. Select “New post from search”.
  8. You should see that there’s a field available below that, and the Field Label should be set to “search for”. Keep the visibility as “Hidden from user”, and in the Value block, enter the following:
    title:'free' 
    title:'steam' 
    subreddit:gamedeals
  9. Your trigger is now set up. You now need to set up the Action, which is where the pulled information is reformatted and posted to the Discord server.
  10. For the Action, you’ll need to select “Webhooks” as the service.
  11. This *should* have already selected the correct option, but if it didn’t, select “Make a web request” below the Webhooks service.
  12. For the Action, keep all Visibility options set to “Hidden from user”.
  13. Under the “URL” Field Label, in the Value block, paste your webhook url (the one you created in Part 1 of this guide).
  14. Under the “Method” Field Label, in the Value block, select “POST”.
  15. Under the “Content Type” Field Label, in the Value block, select “application/json”.
  16. Under the “Body” Field Label, in the Value block, copy/paste the following code:
    {"embeds": [{ "title" : "<<<{{Title}}>>>", "url" : "{{PostURL}}", "image":{ "url": "{{ImageURL}}" } }]}
  17. Name your Applet.
  18. Give a description for your Applet.
  19. Save the Applet. You’ve now successfully bridged the subreddit and your Discord server.

Part 3 – Hitting the switch

So, you’ve created the webhook and the applet that bridges the subreddit and Discord server. The only thing left to do now is turn it on and wait for a new free game to be posted. To turn the applet on:

  1. In the IFTTT Platform, click on the Applets menu option.
  2. View your Private Applets.
  3. Click on the applet you just created.
  4. You should now see a link that says “View on IFTTT”. Click it; this will take you back to the main IFTTT site.
  5. From here, you should see your applet, with a large On/Off toggle switch in the center. Simply toggle it to the “On” position.

That’s all there is to it! You’ve now successfully enabled free games to be posted to your Discord server. It is important to note that you won’t notice it’s effects immediately, as the bridge you created will only pull new entries as their posted; it will not search for old entries of free games. It may be a day or so before you see a free game posted, but if you followed the steps in this guide to the letter, it should work flawlessly. Enjoy!