{"id":20605297,"url":"https://github.com/dim13/otpauth","last_synced_at":"2025-04-14T01:02:03.052Z","repository":{"id":44051662,"uuid":"268946152","full_name":"dim13/otpauth","owner":"dim13","description":"Google Authenticator migration decoder","archived":false,"fork":false,"pushed_at":"2025-03-07T10:59:36.000Z","size":242,"stargazers_count":746,"open_issues_count":6,"forks_count":71,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-30T20:08:24.063Z","etag":null,"topics":["go","google-authenticator","otpauth","otpauth-migration","protobuf"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dim13.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},"funding":{"github":"dim13","custom":"https://www.paypal.me/dim13"}},"created_at":"2020-06-03T01:23:58.000Z","updated_at":"2025-03-28T04:48:50.000Z","dependencies_parsed_at":"2023-12-09T02:23:51.661Z","dependency_job_id":"ad14ab07-6739-4d54-935a-001fbae4f895","html_url":"https://github.com/dim13/otpauth","commit_stats":{"total_commits":101,"total_committers":9,"mean_commits":"11.222222222222221","dds":0.08910891089108908,"last_synced_commit":"b607315bd0b079f7b29af0345f5b8608539fea90"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dim13%2Fotpauth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dim13%2Fotpauth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dim13%2Fotpauth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dim13%2Fotpauth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dim13","download_url":"https://codeload.github.com/dim13/otpauth/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247550681,"owners_count":20956987,"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":["go","google-authenticator","otpauth","otpauth-migration","protobuf"],"created_at":"2024-11-16T09:27:30.896Z","updated_at":"2025-04-06T21:12:23.797Z","avatar_url":"https://github.com/dim13.png","language":"Go","funding_links":["https://github.com/sponsors/dim13","https://www.paypal.me/dim13"],"categories":["Go"],"sub_categories":[],"readme":"# Google Authenticator migration decoder\n\n![Logo](images/otpauth.png)\n\nConvert [Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) `otpauth-migration://offline?data=...`\n[transfer links](https://github.com/google/google-authenticator-android/issues/118)\nto plain [otpauth links](https://github.com/google/google-authenticator/wiki/Key-Uri-Format).\n\n## Usage\n\n* Navigate to ⋮ → Transfer accounts → Export accounts.\n* Extract migration link from QR-code using your preferred software.\n* Pass link to `otpauth` tool.\n\n### Flags\n\n```\n  -workdir string\n    \tworking directory to store eventual files (defaults to current one)\n  -eval\n    \tevaluate otps\n  -http string\n    \tserve http (e.g. :6060)\n  -info\n    \tdisplay batch info\n  -link string\n    \tmigration link (required)\n  -qr\n    \tgenerate QR-codes (optauth://)\n  -rev\n    \treverse QR-code (otpauth-migration://)\n```\n\n## Example\n\n```\ngo install github.com/dim13/otpauth@latest\n```\n\nOr get latest binary [release](https://github.com/dim13/otpauth/releases/latest).\n\n### Usage\n\n```\n~/go/bin/otpauth -link \"otpauth-migration://offline?data=CjEKCkhlbGxvId6tvu8SGEV4YW1wbGU6YWxpY2VAZ29vZ2xlLmNvbRoHRXhhbXBsZTAC\"\n```\n\nWill output:\n\n```\notpauth://totp/Example:alice@google.com?issuer=Example\u0026secret=JBSWY3DPEHPK3PXP\n```\n\n### QR-Codes\n\n```\n~/go/bin/otpauth -qr -link \"otpauth-migration://offline?data=CjEKCkhlbGxvId6tvu8SGEV4YW1wbGU6YWxpY2VAZ29vZ2xlLmNvbRoHRXhhbXBsZTAC\"\n# view and scan *.png in current working directory\n```\n\nWill generate:\n\n![Example](images/example.png)\n\n### Serve http\n```\n~/go/bin/otpauth -http=localhost:6060 -link \"otpauth-migration://offline?data=CjEKCkhlbGxvId6tvu8SGEV4YW1wbGU6YWxpY2VAZ29vZ2xlLmNvbRoHRXhhbXBsZTAC\"\n```\n\nNavigate to http://localhost:6060/\n\n## Docker\nA Docker container can also be used to run the application by building and running the image as following\n\n#### Build image\nFrom the current directory run\n```\ndocker build . -t otpauth:latest\n```\n\n#### Run container\nTo start a container from the previously created image run\n```\ndocker run --name otpauth -p 6060:6060 -v $(pwd)/workdir:/app/workdir --rm otpauth:latest -workdir /app/workdir -http :6060 -link \"otpauth-migration://offline?data=CjEKCkhlbGxvId6tvu8SGEV4YW1wbGU6YWxpY2VAZ29vZ2xlLmNvbRoHRXhhbXBsZTAC\"\n```\n```\n-p 6060:6060\nMap the host 6060 to the containr 6060\n\n-v $(pwd)/workdir:/app/workdir\nMap the host dir to the containr dir\n```\nNavigate to http://localhost:6060/\n\n## Other projects\n\nSee also https://github.com/dim13/2fa for simple CLI 2FA evaluator\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdim13%2Fotpauth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdim13%2Fotpauth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdim13%2Fotpauth/lists"}