github GeiserX/Telegram-Archive v8.17.0

4 hours ago

Telegram Archive is on PyPI, transcription works with any provider, and the documentation moved to its own site. Upgrading runs migration 033 automatically. Docker deployments need no changes, and the old python -m src name keeps working.

Added

  • Install with pip. pip install telegram-archive gives the telegram-archive command and python -m telegram_archive. The templates, static files and every database migration ship inside the package. (#492)
  • telegram-archive migrate runs alembic upgrade head to create or upgrade the database schema. It is meant for pip installs and fresh databases. Run it before the first backup and after each upgrade. The Docker image still migrates on start and still detects older schemas.
  • A small Python API. from telegram_archive import Config, TelegramBackup, run_backup, then asyncio.run(run_backup(Config())) runs one backup of every configured account. The names load lazily, so the viewer image, which has no telethon, can still import the package.
  • Transcription with any provider. TRANSCRIPTION_PROVIDER picks akou, any OpenAI-compatible endpoint, Deepgram, AssemblyAI or ElevenLabs. The default, auto, behaves as before. TRANSCRIPTION_MODEL replaces the fixed whisper-1 model name, and TRANSCRIPTION_HOTWORDS now fills the prompt field. (#489)
  • A documentation site at geiserx.github.io/Telegram-Archive, written from the code: every setting with its default, every command, the viewer, upgrading and troubleshooting. The README is now a short overview. (#494, #495)
  • PyPI publishing. Each release tag builds the package, checks that the tag matches the version, and uploads it with PyPI trusted publishing. A new Package check builds and installs the wheel on every pull request.

Changed

  • The code moved from src/ to telegram_archive/. Both images keep a small src package, so compose files that run python -m src schedule, python -m src auth or uvicorn src.web.main:app keep working and run the same code. The old name prints a one-line notice at start. Switch to python -m telegram_archive and telegram_archive.web.main:app when convenient. The images' default commands and docker-compose.yml use the new name.
  • The viewer wallpaper has a new mount path, /app/telegram_archive/web/static/<file>. The old path, /app/src/web/static/<file>, is a link to it in the viewer image, so an existing mount keeps working.
  • The migrations moved into the package. From a checkout, run alembic -c telegram_archive/alembic.ini .... Inside the backup container a bare alembic ... still works.
  • The Docker examples use the new name. The compose file, init_auth.sh, init_auth.bat and .env.example run python -m telegram_archive and mount the wallpaper at the new path.
  • A misconfigured transcription server no longer uses up voice notes. A refusal about the server's setup (401, 402, 403, 429, and 404 on the direct path) keeps the file queued and ends the run. Two refused files with nothing answered end the run with a warning to check the model and language. A 413 affects only its own file, which is sent once more as its audio track. (#489)
  • Each transcript records the options it was made with, and an answer made with another provider, model, language hint, hotword list or preset is never reused for a new request. Migration 033 adds the column. (#489)

Fixed

  • More of each transcription answer is read. Word timings nested under segments (whisper.cpp), a segment's speaker id (Mistral), the detected language confidence, and ElevenLabs' three-letter language codes and audio duration. (#489)

📋 Full changelog: docs/CHANGELOG.md

Don't miss a new Telegram-Archive release

NewReleases is sending notifications on new releases.