{"id":13826316,"url":"https://github.com/nktknshn/tgmount","last_synced_at":"2026-01-12T12:28:29.402Z","repository":{"id":40589240,"uuid":"187397496","full_name":"nktknshn/tgmount","owner":"nktknshn","description":"Mount Telegram dialogs and channels as a Virtual File System.","archived":false,"fork":false,"pushed_at":"2024-07-07T22:17:17.000Z","size":1055,"stargazers_count":72,"open_issues_count":8,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-09T00:41:22.584Z","etag":null,"topics":["clementine","fuse","libfuse","python","quodlibet","telegram","telegram-api","telethon","vfs"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nktknshn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-18T19:28:48.000Z","updated_at":"2025-05-17T17:46:51.000Z","dependencies_parsed_at":"2024-11-20T21:15:11.670Z","dependency_job_id":null,"html_url":"https://github.com/nktknshn/tgmount","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nktknshn/tgmount","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nktknshn%2Ftgmount","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nktknshn%2Ftgmount/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nktknshn%2Ftgmount/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nktknshn%2Ftgmount/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nktknshn","download_url":"https://codeload.github.com/nktknshn/tgmount/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nktknshn%2Ftgmount/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338976,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clementine","fuse","libfuse","python","quodlibet","telegram","telegram-api","telethon","vfs"],"created_at":"2024-08-04T09:01:35.571Z","updated_at":"2026-01-12T12:28:29.373Z","avatar_url":"https://github.com/nktknshn.png","language":"Python","readme":"# Overview\n\nThe main purpose of the program is to make audio files posted on Telegram available to regular desktop audio players. This is done via VFS by mapping remote files from telegram's cloud to local file system. Tested with audio players [quodlibet](https://github.com/quodlibet/quodlibet), [deadbeef](https://github.com/DeaDBeeF-Player/deadbeef), [clementine](https://github.com/clementine-player/Clementine).\n\n**This version is not maintained anymore. Use new version instead [https://github.com/nktknshn/tgmount-ng](https://github.com/nktknshn/tgmount-ng)**\n\n# Libraries used \n* [telethon](https://github.com/LonamiWebs/Telethon)\n* [libfuse](http://github.com/libfuse/libfuse)\n* [tqdm](https://github.com/tqdm/tqdm)\n* [funcy](https://github.com/Suor/funcy)\n* pysocks\n\n# Running\n\n```\n$ virtualenv .venv3.7 -p python3.7\n$ source .venv3.7/bin/activate\n$ pip install -r requirements.txt\n$ python tgmount/tgmount.py --list-dialogs\n```\n\n# Usage\nTo obtain your API id follow [official manual](https://core.telegram.org/api/obtaining_api_id).  Running the program for the first time will require authentication.\n\n```\n$ export TGAPP=1234567:deadbeef0d04a3efe93e1af778773d6f0\n```\n\nPrint your dialogs along with their numeric id's:\n\n```\n$ tgmount.py --list-dialogs\n```\n\nPrint 10 newest available documents:\n\n```\n$ tgmount.py --list-documents --id 793392913 --limit 10\n```\n\nPrint 10 oldest available documents:\n\n```\n$ tgmount.py --list-documents --id 793392913 --limit 10 --reverse\n```\n\nUsing global telegram username:\n\n```\n$ tgmount.py --list-documents --id techtroit --limit 10 --reverse\n```\n\nJson output:\n```\n$ tgmount.py --list-documents --id techtroit --limit 10 --json\n```\n\nMount channel techtroit to /mnt/techtroit/ loading all the audio files posted after message with id 11286\n\n```\n$ tgmount.py --mount /mnt/techtroit/ --id techtroit --offset 11286 --reverse\n```\n\nDownload files\n\n```\n$ tgmount.py --download /ssd/tgfs/download/ --id techtroit --files 11823,11822\n```\n\nDownload all files uploaded after message with id 11837\n```\n$ tgmount.py --download /ssd/tgfs/download/ --id techtroit --files $(tgmount.py --list-documents --id techtroit --offset-id 11837 --reverse --json | jq -r 'map(.message_id) | join(\",\")')\n```\n\nMore options:\n```\nusage: tgmount.py [-h] [--id ID] [--mount DIR] [--list-dialogs]\n                  [--list-documents] [--download DIR] [--files FILES]\n                  [--all-files] [--no-updates] [--reverse] [--limit LIMIT]\n                  [--offset-id OFFSET_ID] [--session SESSION]\n                  [--fsname FSNAME] [--socks SOCKS] [--debug] [--debug-fuse]\n                  [--json]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --id ID               chat or channel ID. Telegram username or numeric ID\n  --mount DIR           mount to DIR\n  --list-dialogs        print available telegram dialogs\n  --list-documents      print available documents\n  --download DIR        save files to DIR. Use with --files parameter\n  --files FILES         comma separated list of document IDs\n  --all-files           Retrieve all type of files, not only audio files.\n                        Default: no\n  --no-updates          don't listen for new files. Default: no\n  --reverse             documents will be searched in reverse order (from\n                        oldest to newest). Default: from newest to oldest\n  --limit LIMIT         limit number of documents or dialogs. default:\n                        unlimited\n  --offset-id OFFSET_ID\n                        offset message ID. Only documents previous to the\n                        given ID will be retrieved\n  --session SESSION     telegram session name. Default: tgfs\n  --fsname FSNAME       VFS name. Default: tgfs\n  --socks SOCKS         SOCKS5 proxy i.e. 127.0.0.1:9050\n  --debug               enable debugging output\n  --debug-fuse          enable FUSE debugging output\n  --json                json output. Default: no\n```","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnktknshn%2Ftgmount","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnktknshn%2Ftgmount","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnktknshn%2Ftgmount/lists"}