Skip to main content

Unlimited cloud storage using Telegram MTProto. No local DB - everything on Telegram.

Project description

TeleVault

Unlimited cloud storage using Telegram MTProto. No local database — everything lives on Telegram.

Features

  • MTProto Direct — No bot API limits, 2GB file support
  • Zero Local DB — Metadata stored on Telegram itself
  • Client-Side Encryption — AES-256-GCM before upload
  • Smart Chunking — Large files split automatically
  • Parallel Processing — Faster uploads/downloads
  • Folder Support — Preserve directory structure
  • Resume Capability - Continue interrupted transfers
  • TUI + CLI - Beautiful terminal interface

Install

pip install televault

Or from source:

git clone https://github.com/YahyaToubali/televault
cd televault
pip install -e .".

Quick Start

# First time: authenticate with Telegram
televault login

# Upload a file
televault push backup.tar.gz

# Upload a directory
televault push ~/Documents/ -r --no-encrypt

# List files
televault ls

# Download
televault pull backup.tar.gz

# Interactive TUI
televault

How It Works

Your File
    ↓
[Compress] → zstd (optional, skips media)
    ↓
[Encrypt] → AES-256-GCM with Scrypt key derivation
    ↓
[Chunk] → Split into ≤2GB pieces
    ↓
[Upload] → MTProto to your private channel
    ↓
[Index] → Metadata stored as pinned message

Channel Structure

📌 INDEX (pinned)
│   └── {"files": {"id1": msg_id, "id2": msg_id, ...}}
│
├── 📄 Metadata Message (JSON)
│   └── {"name": "file.zip", "size": 5GB, "chunks": [...]}
│
└── 📦 Chunk Messages (reply to metadata)
    └── file_id_001.chunk, file_id_002.chunk, ...

Commands

Command Description
televault login Authenticate with Telegram
televault logout Clear session
televault push <file> Upload file (or directory with -r)
televault pull <file> Download file
televault ls List all files
televault search <query> Search files by name
televault rm <file> Delete file
televault info <file> Show file details
televault status Show vault status
televault whoami Show current Telegram account
televault Launch TUI

Configuration

Config stored at ~/.config/televault/config.json:

{
  "channel_id": -1003652003243,
  "chunk_size": 104857600,
  "compression": true,
  "encryption": true,
  "parallel_uploads": 3,
  "parallel_downloads": 5,
  "max_retries": 3,
  "retry_delay": 1.0
}

Security

  • Encryption: AES-256-GCM (authenticated encryption)
  • Key Derivation: Scrypt (memory-hard, GPU-resistant)
  • Session: Telegram MTProto session stored encrypted
  • Zero Knowledge: Server never sees unencrypted data
  • MTProto: Direct Telegram protocol (no bot API limits)

Prerequisites

  • Telegram API credentials (get at my.telegram.org)
  • Telegram account
  • Python 3.11+

Installation

From PyPI

pip install televault

From Source

git clone https://github.com/YahyaToubali/televault
cd televault
pip install -e .".

Setup

# Authenticate with Telegram
televault login

# Set up storage channel
televault setup

# Upload your first file
televault push hello.txt

Usage Examples

Upload a file

televault push backup.tar.gz --password mysecret

Upload a directory

televault push ~/Documents/ -r --no-encrypt

Download a file

televault pull backup.tar.gz --password mysecret

List files

televault ls --sort=size

Search files

televault search "*.sql"

TUI

Launch the interactive terminal interface:

televault

Controls:

  • r = Refresh
  • u = Upload
  • d = Download selected
  • q = Quit
  • Arrow keys to navigate

License

MIT

Author

Yahya Toubali - @yahyatoubali


Built with ❤️ using Python, Telethon, and Textual

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

televault-0.1.0.tar.gz (27.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

televault-0.1.0-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file televault-0.1.0.tar.gz.

File metadata

  • Download URL: televault-0.1.0.tar.gz
  • Upload date:
  • Size: 27.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for televault-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8bdee6a974bfa2e751f535d3320dd255d34d3ac3daf2b32ab0f1ee5fdae50153
MD5 e2b4099a02caeef710f8ba269218adc2
BLAKE2b-256 1b87cd48925cbc091531aa26008239b8ba98254e27406348dae6496865b90a4b

See more details on using hashes here.

File details

Details for the file televault-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: televault-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for televault-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 872e2d9913f670fe06f9404fb1e9baf9fd1abf3a23f9b01e195599f3b6258d8e
MD5 38402f1f6d5996843404e17649154227
BLAKE2b-256 63291a5cc8e3be510a118cecac9035aac1f5cc461758f3232e2cdc130b302c72

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page