Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

claromes/waybacktweets

Repository files navigation

Wayback Tweets

Retrieves archived tweets CDX data from the Wayback Machine, performs necessary parsing (see Field Options), and saves the data in HTML, for easy viewing of the tweets using the iframe tags, CSV, and JSON formats.

Installation

It is compatible with Python versions 3.10 and above. See installation options.

pipx install waybacktweets

CLI

Usage:
waybacktweets [OPTIONS] USERNAME
USERNAME: The Twitter username without @

Options:
-c, --collapse [urlkey|digest|timestamp:xx]
Collapse results based on a field, or a
substring of a field. XX in the timestamp
value ranges from 1 to 14, comparing the
first XX digits of the timestamp field. It
is recommended to use from 4 onwards, to
compare at least by years.
-f, --from DATE Filtering by date range from this date.
Format: YYYYmmdd
-t, --to DATE Filtering by date range up to this date.
Format: YYYYmmdd
-l, --limit INTEGER Query result limits.
-rk, --resumption_key TEXT Allows for a simple way to scroll through
the results. Key to continue the query from
the end of the previous query.
-mt, --matchtype [exact|prefix|host|domain]
Results matching a certain prefix, a certain
host or all subdomains.
-v, --verbose Shows the log.
--version Show the version and exit.
-h, --help Show this message and exit.

Examples:
waybacktweets jack
waybacktweets --from 20200305 --to 20231231 --limit 300 --verbose jack

Repository:
https://github.com/claromes/waybacktweets

Documentation:
https://waybacktweets.claromes.com

Module

from waybacktweets import WaybackTweets, TweetsParser, TweetsExporter

USERNAME = "jack"

api = WaybackTweets(USERNAME)
archived_tweets = api.get()

if archived_tweets:
field_options = [
"archived_urlkey",
"archived_timestamp",
"parsed_archived_timestamp",
"archived_tweet_url",
"parsed_archived_tweet_url",
"original_tweet_url",
"parsed_tweet_url",
"available_tweet_text",
"available_tweet_is_RT",
"available_tweet_info",
"archived_mimetype",
"archived_statuscode",
"archived_digest",
"archived_length",
"resumption_key",
]

parser = TweetsParser(archived_tweets, USERNAME, field_options)
parsed_tweets = parser.parse()

exporter = TweetsExporter(parsed_tweets, USERNAME, field_options)
exporter.save_to_csv()
exporter.save_to_json()
exporter.save_to_html()

Web App

A prototype written in Python with the Streamlit framework and hosted on Streamlit Cloud.

Important: Starting from version 1.0, the web app will no longer receive all updates from the official package. To access all features, prefer using the package from PyPI.

Documentation

Acknowledgements

  • Tristan Lee (Bellingcat's Data Scientist) for the idea.
  • Jessica Smith (Snowflake's Community Growth Specialist) and Streamlit team for the additional server resources on Streamlit Cloud.
  • OSINT Community for recommending the package and the application.

License

GPL-3.0

About

Archived tweets from the Wayback Machine

Topics

Resources

Readme

License

GPL-3.0 license

Stars

Watchers

Forks

Contributors