{"id":13993867,"url":"https://github.com/rndusr/torf","last_synced_at":"2025-04-14T23:22:42.606Z","repository":{"id":57476601,"uuid":"115016229","full_name":"rndusr/torf","owner":"rndusr","description":"Python module to create, parse and edit torrent files and magnet links","archived":false,"fork":false,"pushed_at":"2025-02-24T11:19:25.000Z","size":1001,"stargazers_count":196,"open_issues_count":3,"forks_count":17,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-07T20:05:34.437Z","etag":null,"topics":["magnet-link","magnet-uri","python3","torrent","torrent-files"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rndusr.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG","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":"2017-12-21T14:47:02.000Z","updated_at":"2025-04-06T12:33:12.000Z","dependencies_parsed_at":"2024-06-18T16:50:24.108Z","dependency_job_id":"01e311f8-5558-4048-935f-85843594739b","html_url":"https://github.com/rndusr/torf","commit_stats":{"total_commits":1073,"total_committers":5,"mean_commits":214.6,"dds":0.004659832246039164,"last_synced_commit":"ff20c0f1e3b93177927edb3a0ed51ada4010b3d9"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rndusr%2Ftorf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rndusr%2Ftorf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rndusr%2Ftorf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rndusr%2Ftorf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rndusr","download_url":"https://codeload.github.com/rndusr/torf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248975923,"owners_count":21192295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["magnet-link","magnet-uri","python3","torrent","torrent-files"],"created_at":"2024-08-09T14:02:36.068Z","updated_at":"2025-04-14T23:22:42.584Z","avatar_url":"https://github.com/rndusr.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"torf\n====\n\ntorf provides a ``Torrent`` and a ``Magnet`` class.\n\n`torf-cli \u003chttps://github.com/rndusr/torf-cli\u003e`_ and `torf-gui\n\u003chttps://github.com/SavageCore/torf-gui\u003e`_ provide user interfaces for torf.\n\nThis project started as a fork of `dottorrent\n\u003chttps://github.com/kz26/dottorrent\u003e`_ but turned into a rewrite.\n\nFeatures\n--------\n\n- Create a ``Torrent`` instance from a path to the torrent's content or by\n  reading an existing ``.torrent`` file\n- High-level access to standard metainfo fields via properties\n- Low-level access to arbitrary metainfo fields via ``metainfo`` property\n- Optional metainfo validation with helpful error messages\n- Generate a `BTIH magnet URI\n  \u003chttps://en.wikipedia.org/wiki/Magnet_URI_scheme\u003e`_ from a ``.torrent`` file\n  (the reverse is also possible but the resulting torrent is incomplete due to\n  the lack of information in magnet URIs)\n- Use multiple CPU cores to compute piece hashes\n- Randomize the info hash to help with cross-seeding\n- Conveniently re-use piece hashes from an existing torrent file\n\nExample\n-------\n\n.. code:: python\n\n    from torf import Torrent\n    t = Torrent(path='path/to/content',\n                trackers=['https://tracker1.example.org:1234/announce',\n                          'https://tracker2.example.org:5678/announce'],\n                comment='This is a comment')\n    t.private = True\n    t.generate()\n    t.write('my.torrent')\n\nDocumentation\n-------------\n\nEverything should be explained in the docstrings. Read it with ``pydoc3\ntorf.Torrent`` or ``pydoc3 torf.Magnet``.\n\nDocumentation is also available at `torf.readthedocs.io\n\u003chttps://torf.readthedocs.io/\u003e`_ or `torf.readthedocs.io/en/latest\n\u003chttps://torf.readthedocs.io/en/latest\u003e`_ for the development version.\n\nInstallation\n------------\n\ntorf is available on `PyPI \u003chttps://pypi.org/project/torf\u003e`_.\n\nThe latest development version is in the master branch on `GitHub\n\u003chttps://github.com/rndusr/torf\u003e`_.\n\nContributing\n------------\n\nI consider this project feature complete, but feel free to request new features\nor improvements. Bug reports are always welcome, of course.\n\nLicense\n-------\n\n`GPLv3+ \u003chttps://www.gnu.org/licenses/gpl-3.0.en.html\u003e`_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frndusr%2Ftorf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frndusr%2Ftorf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frndusr%2Ftorf/lists"}