{"id":15483370,"url":"https://github.com/hackergrrl/latest-tweets","last_synced_at":"2025-09-13T16:31:22.511Z","repository":{"id":44163871,"uuid":"44933521","full_name":"hackergrrl/latest-tweets","owner":"hackergrrl","description":":bird: Get a JSON array of a Twitter user's latest tweets -- no Twitter API required!","archived":false,"fork":false,"pushed_at":"2022-12-08T06:34:32.000Z","size":138,"stargazers_count":16,"open_issues_count":8,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-30T04:48:46.502Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hackergrrl.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}},"created_at":"2015-10-25T22:44:49.000Z","updated_at":"2023-11-29T10:48:09.000Z","dependencies_parsed_at":"2023-01-24T18:45:50.285Z","dependency_job_id":null,"html_url":"https://github.com/hackergrrl/latest-tweets","commit_stats":null,"previous_names":["noffle/latest-tweets"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/hackergrrl/latest-tweets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackergrrl%2Flatest-tweets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackergrrl%2Flatest-tweets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackergrrl%2Flatest-tweets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackergrrl%2Flatest-tweets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hackergrrl","download_url":"https://codeload.github.com/hackergrrl/latest-tweets/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackergrrl%2Flatest-tweets/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274992703,"owners_count":25387190,"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","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-02T05:14:27.787Z","updated_at":"2025-09-13T16:31:22.183Z","avatar_url":"https://github.com/hackergrrl.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# latest-tweets\n\n\u003e get a JSON array of a Twitter user's latest tweets -- no Twitter API required!\n\n## unmaintained\n\nI'm no longer actively maintaining this module. The approach this module uses (parsing the raw HTML) is prone to break often, as Twitter changes their website layout somewhat frequently. I'm happy to merge PRs or give away the module to someone interested in maintaining it, but won't be providing ongoing support.\n\n## background\n\nBased on the [Perl implementation](http://perlmonks.org/?node_id=1039382) by\n[ciderpunx](http://perlmonks.org/?node_id=373188).\n\nThis was written to be used in Node, but it embeds a CORS proxy url so you can\nuse it without any configuration in the browser using e.g.\n[browserify](https://github.com/substack/node-browserify).\n\n## usage\n\n```js\nvar latestTweets = require('latest-tweets')\n\nlatestTweets('noffle', true, function (err, tweets) {\n  console.log(tweets)\n})\n```\n\nThis will output an array of objects:\n\n```js\n[ { url: 'https://twitter.com/noffle/status/700514938750521344',\n    content: 'We worry about what others think of us when we don\\'t know what we think of ourselves.',\n    date: 'Fri Feb 19 2016 02:59:10 GMT+0100 (CET)' },\n    username: '@noffle',\n    fullname: 'Stephen Whitmore',\n    image: 'https://imageurl.com/image_id_1',\n    mentions: [ '@twitteruser1', '@twitteruser2' ],\n    hashtags: [ '#hastag1', '#hashtag2' ],\n    links: [ 'http://a-link.com' ]\n  { url: 'https://twitter.com/noffle/status/727096493543317504',\n    content: 'API tokens are awful and don\\'t let anybody tell you otherwise.',\n    date: 'Mon May 02 2016 11:24:47 GMT+0200 (CEST)' },\n    username: '@noffle',\n    fullname: 'Stephen Whitmore',\n    image: 'https://imageurl.com/image_id_2',\n    mentions: [],\n    hashtags: [],\n    links: []\n  ...\n```\n\n## api\n\n```js\nvar latestTweets = require('latest-tweets')\n```\n\n### latestTweets(username, skipPinnedTweets, cb(err, tweets))\n\nSpecify a `username` of the timeline you want and whether or not you want to skip pinned tweets. The callback `cb` will contain an\noptional error as its first parameter, and an array with the user's latest\ntweets as its second parameter.\n\n## installation\n\n```sh\n$ npm i latest-tweets\n```\n\n## ever-shifting ground\n\nScraping HTML is a foundation upon ever-shifting ground. As Twitter changes\n[what is essentially an unofficial API], things will break. If you notice that\n`latest-tweets` isn't working, please file an issue. Better yet, file a fixing\npull request.\n\n## license\n\nMIT\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackergrrl%2Flatest-tweets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackergrrl%2Flatest-tweets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackergrrl%2Flatest-tweets/lists"}