Step by step walk through on creating an automated media center by using XBMC and Torrents.
** Now with updated Python scripting and EventGhost configuration. **
Index
Click any of the sections to jump down to it
Programs you’ll need installed:
(version I used) – (link) – (notes)
3.1.26563 – uTorrent
0.4.1.r1544 – EventGhost (just grab the latest release)
0.9.4.3 – SCRU (download link is on the right)
7.54 – theRenamer
10.1 “Dharma” – XBMC
3.425B Weekly – Media Companion (MC)
I did this under Windows 7, you may have different results on different Windows operating systems. This guide is NOT to be used on any *nix based system, including Mac OS.
I’m going to assume that you have a functioning XBMC setup, either on the same PC or on another PC on your network. I use a dedicated HTPC for XBMC and the media storage, with all the downloading/scraping/sorting getting done a separate PC on my network. Your XBMC needs to have the web interface turned on (System -> Network Settings).
- Username, password, port and web interface can be whatever you want, just remember them.
- Make sure both “Allow programs…” boxes at the bottom are checked.
I’m also going to assume that you understand how uTorrent works and the basic configuration thereof. I will be making some configuration changes, but I’ll hold your hand for that.
Objective and Prep:
Ultimately we want to have our TV shows/movies download for us and then moved into our media libraries with all the file data properly scraped from the internet.
There are 5 sections that we’re going to break that into:
- Setting up uTorrent to download our stuff at the right time and into the right place
- Setting up SCRU to properly unpack our downloaded scene releases.
- Setting up theRenamer to properly rename and move our media
- Setting up MediaCompanion to properly scrape the media info
- Setting up EventGhost to prep our files and tie this all together
- We just need to create a few directories within your completed downloads folder. Specifically “movieproc”, “moviezip” and “TVproc”, “TVzip”. You can call them whatever you want, but be sure you have 4 extra directories within completed downloads folder. I’ll be referring to them with the names that I used. Example of my mine (you’re looking at J:\DL\):
![]() |
The “game”, “movie” and “TV” directories will be created by uTorrent, do not manually create these. See uTorrent section for details. |
uTorrent:
Your existing uTorrent configuration can stay mostly untouched, with the exception of a few things.
We have to configure torrent labeling:
- Open up uTorrent and go to Options -> Preferences ->Advanced -> UI extras
- Edit the “Persistent Labels” text field to contain your labels, separated by ” | ” (no spaces, no quotes) Example:
- Still in Preferences, we want to go to Directories next. There, check the “Append the torrent’s label” box. This will create directories within your completed download directory where finished downloads that were given labels will be kept. They will be created when something finishes downloading and is put in them. Example:
![]() |
If you just can’t wait, feel free to create them manually but be sure they are named the exact same as their corresponding label. |
- Now we must set up our RSS Downloads, which will automatically start downloading the TV shows we specify as soon as they appear online. To do this, you need an RSS Feed. Most torrent sites have an RSS feed, but not all. Each torrent site will have a different feed, but instructions can usually be found through your favorite site’s forums or FAQ. Please go there with questions on how to obtain a feed URL.
- Go to File -> Add RSS Feed…
- Enter the Feed URL. It should look something like this (this URL is for EZTV, a public tracker):
![]() |
Feel free to add a custom alias if you want. |
- Hit OK and then go to Options -> RSS Downloader
- Here we actually specify which shows we want to grab from the feed. Click “Add” to add a show.
- Enter the filter conditions, feed, quality and choose the label from the dropdown box(TV). Be sure to check the “Smart ep. filter” box. Also note the asterisk at the end of the filter. Example:
- That’ll do it for scheduled TV downloads, but for manual downloads and movie downloads we still have to apply the label. This can be set by right clicking on an existing torrent, selecting “Labels” from the context menu and then selecting the appropriate label from the sub-menu. Also, you’re given the chance to apply a label as part of the “Add New Torrent” dialog box that pops up when adding a new torrent.
![]() |
The labeling part of the “Add New Torrent” box |
That about does it for uTorrent. I’ve covered how to set up RSS downloads, and we’ve established labels and told uTorrent to create a directory for each label
SCRU:
The SCRU setup is simple, since all we’ll be using this for is to unpack your TV shows and Movie downloads if they’re compressed at all (rar, zip, 7z, etc.). You should have already created 4 extra directories within your completed downloads folder (as outlined in the “Prep”) section, we’ll be using them here.
- Open SCRU and go to the Settings tab. Set the “Default output directory” to TVProc. Set the rest of the settings tab to look like mine:
- Next, edit the default profile by clicking the “Edit profile” button, highlighted in blue in the above picture. Make those settings look like mine:
theRenamer is simply awesome, and doesn’t involve much configuration. We’ll be using it to rename and move our files. It has two sides, Movies and TV Shows and each need to be configured separately. You switch sides by clicking on the big green “tvshows” or big blue “movies”.
- Open theRenamer. It should be in TV mode by default. Click the “settings” wrench in the top right and make yours look like mine:
- The fetch folder should be set to the same directory we used in the SCRU configuration, mine is TVProc. The archive folder should be where you’re storing all your TV.
- Switch to movies mode and open the settings again. Make yours like mine:
- The fetch folder should be set to movieproc, which was another of those directories we created. The archive folder should be where you’re storing all your movies. Be sure to check “Contains Movies Only”.
- That’s all for theRenamer.
MediaCompanion (MC):
MediaCompanion is, at best, fickle. There are other programs out there that scrape movie and TV data, like Ember Media Manager, but MediaCompanion can be run from the command line and that’s where we need it. There is some configuration, but most of this is personal preference. I highly recommend just messing around with the scraping settings to see what works best for you, I’ll only be covering the mission critical settings here.
I could probably write a book on MediaCompanion configuration, maybe someday I will. I hope this guide helps a bit.
MOVIES:
- Open MediaCompanion. Since there was no installation, you just run the downloaded executable. Select the “Movies” tab in the first row, and then the “Folders” tab in the second row. Click “Add Movie Folder Browser” and navigate to wherever you’re storing your movies. Click OK, and then click “Save & Quick Refresh”. MC will search the folder(s) you specified for media items. Note that it hasn’t scraped anything yet.
- On the second tab row (still in Movies) select “Movie Preferences”. These settings are all optional, except that “Use Folder Names for Scraping” (near the bottom left) MUST be checked. See example:
- Choose “Save Changes” when you’re done.
- On the second tab row (still in Movies) select “Main Browser”. This is where you can view all the movies MC has found. It’s probably a little messy at the moment, but we’ll be cleaning that up a bit.
- Above both tab rows, select the Movies menu. From that menu, select “Batch Rescraper Wizard”. In the wizard, select (at minimum) YEAR and RUNTIME. The rest is optional. Click Start Update and it will run through attempting to find the year and runtime of all the movies in your collection. Just so you know, it searches the IMDB, using the name of the folder the movies are stored in. So you may want to clean up those folder names if they’re messy. Best format looks like this:
- Choose “TV Shows” from the first tab row, and “Folders” from the second.
- Just like we did for movies, select “Browse for Folder” and choose the folder where your TV shows are stored. They should already be stored in this format:
- Choose “TV Preferences” from the second tab row. Make yours look like mine, Save Changes when you’re done:
![]() |
Most of this is admittedly optional. Feel free to play with it. |
- Up above the tab bars, choose “Check Roots for New TV Shows” from the “TV Shows” menu.
- In the second tab bar, still under “TV Shows”, choose Main Browser. You can watch this populate with your shows as MC finds them.
- When it looks like it’s done, right click on any show and choose “Unlock all shows”. This will open each show to scraping.
- Now, go back to the “TV Shows” menu and choose “Search for new episodes”. This will find and scrape each show, season, and episode you possess. May take a bit.
- When that’s done, you’re library is fully prepared for automation, congratulations you’re done with the hard parts.
- Close all theRenamer, MC or SCRU windows. uTorrent can remain open.
- Open EG. Select everything underneath Autostart in the Configuration Tree and delete it.
- Right click Autostart and choose Add Plugin…
- Find the Directory Watcher plugin from the list and hit ok. Set it’s path to your TV downloads folder in your completed downloads directory. This is the directory created by the TV label. Here’s mine:
![]() |
Don’t check the “Watch subdirectories… box in either watcher. |
- Add another Directory Watcher plugin, this time set it’s path to your Movie downloads folder in your completed downloads directory. This is the directory created by the Movie label. Mine is just J:\DL\movie
- Finally, add the XBMC2 plugin and point it at the IP address of your XBMC server, and give it the port before hitting OK.
- Now we want to create a Macro to automate our TV actions for us. Right click Autostart and choose Add Macro…
- It will ask for an action, choose “Wait some time” (use 5.0 seconds) under the EventChost actions
- Rename this macro “TV”
- Right click on the Macro and choose Add Action…
- This time add a Python Script, which will contain:
import os
SubFileTypes = (‘sub’,’srt’,’txt’)
ZipFileTypes = (‘rar’,’zip’,’7z’,’r0′)
DownloadName = ”.join(eg.event.payload)
FileName = os.path.basename(DownloadName)
isFolder = os.path.isdir(DownloadName)
eg.globals.tvzip = ‘J:\\DL\\TVzip\\‘
eg.globals.tvzipdir = eg.globals.tvzip+FileName+’\\’
eg.globals.tvproc = ‘J:\\DL\\TVProc\\’
if isFolder == True:
os.mkdir(eg.globals.tvzipdir)
for root, dirs, files in os.walk(DownloadName):
for f in files:
if f.endswith(ZipFileTypes) or re.search(r’\.r\d+$’, f):
shutil.copy(os.path.join(root,f),eg.globals.tvzipdir)
if f.endswith(SubFileTypes) or f.endswith(MediaFileTypes):
shutil.copy(os.path.join(root,f),eg.globals.tvproc)
elif isFolder == False:
shutil.copy(DownloadName,eg.globals.tvproc)
else:
print ‘I\’m confused!’
-
Please see this pastebin for the proper formatting. DO NOT copy/paste from this post, use the pastebin instead: http://pastebin.com/6eun7X11
- ‘J:\\DL\\TVzip\\’ and J:\\DL\\TVProc\\ should be replaced with the location of your TVzip and TVProc folders (or whatever you called them when they were created). Be sure to use double slashes and keep the single quotes around the outside.
Now, add another action: “Start Application”:
Executable: C:\Program Files\SCRU\scru.exe
Path to scru.exe, may be different on your system.
Command line options: “J:\DL\TVzip” “J:\DL\TVProc”
These paths should be altered to match yours directories.
Be sure to match the other options to my example
Now, add another action: “Start Application”:
Executable: C:\Program Files (x86)\theRenamer\theRenamer.exe
Path to theRenamer.exe, may be different on your system.
Command line options: -fetch
Be sure to match the other options to my example
Now, add another action: “Start Application”:
Executable: C:\MC 3.425b Weekly\mc_com.exe
mc_com.exe is the command line executable for MediaCompanion. It is found in the same directory as the MediaCompanion.exe. The path may be different on your system.
Command line options: -e
Be sure to match the other options to my example
- Now, add another action: “Python Script”
- It should contain:
import os import shutil for root, dirs, files in os.walk(eg.globals.tvzip): for f in files: os.remove(os.path.join(root, f)) for d in dirs: shutil.rmtree(os.path.join(root, d)) for root, dirs, files in os.walk(eg.globals.tvproc): for f in files: os.remove(os.path.join(root, f)) for d in dirs: shutil.rmtree(os.path.join(root, d))
-
Please see this pastebin for the proper formatting. DO NOT copy/paste from this post, use the pastebin instead:http://pastebin.com/TCpDSBVt
- This script acts as a cleaner; it removes all files and folders from the movieproc and moviezip folders.
- This script should be placed immediately after the “Start Program: theRenamer.exe” action.
- Now, add another action: XBMC2 -> Actions -> Media Playing -> Update Video Library
- Place it at the end of the macro, above the disable/enable actions.
- Finally, add an event, with the name of DirectoryWatcher.Created and place it at the beginning of the macro.
- That’s all for the TV macro, the finished product should look something like this (I added waits between each command and I have it play a sound when it starts and a different sound when it finishes):
- Now we want to create a Macro to automate our Movie actions for us. Right click Autostart and choose Add Macro…
- It will ask for an action, choose “Wait some time” (use 5.0 seconds) under the EventChost actions
- Rename this macro “Movie”
- Right click on the Macro and choose Add Action…
- This time add a Python Script, which will contain:
import shutil import os
SubFileTypes = ('sub','srt','txt') ZipFileTypes = ('rar','zip','7z','r0')
MediaFileTypes = ('mkv','avi','mp4','wmv')
DownloadName = ''.join(eg.event.payload)
FileName = os.path.basename(DownloadName) isFolder = os.path.isdir(DownloadName) eg.globals.moviezip = 'J:\\DL\\moviezip\\' eg.globals.moviezipdir = eg.globals.moviezip+FileName+'\\' eg.globals.movieproc = 'J:\\DL\\movieproc\\'
if isFolder == True: os.mkdir(eg.globals.moviezipdir) for root, dirs, files in os.walk(DownloadName): for f in files: if f.endswith(ZipFileTypes) or re.search(r'\.r\d+$', f): shutil.copy(os.path.join(root,f),eg.globals.moviezipdir) if f.endswith(SubFileTypes) or f.endswith(MediaFileTypes): shutil.copy(os.path.join(root,f),eg.globals.movieproc)
elif isFolder == False: shutil.copy(DownloadName,eg.globals.movieproc)
else: print 'I\'m confused!'
-
Please see this pastebin for the proper formatting. DO NOT copy/paste from this post, use the pastebin instead: http://pastebin.com/wdtfW5wg
- ‘J:\\DL\\movieproc\\’ should be replaced with the location of your movieproc folder (or whatever you called it when we created it). Be sure to use double slashes and keep the single quotes around the outside.
- ‘J:\\DL\\moviezip\\’ should be replaced with the location of your moviezip folder (or whatever you called it when we created it). Be sure to use double slashes and keep the single quotes around the outside.
Now, add another action: “Start Application”:
Executable: C:\Program Files\SCRU\scru.exe
Path to scru.exe, may be different on your system.
Command line options: “J:\DL\moviezip” “J:\DL\movieProc”
These paths should be altered to match yours directories.
Be sure to match the other options to my example
Now, add another action: “Start Application”:
Executable: C:\Program Files
(x86)\theRenamer\theRenamer.exe
Path to theRenamer.exe, may be different on your system.
Command line options: -fetchmovie
Be sure to match the other options to my example
Now, add another action: “Start Application”:
Executable: C:\MC 3.425b Weekly\mc_com.exe
mc_com.exe is the command line executable for MediaCompanion. It is found in the same directory as the MediaCompanion.exe. The path may be different on your system.
Command line options: -m
Be sure to match the other options to my example
- Now, add another action: “Python Script”
- It should contain:
-
Please see this pastebin for the proper formatting. DO NOT copy/paste from this post, use the pastebin instead: http://pastebin.com/A3XMSq7k
- This script acts as a cleaner; it removes all files and folders from the movieproc and moviezip folders.
- This script should be placed immediately after the “Start Program: theRenamer.exe” action.
- Now, add another action: XBMC2 -> Actions -> Media Playing -> Update Video Library
- Place it at the end of the macro, above the disable/enable actions.
- Finally, add an event, with the name of DirectoryWatcher2.Created and put it at the top of the macro
- That’s all for the Movie macro, the finished product should look something like this (I added waits between each command and I have it play a sound when it starts and a different sound when it finishes):
Great article! It’s just what I’ve been looking for as I recently bought an Acer Revo 3700 HTPC and can’t wait to get it as automated as it can be. Next up I’m thinking voice commands so I can be truly lazy!
Thanks!
Haha. Let us know how that works out for you! Also, you might want to check out Usenet if Torrents don’t work out for you!
Hi, I am having trouble w/ Python scripts (Both TV & Movie.
I get this message when I try to run either one:
Error compiling script.
Traceback (most recent call last):
IndentationError: unexpected indent (114, line 2)
If I remove the space/indent on line 2 of movie script it changes to this error:
Error compiling script.
Traceback (most recent call last):
IndentationError: unexpected indent (113, line 5)
Here is the Script: (Hopefully it pastes OK)
import shutil
import os
IgnoreFileTypes = ‘txt,nfo,sfv,dat,htm,html’
ZipFileTypes = ‘rar,zip,7z,r0’
FileName = ”.join(eg.event.payload)
FileExtension = FileName[-3:]
isFolder = os.path.isdir(FileName)
DestFolder = ‘R:\\DLs\\movieproc\\’
g, h = os.path.splitext(FileName)
j = os.path.basename(g)
os.mkdir(DestFolder+j+’\\’)
if isFolder == True:
for root, dirs, files in os.walk(FileName):
for f in files:
if ZipFileTypes.find(f[-3:]) != -1:
shutil.copytree(FileName,os.path.join(‘R:\\DLs\\moviezip\\’,os.path.basename(FileName)))
print FileName + ‘ copied.’
elif IgnoreFileTypes.find(f[-3:]) == -1 and ZipFileTypes.find(f[-3:]) == -1:
shutil.copy(root+’\\’+f,DestFolder+j+’\\’)
print DestFolder + j + ‘ copied.’
if isFolder == False and IgnoreFileTypes.find(FileExtension) == -1:
shutil.copy(FileName,’R:\\DLs\\movieproc\\’)
Not sure whats going on. I am using Vista 64bit, if OS matters.
OK that didnt paste right, all the Indents are the same as you example above, every line like yours has a space in front of it. Inside the Python script page the line without indentation have the box to expand/colapse and then theres is a line going down all the ones that are indented.
So it looks right to me.
Hey Squizza,
You mentioned that there’s a space in front of each line? There shouldn’t be. The script should look like this (click the links): image or pastebin
It apparently gets a little messed up when I tried to get it into this guide. I’ll keep an eye out for that in the future. Let me know if the above picture and pastebin help you out.
Hello and Happy Holidays! Thanks for the reply. The pastebin worked fine.
I haven’t tried the TV script yet, but I set it up to look like the movie script since, for the most part, they are the same.
Maybe I will get a chance to try and use it later today. If I have any troubles I will let you know.
Thanks for the support!
Just make sure you remove those spaces from the front, and be sure to post back here if it doesn’t work for whatever reason.
Hello, you mentioned a version on pastebin, do you still have the link to it? I can’t seem to find it and I’m having the same problem you mentioned with the python script and can’t get it to work.
Ignore my last comment, found the pastebin code, still no luck with it though, the error has now changed to the following:
Traceback (most recent call last)
Python script "28", line 6, in :
FileName = ''.join(eg.event.payload)
TypeError:
Any ideas? Cheers
Hmm that script isn’t being triggered properly. It should be triggered when a file is created in that directory, and then it uses that line to extract the file name for use in the rest of the script. Did you set up the Directory Watcher plugins in EventGhost the way I described?
In EventGhost you can save your configuration as an XML, (File -> Save As…). Why don’t you do that and then email it to me at speedreeder@gmail.com? That way I can just import your tree into EventGhost and check the event triggers myself.
@ Rob
I have the exact same issue as you
@ speedreeder
I’ve sent you my script and a screenshot of the error. It would be good if this issue is resolved and the solution posted (if found) in the comments…
I’m working on a response to your email now, I think I’ve figured out the issue.
It looks like your script isn’t being triggered correctly. The line 5 that it’s referencing in the error ( FileName = ”.join(eg.event.payload) ) absolutely relies on the event (DirectoryWatcher.Created) being triggered, because it pulls the file that it’s to operate on from the ‘payload’ of that event. If you just try to run the script (right clicking on it and clicking “execute item”), this error will get thrown because it has no event payload to work with. The best way to test this is to copy a media file into the watched directory and let the macro run it’s course. You can disable pieces of the macro if you don’t want to them to get run by right clicking on them and choosing “Disable”.
I hope this helps anyone else having the problem as well. I am going to tweak the script so that it handles nonzipped files as well, and I’ll replace the version I have above.
Hey Squizza,
You mentioned that there’s a space in front of each line? There shouldn’t be. The script should look like this: image or pastebin
It apparently gets a little messed up when I tried to get it into this guide. I’ll keep an eye out for that in the future. Let me know if the above picture and pastebin help you out.
Hello again,
So having some troubles with the automation portion of this. I guess the main issue is that the process seems to rely greatly on the folder/file structure that gets downloaded/moved into the completed DL folder.
For movies, it works fine as long as what gets put in the completed DL folder is in the form of: Folder containing video file.
The script moves it to movieproc and then it gets renamed and goes to final location.
But I cant get it to run right if I put any other folder/file structure into the completed DL folder.
i.e: folder containing the video file zipped, will get moved to moviezip, but just an empty folder ends up in the movieproc folder.
Also similar issue with the TV side of it. I have tried different folder structures and no matter what I’ve tried the most that will happen is the folder will copy from Completed DL to TVzip and thats it.
Here is what I tried:
Ends up in TVzip but doesn’t go anywhere else:
Folder Containing 1 video file
Folder of Several Folders with 1 video file inside each
Folder containing a zipped folder with video file inside
Folder containing the video file zipped
Does not move from TV folder:
Just the video file
Just video file zipped
Zipped folder with video file inside
So I am assuming there must be a certain way the folder/file must be laid out for this all to work and I am just missing it.
I double checked the SCRU settings and they all match with your guide.
Sorry for being a pain. If you need any other info let me now.
Thanks!
Hey man, I’ll try to help you out tonight. I’m traveling between family events and only have my phone. To start, can you give me an outline of your file structure.
No worries, its the Holidays, so take your time and enjoy them. Reply whenever, your support has been great so dont feel like you have to reply right away. I cant wait.
Folder layout:
These are the folders that completed downloads get moved to:
R:\DLs\movie
R:\DLs\TV
These are the zip and proc folders:
R:\DLs\moviezip
R:\DLs\movieproc
R:\DLs\TVzip
R:\DLs\TVproc
TheRenamer is set to output files to:
R:\Media\Movies
R:\Media\TV
One of the feeds downloads like this:
Folder of TV Show > Folder of TV Show > Actual video file
There is nothing zipped, so I am wondering if that’s the issue with this one.
Most of the movies download like:
Folder > Video File
In this layout movies get processed fine, it just when they get downloaded as a zip file that we get issues. But that is rare for me so its mainly getting the TV side of the process working that would be most important.
Let me know if you need any other info.
Take your time and enjoy the Holidays though.
Did anyone ever figure this out? I’m having the same issue and saw that the thread just died earlier this year. Can someone please tell me how the file structure issue was handled/corrected?
I did this guide but how what do I once I’ve completed the Even Ghost stage? How do I make this start or work?
I dl an episode of Supernatual through the RSS Feed and it ends up in C:\Users\Magnús\Downloads\Torrent Complete\TVShow according to the TV Label but I guess that theRenamer should grab it from the TVproc folder according your guide.
Would be really great to get some assistance from you since I’d really like to make this work 🙂
The macro in Eventghost should be triggered when a file makes its way into your TVShow folder when it’s done downloading. That’s what the DirectoryWatcher.Created event does in EvnetGhost. Check the directory that the DirectoryWatcher.Created event is set to watch.
It is directed to the correct folder the TVShow folder so that doesn’t seem to be the problem. I’m just wondering once I’m done with all the setup in EventGhost, shouldn’t I have to save the file somewhere or press a button to a make it start or something?
I feel like I haven’t made the finishing touch somehow…
You can hit the Save button in EG to save your macro, if that’s what you’re curious about. I usually save mine into the EventGhost directory.
OR:
1. Install FileBot
2. Copy & Paste µTorrent “Run program when torrent finishes” command
3. Done 😉
@see
http://filebot.sourceforge.net/forums/viewtopic.php?f=4&t=5#p802
Hello,
First I want to say that this is a nice and very easy guide to follow. So thank you very much for writing it.
Secondly, I know this guide is a bit old, but I’ll try anyway.
I’ve just set everything up according to your guide, but I am experienceing a minor problem.
When a movie is downloaded to my movie folder, eventghost does everything it should according to your guide, but instead of moving the file to the final folder, it copies the file, so the movie is is not only kept in my my xbmc folder but also my torrent download folder. So I have to manually delete the file everytime it is scraped. Is there any solution to this?
Many regards,
Juice
The movie files are copied over intentionally so that you can continue to seed files for other people in the swarm. If you are on a private tracker (which is desirable) this is very important to keep your ratio up. If you’re leeching on a public tracker and not seeding, therefore not concerned with your ratio – you can edit the appropriate python scripts to move the files. You may need to read up a little on python scripting but essentially you’ll be changing the “shutil.copy” commands to “shutil.move” instead. You may also want to edit the scripts to not delete the files afterward – in case there was an error along the way. You don’t want to have to re-download anything.
honestly, you’re probably better off leaving it be and manually deleting the files from within utorrent. Alternatively, you can install something like belvedere to monitor your download folder and to delete anything that hasn’t been accessed in a few days. Either way, you still will have to delete the .torrent file from within utorrent anyway.
Hi,
I notice a strange problem.
The cleanup script deleted my movieproc, moviezip, tvproc and tvzip folders as well.
Is it something that happened to anyone else perhaps?
Thanks.
One example may be the Kaspersky anti-virus
which is currently featured among the must-download software.
Torrent files, when added into a torrent application, can be distributed among numerous
numbers of people without the need of any major hardware costs and server fees
with a particular individual. And while you cannot customize the past, we have the power to
switch our attitude regarding it, hence how it ultimately affects
us.