Skip to content

codercyco/SeedUp

Repository files navigation

SeedUp - Smart Torrent Management V1

Open In Colab


Buy Me A Coffee

🌐 Connect & Stay Updated

Overview

SeedUp is a very powerful Python based tool that combines torrent downloading with Google Drive uploading capabilities. It's designed to work both as a standalone application and in Google Colab environments, making it perfect for managing downloads without using local resources.

Perfect for users who need to download large files through torrents and automatically store them in cloud storage, especially useful in resource-constrained environments like Google Colab's free tier.

Features

  • High-speed torrent downloading using libtorrent
  • Automatic Google Drive upload with seamless authentication
  • Resume capability for interrupted downloads
  • Real-time progress tracking with visual progress bars
  • Smart duplicate detection - skip already uploaded files
  • Flexible input support - both magnet links and .torrent files
  • Google Colab optimized with automatic environment detection
  • Secure authentication handling for Google Drive API
  • Organized uploads with configurable destination folders
  • Command-line interface for advanced users

Installation

For Google Colab (Recommended)

Simply open the SeedUp Colab Notebook and follow the step-by-step guide. No manual installation required!

For Local Installation

  1. Clone the repository:

    git clone https://github.com/codercyco/SeedUp.git
    cd SeedUp
  2. Install dependencies:

    pip install -r requirements.txt
  3. Install libtorrent:

    # Ubuntu/Debian
    sudo apt-get install python3-libtorrent
    
    # macOS
    brew install libtorrent-rasterbar
    
    # Or via pip (may require compilation)
    pip install libtorrent

Quick Start

In Google Colab (Easiest)

  1. Click here to Open SeedUp Colab Notebook
  2. Follow the step-by-step cells
  3. Authentication and setup is handled automatically

Command Line Usage

Download torrent only:

python main.py download -t "magnet:?xt=urn:btih:..."
python main.py download -t movie.torrent

Download and upload to Google Drive:

# Uploads to 'SeedUp Downloads' folder in Drive root (created automatically)
python main.py download -t "magnet:?xt=urn:btih:..." --upload

# Upload to a specific folder (optional)
python main.py download -t "magnet:?xt=urn:btih:..." --upload -f FOLDER_ID

Upload existing files to Google Drive:

# Uploads to 'SeedUp Downloads' folder in Drive root (created automatically)
python main.py upload -p /path/to/folder

# Upload to a specific folder (optional)
python main.py upload -p /path/to/folder -f FOLDER_ID

Check download status:

python main.py status

Clear session:

python main.py clear

Advanced Options

  • --no-resume: Start fresh download (ignore previous session)
  • --no-skip: Force re-upload even if files exist in Drive
  • -d PATH: Custom download destination
  • -f FOLDER_ID: Google Drive folder ID for uploads (optional - defaults to SeedUp Downloads folder in Drive root)

Features

Automatic SeedUp Downloads Folder

  • Auto-creates 'SeedUp Downloads' folder in your Google Drive root directory
  • Smart detection - uses existing folder if already present
  • Optional custom folders - you can still specify a different folder ID if needed
  • All uploads go to SeedUp Downloads folder by default for organized storage

Project Structure

SeedUp/
├── main.py                 # Main CLI entry point
├── torrent_downloader.py   # Torrent downloading logic
├── gdrive_uploader.py      # Google Drive upload functionality
├── config.py               # Configuration and constants
├── requirements.txt        # Python dependencies
├── SeedUp.ipynb            # Google Colab notebook
├── LICENSE                 # Apache License 2.0
└── README.md               # This file

Configuration

Google Drive Setup

No manual setup required! SeedUp automatically:

  1. Creates a 'SeedUp Downloads' folder in your Google Drive root (or uses existing one)
  2. Handles authentication in Google Colab automatically
  3. Uploads all files to the SeedUp Downloads folder by default

Optional: Using a Custom Folder

  1. Get Folder ID:
    • Open Google Drive
    • Navigate to your target folder
    • Copy the folder ID from the URL: https://drive.google.com/drive/folders/FOLDER_ID_HERE
  2. Use with -f flag:
    python main.py download -t "magnet..." --upload -f YOUR_FOLDER_ID

Environment Variables

Key configuration options in config.py:

TORRENT_DOWNLOAD_PATH = "../SeedUp Downloads"  # Default download path
CHUNK_SIZE = 100 * 1024 * 1024                 # 100MB upload chunks
MAX_RETRIES = 3                                # Upload retry attempts
LARGE_FILE_THRESHOLD = 1024 * 1024 * 1024      # 1GB threshold

Use Cases

Perfect for:

  • Anyone: Who needs cloud storage for torrent downloads

Environments:

  • Google Colab (Recommended - zero setup)
  • Local Linux/macOS (With proper dependencies)
  • WSL on Windows (Linux subsystem)
  • Native Windows (libtorrent limitations)

Important Considerations

Legal Compliance

  • Only download content you have legal rights to access
  • Respect copyright and intellectual property laws
  • Be aware of your local regulations regarding torrents
  • This tool is for legitimate use cases only

Google Colab Limitations

  • Runtime Limit: ~12 hours maximum session
  • Disk Space: Limited to ~100GB temporary storage
  • Session Management: May disconnect if idle

Contributing

I welcome contributions!

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

What this means:

  • Commercial Use - You can use this software commercially
  • Modification - You can modify the source code
  • Distribution - You can distribute the software
  • Private Use - You can use it privately
  • Patent Grant - Contributors provide an express grant of patent rights
  • ⚠️ Trademark Use - You cannot use contributors' names, logos, or trademarks
  • ⚠️ Liability - Software is provided "as is" without warranty

Acknowledgments

  • libtorrent team for the excellent torrent library
  • Google for Colab platform and Drive API
  • Python community for amazing ecosystem
  • Open source contributors who make projects like this possible

Links


Made with ❤️ for the community

Created by Ishara Deshapriya

Licensed under Apache License 2.0

About

A python based torrent downloader with Google Drive uploading capabilities for Google Colab.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors