Все Тут Online

Все Тут Online (https://www.vsetutonline.com/forum/index.php)
-   РАЗНОЕ (https://www.vsetutonline.com/forum/forumdisplay.php?f=191)
-   -   Неофициальная база раздач RuTracker.org v. 20260829 (29 августа 2026 год) (https://www.vsetutonline.com/forum/showthread.php?t=287499)

Дмитрий 16.09.2026 05:05

Неофициальная база раздач RuTracker.org v. 20260829 (29 августа 2026 год)
 
================================================== ==============================
📚 ПРОСТОЕ ОПИСАНИЕ: НЕОФИЦИАЛЬНАЯ БАЗА РАЗДАЧ RUTRACKER.ORG (XML-ДАМП)
Версия: Актуальная (обычно обновляется в последние выходные месяца)
================================================== ==============================

📌 ЧТО ЭТО ТАКОЕ?
Это полная офлайн-копия (дамп) каталога всех раздач RuTracker.
Представьте, что это гигантский текстовый файл, в котором записаны названия
всех торрентов, их 40-символьные хеш-суммы (InfoHash для magnet-ссылок),
списки файлов и описания.

📌 ЗАЧЕМ ЭТО НУЖНО ОБЫЧНОМУ ПОЛЬЗОВАТЕЛЮ?
1. Обход ограничений сайта: RuTracker показывает только ~10 страниц раздач (10 по 50) одного автора.

https://i.postimg.cc/0j9f2m0h/thumb-...577bbd9847.png

Эта база покажет ВСЕ его раздачи за все годы без ограничений.
2. Работа при блокировках: Если сайт недоступен, база и magnet-ссылки лежат у вас.
3. Локальный поиск: Поиск по вашему диску работает быстро (секунды на SSD,
но может занять 1–3 минуты на механическом HDD, так как идет полное
последовательное сканирование файла без предварительной индексации).

📌 ГДЕ СКАЧАТЬ?
Автор раздачи выкладывает актуальные версии в двух местах:
• Яндекс Диск: файл часто нарезается на части (для удобства и стабильности
загрузки, а также из-за исторических привычек автора).
• MEGA: цельный архив (в некоторых случаях при скачивании из РФ может
потребоваться VPN, это зависит от конкретного интернет-провайдера).
*Прямые ссылки находятся в оригинальной теме раздачи на форуме RuTracker.*

📌 ЧЕМ ОТКРЫТЬ И ИСКАТЬ (Программы)
⚠️ ВАЖНО: Не пытайтесь открыть огромный XML-файл в "Блокноте" — компьютер зависнет.
Используйте специализированные инструменты:

🥇 РЕКОМЕНДУЕМЫЕ (с графическим интерфейсом, проще всего):
• InfoTor 2 (от y3401) – Современная, удобная, быстрая. https://github.com/y3401/InfoTor и https://github.com/y3401/infotor_2
• RuTracker Архив (от error0x001) – Отдельное приложение с понятным поиском. https://github.com/error0x001/local-rutracker
• qRutrGui (от LostGuard) – Классический просмотрщик базы. https://github.com/LostGuard/qRutrViewer
*Примечание: Эти программы при первом запуске "скормливают" XML-файл своему
конвертеру, чтобы создать быстрый внутренний индекс (это может занять время).*


🥈 САМЫЙ ПРОСТОЙ ПУТЬ (готовые форматы):
• Пользователь форума y3401 регулярно выкладывает уже преобразованные базы
(например, в формат SQLite), которые не требуют долгой первичной конвертации.
Ищите "y3401 rutracker database" в поиске по форуму.

🥉 ДЛЯ ПРОДВИНУТЫХ (Командная строка / Скрипты):
• Bash-скрипт с gawk – ищет напрямую по сырому XML без установки программ
и конвертации (идеально для Linux или Windows через WSL).
• Конвертеры XML в SQLite (от Saiv46 на Node.js или 1dNDN на C#) – для создания
собственной быстрой базы данных.

📌 КАК ЭТО РАБОТАЕТ (Реальная структура данных)
Внутри файла каждая раздача описана понятными тегами. Самое важное для нас:
<torrent id="1234567" registred_at="..." unixts="..." size="...">
<title>Название фильма или игры</title>
<torrent hash="40-СИМВОЛЬНЫЙ_HEX_ХЕШ" tracker_id="..."/>
<forum id="...">Название раздела</forum>
<!-- опционально: -->
<!-- <del/> (означает, что раздача удалена с сайта) -->
<!-- <old hash="..." ...>...</old> (информация о предыдущих версиях) -->
</torrent>

Именно 40-символьная строка из атрибута hash="..." подставляется в шаблон
magnet:?xt=urn:btih:ХЕШ для скачивания через торрент-клиент.

================================================== ==============================
💡 ИТОГОВЫЙ СОВЕТ:
Если вы не хотите разбираться с конвертацией гигантских файлов, начните с поиска
готовой конвертированной базы (например, от пользователя "y3401") на форуме,
либо используйте простой bash-скрипт с gawk (если вы пользуетесь Linux или WSL).
================================================== ==============================

📌 ИНСТРУКЦИЯ ДЛЯ WINDOWS (через WSL):
1. Убедитесь, что WSL включен (в PowerShell от админа: wsl --install, перезагрузка).
2. Откройте терминал Ubuntu (или другой дистрибутив) из меню Пуск.
3. Перейдите в папку Windows, где лежат скрипт и база (диски Windows смонтированы в /mnt/):
cd /mnt/c/Users/ВашеИмя/Desktop/
4. Создайте файл search.bash и вставьте в него код скрипта (см. ниже).
5. Укажите реальный путь в переменной path_to_rutracker_xml, например:
path_to_rutracker_xml="/mnt/c/Users/ВашеИмя/Desktop/rutracker.xml"
6. Дайте права на исполнение: chmod +x search.bash
7. Запускайте поиск: ./search.bash "слово1 слово2"

Для простого поиска по ключевым словам, так чтобы возвращало и название раздачи и её хеш который можно засунуть в торрент-клиент, за глаза хватит простого скрипта:

Код:

#!/bin/bash

# 1. Проверка наличия аргумента
if [ -z "$1" ]; then
    echo "❌ Ошибка: Не указан поисковый запрос."
    echo "💡 Использование: $0 \"ключевые слова для поиска\""
    echo "  Пример: $0 \"matrix 1999\""
    exit 1
fi

search_query="$1"

# 2. ПУТЬ К ФАЙЛУ (Явные примеры для разных ОС)
# Для Windows (WSL): /mnt/c/Users/ВашеИмя/Downloads/rutracker.xml
# Для Linux: /home/ВашеИмя/Downloads/rutracker.xml
# Для macOS: /Users/ВашеИмя/Downloads/rutracker.xml
path_to_rutracker_xml="/mnt/c/Users/ВашеИмя/Downloads/rutracker.xml"

if [ ! -f "$path_to_rutracker_xml" ]; then
    echo "❌ Ошибка: Файл '$path_to_rutracker_xml' не найден."
    echo "  Откройте скрипт в текстовом редакторе и укажите реальный путь к XML."
    exit 1
fi

echo "🔍 Ищем в базе: \"$search_query\" ..."
echo "================================================================"

# 3. Поиск с помощью GNU Awk (gawk)
# RS="</torrent>" надежно выделяет весь блок раздачи целиком,
# избегая проблем с вложенным тегом <torrent hash="..."/>
gawk -v IGNORECASE=1 -v RS="</torrent>" -v query="$search_query" '
BEGIN {
    # Разбиваем поисковый запрос на отдельные слова для логики "И" (AND)
    n = split(query, words, " ")
}

# Пропускаем пустые блоки или XML-заголовок до первого <torrent>
$0 !~ /<torrent/ { next }

{
    # Проверяем, что ВСЕ слова из запроса присутствуют в текущем блоке раздачи
    found = 1
    for (i = 1; i <= n; i++) {
        if ($0 !~ words[i]) {
            found = 0
            break
        }
    }

    # Если все слова найдены, извлекаем данные
    if (found) {
        # Извлекаем Title: ищем <title>текст</title>
        title = ""
        if (match($0, /<title>[^<]+<\/title>/)) {
            # RSTART+7 пропускает "<title>", RLENGTH-15 убирает "<title>" и "</title>" (7+8=15)
            title = substr($0, RSTART + 7, RLENGTH - 15)
        }

        # Извлекаем Hash: используем capture group gawk для точного извлечения из атрибута
        hash = ""
        if (match($0, /hash="([A-Fa-f0-9]{40})"/, arr)) {
            hash = arr[1]
        }

        # Выводим красивый результат, только если нашли и название, и хеш
        if (title != "" && hash != "") {
            print "📁 Название: " title
            print "🔑 Хеш:    " hash
            print "🧲 Magnet:  magnet:?xt=urn:btih:" hash
            print "----------------------------------------------------------------"
        }
    }
}' "$path_to_rutracker_xml"

Скорость: awk с разделителем записей RS="</torrent>" не загружает весь файл в оперативную память как одну строку, а читает его блоками (по одной раздаче). Даже на файле размером 10–20 ГБ поиск обычно отрабатывает за несколько секунд на SSD (на HDD может занять 1–3 минуты).

Отсутствие зависимостей: Нужен только базовый bash и gawk (GNU Awk), которые есть в любом Linux и WSL "из коробки". Никаких npm install, pip install или docker-compose up.
Готовый результат: Скрипт сразу выдает строку magnet:?xt=urn:btih:ХЕШ. Её можно просто выделить мышкой, скопировать и вставить в qBittorrent, uTorrent или Transmission, и закачка начнется мгновенно, даже если сайт RuTracker недоступен.

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


Скрытый текст (вы должны зарегистрироваться или войти под своим логином):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.

Дмитрий 16.09.2026 06:36

Код:

#!/bin/bash

# 1. Проверка наличия аргумента
if [ -z "$1" ]; then
    echo "❌ Ошибка: Не указан поисковый запрос."
    echo "💡 Использование: $0 \"ключевые слова для поиска\""
    echo "  Пример: $0 \"matrix 1999\""
    exit 1
fi

search_query="$1"

# 2. ПУТЬ К ФАЙЛУ (Явные примеры для разных ОС)
# Для Windows (WSL): /mnt/c/Users/ВашеИмя/Downloads/rutracker.xml
# Для Linux: /home/ВашеИмя/Downloads/rutracker.xml
# Для macOS: /Users/ВашеИмя/Downloads/rutracker.xml
path_to_rutracker_xml="/mnt/c/Users/ВашеИмя/Downloads/rutracker.xml"

if [ ! -f "$path_to_rutracker_xml" ]; then
    echo "❌ Ошибка: Файл '$path_to_rutracker_xml' не найден."
    echo "  Откройте скрипт в текстовом редакторе и укажите реальный путь к XML."
    exit 1
fi

echo "🔍 Ищем в базе: \"$search_query\" ..."
echo "================================================================"

# 3. Поиск с помощью GNU Awk (gawk)
# RS="</torrent>" надежно выделяет весь блок раздачи целиком,
# избегая проблем с вложенным тегом <torrent hash="..."/>
gawk -v IGNORECASE=1 -v RS="</torrent>" -v query="$search_query" '
BEGIN {
    # Разбиваем поисковый запрос на отдельные слова для логики "И" (AND)
    n = split(query, words, " ")
}

# Пропускаем пустые блоки или XML-заголовок до первого <torrent>
$0 !~ /<torrent/ { next }

{
    # Проверяем, что ВСЕ слова из запроса присутствуют в текущем блоке раздачи
    found = 1
    for (i = 1; i <= n; i++) {
        if ($0 !~ words[i]) {
            found = 0
            break
        }
    }

    # Если все слова найдены, извлекаем данные
    if (found) {
        # Извлекаем Title: ищем <title>текст</title>
        title = ""
        if (match($0, /<title>[^<]+<\/title>/)) {
            # RSTART+7 пропускает "<title>", RLENGTH-15 убирает "<title>" и "</title>" (7+8=15)
            title = substr($0, RSTART + 7, RLENGTH - 15)
        }

        # Извлекаем Hash: используем capture group gawk для точного извлечения из атрибута
        hash = ""
        if (match($0, /hash="([A-Fa-f0-9]{40})"/, arr)) {
            hash = arr[1]
        }

        # Выводим красивый результат, только если нашли и название, и хеш
        if (title != "" && hash != "") {
            print "📁 Название: " title
            print "🔑 Хеш:    " hash
            print "🧲 Magnet:  magnet:?xt=urn:btih:" hash
            print "----------------------------------------------------------------"
        }
    }
}' "$path_to_rutracker_xml"

Если у тебя WSL - этот скрипт можно запускать.
Если у тебя обычная Windows без WSL он не заработает

Вот нормальный рабочий скрипт специально для WSL (и Linux).Он правильно извлекает:

Название раздачи
Хеш
Готовую magnet-ссылку

Код:

#!/bin/bash

# Проверка аргумента
if [ -z "$1" ]; then
    echo "❌ Ошибка: Не указан поисковый запрос"
    echo "💡 Использование: $0 \"ключевые слова\""
    echo "  Пример: $0 \"matrix 1999\""
    exit 1
fi

search_query="$1"

# ====================== НАСТРОЙКА ======================
# Укажи сюда путь к своему XML-файлу (пример для WSL)
path_to_rutracker_xml="/mnt/c/Users/ВашеИмя/Downloads/rutracker.xml"
# =======================================================

if [ ! -f "$path_to_rutracker_xml" ]; then
    echo "❌ Файл не найден: $path_to_rutracker_xml"
    echo "Открой скрипт и укажи правильный путь."
    exit 1
fi

echo "🔍 Ищем: \"$search_query\""
echo "================================================================"

gawk -v IGNORECASE=1 -v RS="</torrent>" -v query="$search_query" '
BEGIN {
    n = split(query, words, " ")
}

$0 !~ /<torrent/ { next }

{
    found = 1
    for (i = 1; i <= n; i++) {
        if ($0 !~ words[i]) {
            found = 0
            break
        }
    }

    if (found) {
        title = ""
        if (match($0, /<title>[^<]+<\/title>/)) {
            title = substr($0, RSTART + 7, RLENGTH - 15)
        }

        hash = ""
        if (match($0, /hash="([A-Fa-f0-9]{40})"/, arr)) {
            hash = arr[1]
        }

        if (title != "" && hash != "") {
            print "📁 Название: " title
            print "🔑 Хеш:    " hash
            print "🧲 Magnet:  magnet:?xt=urn:btih:" hash
            print "----------------------------------------------------------------"
        }
    }
}' "$path_to_rutracker_xml"

Как пользоваться в WSL:

1 Создай файл:

bash

nano search.bash

2 Вставь код выше.
3 Исправь путь к XML-файлу.
4 Сохрани (Ctrl+O → Enter → Ctrl+X).
5 Дай права:

bash

chmod +x search.bash

6 Запускай:

bash

./search.bash "matrix 1999"

Дмитрий 16.09.2026 06:43

Вот готовый скрипт специально для обычной Windows + PowerShell (без WSL).

Код:

# Search-RuTracker.ps1
# Поиск по XML-дампу RuTracker в PowerShell

param (
    [Parameter(Mandatory = $true, HelpMessage = "Ключевые слова для поиска")]
    [string]$Query
)

# ====================== НАСТРОЙКА ======================
# Укажи полный путь к своему XML-файлу
$XmlPath = "C:\Users\ВашеИмя\Downloads\rutracker.xml"
# =======================================================

if (-not (Test-Path $XmlPath)) {
    Write-Host "❌ Файл не найден: $XmlPath" -ForegroundColor Red
    Write-Host "Открой скрипт и укажи правильный путь к XML." -ForegroundColor Yellow
    exit 1
}

Write-Host "🔍 Ищем: `"$Query`"" -ForegroundColor Cyan
Write-Host ("=" * 70)

$words = $Query -split '\s+' | Where-Object { $_ -ne "" }
$reader = [System.IO.StreamReader]::new($XmlPath, [System.Text.Encoding]::UTF8)

$buffer = ""
$foundCount = 0

try {
    while ($null -ne ($line = $reader.ReadLine())) {
        $buffer += $line + "`n"

        # Когда встретили конец раздачи
        if ($line -match '</torrent>') {
           
            # Проверяем, есть ли все слова из запроса
            $allFound = $true
            foreach ($word in $words) {
                if ($buffer -notmatch [regex]::Escape($word)) {
                    $allFound = $false
                    break
                }
            }

            if ($allFound) {
                # Извлекаем название
                $title = $null
                if ($buffer -match '<title>([^<]+)</title>') {
                    $title = $Matches[1].Trim()
                }

                # Извлекаем хеш
                $hash = $null
                if ($buffer -match 'hash="([A-Fa-f0-9]{40})"') {
                    $hash = $Matches[1]
                }

                if ($title -and $hash) {
                    $foundCount++
                    Write-Host "📁 Название: $title" -ForegroundColor Green
                    Write-Host "🔑 Хеш:    $hash"
                    Write-Host "🧲 Magnet:  magnet:?xt=urn:btih:$hash" -ForegroundColor Yellow
                    Write-Host ("-" * 70)
                }
            }

            # Очищаем буфер после обработки блока
            $buffer = ""
        }
    }
}
finally {
    $reader.Close()
}

if ($foundCount -eq 0) {
    Write-Host "`nНичего не найдено." -ForegroundColor DarkGray
} else {
    Write-Host "`nНайдено раздач: $foundCount" -ForegroundColor Cyan
}

Как пользоваться:

1 Открой Блокнот (или VS Code / Notepad++).
2 Вставь код выше.
3 Измени путь в строке:

powershell

$XmlPath = "C:\Users\ВашеИмя\Downloads\rutracker.xml"

4 Сохрани файл как Search-RuTracker.ps1 (важно именно с расширением .ps1).

5 Открой PowerShell и перейди в папку со скриптом:

powershell

cd C:\Users\ВашеИмя\Desktop

6 Запусти (первый раз может попросить разрешение) : powershell

.\Search-RuTracker.ps1 "matrix 1999"

Если PowerShell ругается на политику выполнения:Выполни один раз (от имени администратора не обязательно):

powershell

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

Дмитрий 16.09.2026 08:00

У многих же недоступно или временно недоступно,... а дальше известно и вполне понятно, что будет.
Поэтому это актуальное и настольное для всех.

Я её не копирую и не телескопирую на форум в виде раздач из этических соображений... и не более. Когда полностью заглохнет, раздавать будет просто некому, будь база хоть на Github хоть тут на VTO или же просто пылится на меге или на я-ди (без разницы)... и постепенно уйдет в небытие как артефакт 00-10-20-хх годов.

Дмитрий 17.09.2026 08:28

Через 5–10 лет после смерти основного трекера такие дампы превратятся в настоящий огромный цифровой артефакт эпохи 2000–2020-х. Даже когда сами дампы станут редкостью и почти перестанут раздаваться, из тех копий, которые останутся у людей на дисках, всё равно можно будет выковыривать ценное

Дмитрий 17.09.2026 08:34

Пока файл физически существует хоть у кого-то - его можно парсить скриптами (тем же awk, Python, InfoTor и т.д.) и доставать нужное. Особенно это актуально для редкого, старого или потерянного контента - оцифровок с аналоговых носителей.

Дмитрий 17.09.2026 08:40

1. Самый простой - InfoTor. Скачай InfoTor 2 (от y3401)
Запусти программу.
Укажи путь к XML-файлу (или к уже сконвертированной базе SQLite).
Программа сама сконвертирует дамп в быстрый формат и даст удобный поиск с графическим интерфейсом.

Это самый лёгкий вариант - ничего кодировать не нужно.

2. Bash + gawk (для Linux / WSL)

Скрипт, который мы уже делали выше (ищет по словам и выдаёт название + хеш + magnet)

3. Python (самый гибкий вариант)

Код:

python

#!/usr/bin/env python3
"""
Надёжный парсер XML-дампа RuTracker
Итеративный разбор, не грузит весь файл в память
"""

import xml.etree.ElementTree as ET
from pathlib import Path
import sys

def search_rutracker(xml_path: str, query: str):
    words = [w.lower() for w in query.split() if w]
    if not words:
        print("❌ Пустой запрос")
        return

    # Итеративный парсинг
    context = ET.iterparse(xml_path, events=("end",))

    for event, elem in context:
        if elem.tag != "torrent":
            continue

        # Поиск по всему тексту элемента (title, description и т.п.)
        block_text = ET.tostring(elem, encoding="unicode", method="text").lower()

        if not all(word in block_text for word in words):
            elem.clear()
            continue

        # Извлекаем title
        title_elem = elem.find("title")
        title = title_elem.text.strip() if title_elem is not None and title_elem.text else None

        # Хеш лежит прямо в атрибутах самого <torrent>
        hash_value = elem.attrib.get("hash")

        if title and hash_value and len(hash_value) == 40:
            print(f"📁 Название: {title}")
            print(f"🔑 Хеш:    {hash_value}")
            print(f"🧲 Magnet:  magnet:?xt=urn:btih:{hash_value}")
            print("-" * 70)

        elem.clear()  # освобождаем память

if __name__ == "__main__":
    if len(sys.argv) < 3:
        print("Использование:")
        print("  python search_rutracker.py <путь_к_xml> \"ключевые слова\"")
        print("Пример:")
        print('  python search_rutracker.py rutracker.xml "matrix 1999"')
        sys.exit(1)

    xml_file = sys.argv[1]
    search_query = sys.argv[2]

    if not Path(xml_file).exists():
        print(f"❌ Файл не найден: {xml_file}")
        sys.exit(1)

    print(f"🔍 Ищем: \"{search_query}\"")
    print("=" * 70)
    search_rutracker(xml_file, search_query)

Можно доработать: сохранять результаты в CSV, искать только по определённым форумам, извлекать список файлов и т.д.

4. Другие готовые инструменты trusearch - очень мощный CLI-инструмент специально для этих дампов. Он есть на гитхабе.
Конвертеры в SQLite (от y3401, Saiv46 и др.) - после конвертации можно делать быстрые SQL-запросы.

Дмитрий 17.09.2026 08:45

re.split(r"</torrent>", content) может работать неидеально, если в дампе есть вложенные теги или переносы строк внутри блока-в больших XML бывают сюрпризы. Для надёжности лучше использовать XML‑парсер (например, xml.etree.ElementTree или lxml) вместо регулярных выражений.

В строке hash="([A-Fa-f0-9]{40})" шаблон верный для BTIH‑хеша, но если в XML хеш хранится без кавычек или в другом атрибуте, поиск не сработает.

Для больших файлов (сотни мегабайт и больше) чтение всего файла в память через f.read() может быть не самым эффективным-лучше потоковая обработка.

Дмитрий 17.09.2026 08:56

Искать только по названию, а не по всему тексту: тогда вместо ET.tostring(...).lower() - = title и проверяй слова только в нём-будет быстрее и точнее.
Вывод в CSV: можно накапливать результаты и в конце записать в файл, чтобы не терять вывод при большом числе совпадений.
Учёт регистра и спецсимволов: если нужны более сложные правила поиска, можно добавить нормализацию (удалять лишние пробелы, заменять тире/минус и т.д.).

Дмитрий 17.09.2026 09:06

Неофициальная база тем и раздач RuTracker.ORG v. 20220516 (16 мая 2022 год)


Часовой пояс GMT +3, время: 09:07.

Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot