{"id":18214560,"url":"https://github.com/davep/bird2glass","last_synced_at":"2026-02-10T01:03:33.618Z","repository":{"id":260908919,"uuid":"882251318","full_name":"davep/bird2glass","owner":"davep","description":"A tool for converting my pre-Musk Twitter archive into an Obsidian Vault","archived":false,"fork":false,"pushed_at":"2024-12-11T14:42:42.000Z","size":442,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T00:37:11.671Z","etag":null,"topics":["converter","exporter","markdown","obsidian","obsidian-md","python","python3","twitter"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/bird2glass/","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/davep.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":".github/FUNDING.yml","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":{"ko_fi":"davepearson"}},"created_at":"2024-11-02T10:04:17.000Z","updated_at":"2024-12-11T14:44:07.000Z","dependencies_parsed_at":"2024-11-03T14:37:13.688Z","dependency_job_id":"a4e2deb4-7233-4d5b-bf24-aab087acd2a0","html_url":"https://github.com/davep/bird2glass","commit_stats":{"total_commits":29,"total_committers":1,"mean_commits":29.0,"dds":0.0,"last_synced_commit":"83bdcad950d9d873007e9918c835d155476d9682"},"previous_names":["davep/bird2glass"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davep%2Fbird2glass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davep%2Fbird2glass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davep%2Fbird2glass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davep%2Fbird2glass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davep","download_url":"https://codeload.github.com/davep/bird2glass/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248215191,"owners_count":21066621,"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":["converter","exporter","markdown","obsidian","obsidian-md","python","python3","twitter"],"created_at":"2024-11-03T17:00:36.717Z","updated_at":"2026-02-10T01:03:28.515Z","avatar_url":"https://github.com/davep.png","language":"Python","funding_links":["https://ko-fi.com/davepearson"],"categories":[],"sub_categories":[],"readme":"# bird2glass\n\n## Introduction\n\nThis is a simple command line tool that can be used to turn a Twitter\narchive into an Obsidian Vault.\n\n\u003e [!NOTE]\n\u003e This code was written while working with a Twitter archive created in\n\u003e 2022, in the days before Twitter had the new owner. I've since stopped\n\u003e using Twitter and have no idea if the form of the archive is the same.\n\n![Graph view of my Tweets](https://raw.githubusercontent.com/davep/bird2glass/refs/heads/main/imgs/bird2glass.png)\n\n## Installing\n\n### pipx\n\nThe package can be installed using [`pipx`](https://pypa.github.io/pipx/):\n\n```sh\n$ pipx install bird2glass\n```\n\n### Homebrew\n\nThe package is available via Homebrew. Use the following commands to install:\n\n```sh\n$ brew tap davep/homebrew\n$ brew install bird2glass\n```\n\n## Usage\n\n### Prepare for the conversion\n\n1. Extract your Twitter archive into a directory.\n2. Create a directory that will become the vault.\n\n### Do the conversion\n\n```sh\nbird2glass tweets-file obsidian-vault\n```\n\nwhere `tweets-file` is the file that contains all of your tweets (this\nshould be `tweets.js` within the extracted directory) and `obsidian-vault`\nis the directory you created that will be the Obsidian Vault.\n\n## Notes and assumptions\n\nThis tool was built in part as an experiment in what can be done with\nObsidian, in part for fun, and fully for my own needs. As such there might\nbe assumptions and design decisions in here that won't match what you need.\nUpdates to make the code more general are welcome; likewise hacking it to\nmake it work \"just so\" for you is encouraged.\n\nSome things to note:\n\n- Everything relating to hashtags is left to Obsidian's understanding of\n  hashtags. I don't know if Twitter and Obsidian's \"specification\" for a\n  hashtag are the same, but I'm working on the assumption they are.\n- Every single tweet is turned into its own Markdown file. If you tweeted a\n  lot, expect a *lot* of files to be created.\n- Back in the day, before you could attach media to tweets, I used TwitPic a\n  lot. This tool attempts to detect TwitPic images and tries to embed them\n  using an `iframe`.\n- Where attached media is available and easy to work out, it is stored in\n  the vault as an attachment.\n- Currently actual proper videos aren't stored in the archive from Twitter\n  and so aren't easy to grab and handle; this means some video media will be\n  missing. I hope to work on this some more in the future (I seldom attached\n  videos so it's not a huge issue for me).\n- This only pulls in Tweets, not DMs, Periscopes, Circles, Moments, etc. I\n  might expand it in the future.\n\n## Getting help\n\nIf you need help please feel free to [raise an\nissue](https://github.com/davep/bird2glass/issues).\n\n[//]: # (README.md ends here)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavep%2Fbird2glass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavep%2Fbird2glass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavep%2Fbird2glass/lists"}