Skip to content

2Xsave/twsave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐦 twsave_core

Rust-библиотека для скачивания видео, фото и сохранения текстовых постов из X (Twitter)

CI License: MIT Rust pyo3

✨ Возможности

  • Загрузка видео (MP4) и фото по ссылке на пост X (Twitter)
  • Поддержка текстовых постов — сохраняется metadata.json с содержимым
  • Автоматическое получение Bearer-токена и guest-токена
  • Fallback-стратегия: GraphQL API → HTML парсинг
  • Ротация User-Agent, поддержка прокси и cookies
  • Python-биндинги через pyo3/maturin

🦀 Rust API

use twsave_core::{execute_download, DownloadRequest};

let request = DownloadRequest {
    url: "https://x.com/username/status/1234567890".to_string(),
    output: None,
    skip_check: false,
    output_root: None,
    config_path: None,
    runtime_config: None,
    max_size_mb: None,
};

let outcome = execute_download(request).await?;
println!("Скачано: {:?}", outcome.assets);

🐍 Python API

from twsave_core import download_as_files, download_as_binary, load_config

# Загрузить конфигурацию из файла
config = load_config(path="twitter_config.json")

# Скачать в файлы на диск
files = download_as_files(url="https://x.com/username/status/1234567890", config=config)

# Скачать в память (binary)
binary = download_as_binary(url="https://x.com/username/status/1234567890")
for asset in binary.assets:
    print(asset.filename, len(asset.content))

⚙️ Конфигурация

Создайте файл twitter_config.json:

{
  "cookies": {
    "auth_token": "xxx",
    "ct0": "yyy"
  },
  "bearer_token": "AAAAAAAAA...",
  "max_retries": 3,
  "retry_backoff": 1.25,
  "request_timeout": 15.0,
  "accept_language": "ru-RU,ru;q=0.9"
}

Примечание: поле bearer_token опционально. Если оно не указано, крейт автоматически извлекает токен из HTML/JS страницы при каждом запросе.

Или используйте переменные окружения:

Переменная Описание
TWITTER_CONFIG_PATH Путь к файлу конфигурации
TWSAVE_COOKIES_JSON Cookies в виде JSON-строки
TWSAVE_COOKIE Cookies в формате key=value;key2=value2
TWSAVE_BEARER_TOKEN Bearer-токен для Twitter API
TWSAVE_PROXIES Список прокси через запятую
TWSAVE_MAX_RETRIES Максимальное количество повторных попыток
TWSAVE_RETRY_BACKOFF Задержка между повторами (секунды)
TWSAVE_REQUEST_TIMEOUT Таймаут запроса (секунды)
TWSAVE_ACCEPT_LANGUAGE Значение заголовка Accept-Language

📄 Лицензия

MIT — см. LICENSE.

About

X (Twitter) media downloader core — Rust async library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages