Python package & CLI tool that interfaces with the Wayback Machine API

pypi Contributions Welcome Downloads GitHub lastest commit PyPI - Python Version

----------------------------------------------------------------------------------------------------------------------------------------------- ## ⭐️ Introduction Waybackpy is a [Python package](https://www.udacity.com/blog/2021/01/what-is-a-python-package.html) and a CLI tool that interfaces with the Wayback Machine API. Wayback Machine has 3 client side APIs. - Save API - Availability API - CDX API All three of these can be accessed by waybackpy. ### 🏗 Installation Using [pip](https://en.wikipedia.org/wiki/Pip_(package_manager)): ```bash pip install waybackpy ``` Install directly from GitHub: ```bash pip install git+https://github.com/akamhy/waybackpy.git ``` ### Docker Image Docker Hub : Docker image is automatically updated on every release by [Regulary and Automatically Updated Docker Images](https://github.com/cybersecsi/RAUDI) (RAUDI). RAUDI is a tool by SecSI (), an Italian cybersecurity startup. ### Usage #### As a Python package ##### Save API aka SavePageNow ```python >>> from waybackpy import WaybackMachineSaveAPI >>> >>> url = "https://en.wikipedia.org/wiki/Multivariable_calculus" >>> user_agent = "Mozilla/5.0 (Windows NT 5.1; rv:40.0) Gecko/20100101 Firefox/40.0" ``` ##### Availability API ```python >>> from waybackpy import WaybackMachineAvailabilityAPI >>> >>> url = "https://google.com" >>> user_agent = "Mozilla/5.0 (Windows NT 5.1; rv:40.0) Gecko/20100101 Firefox/40.0" >>> >>> availability_api = WaybackMachineAvailabilityAPI(url, user_agent) >>> >>> availability_api.oldest() https://web.archive.org/web/19981111184551/http://google.com:80/ >>> >>> availability_api.newest() https://web.archive.org/web/20220118150444/https://www.google.com/ >>> >>> availability_api.near(year=2010, month=10, day=10, hour=10) https://web.archive.org/web/20101010101708/http://www.google.com/ ``` ```python >>> import waybackpy >>> url = "https://en.wikipedia.org/wiki/Multivariable_calculus" >>> user_agent = "Mozilla/5.0 (Windows NT 5.1; rv:40.0) Gecko/20100101 Firefox/40.0" >>> wayback = waybackpy.Url(url, user_agent) >>> archive = wayback.save() >>> archive.archive_url 'https://web.archive.org/web/20210104173410/https://en.wikipedia.org/wiki/Multivariable_calculus' >>> archive.timestamp datetime.datetime(2021, 1, 4, 17, 35, 12, 691741) >>> oldest_archive = wayback.oldest() >>> oldest_archive.archive_url 'https://web.archive.org/web/20050422130129/http://en.wikipedia.org:80/wiki/Multivariable_calculus' >>> archive_close_to_2010_feb = wayback.near(year=2010, month=2) >>> archive_close_to_2010_feb.archive_url 'https://web.archive.org/web/20100215001541/http://en.wikipedia.org:80/wiki/Multivariable_calculus' >>> wayback.newest().archive_url 'https://web.archive.org/web/20210104173410/https://en.wikipedia.org/wiki/Multivariable_calculus' ``` > Documentation at . #### As a CLI tool ```bash $ waybackpy --save --url "https://en.wikipedia.org/wiki/Social_media" --user_agent "my-unique-user-agent" https://web.archive.org/web/20200719062108/https://en.wikipedia.org/wiki/Social_media $ waybackpy --oldest --url "https://en.wikipedia.org/wiki/Humanoid" --user_agent "my-unique-user-agent" https://web.archive.org/web/20040415020811/http://en.wikipedia.org:80/wiki/Humanoid $ waybackpy --newest --url "https://en.wikipedia.org/wiki/Remote_sensing" --user_agent "my-unique-user-agent" https://web.archive.org/web/20201221130522/https://en.wikipedia.org/wiki/Remote_sensing ``` > CLI documentation is at . ### 🛡 License [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/akamhy/waybackpy/blob/master/LICENSE) Released under the MIT License. See [license](https://github.com/akamhy/waybackpy/blob/master/LICENSE) for details.