• Stars
    star
    1,335
  • Rank 34,952 (Top 0.7 %)
  • Language
    JavaScript
  • License
    GNU General Publi...
  • Created almost 11 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Core Python Web Archiving Toolkit for replay and recording of web archives

Webrecorder pywb 2.7

https://raw.githubusercontent.com/webrecorder/pywb/main/pywb/static/pywb-logo.png

Web Archiving Tools for All

View the full pywb documentation

pywb is a Python (2 and 3) web archiving toolkit for replaying web archives large and small as accurately as possible. The toolkit now also includes new features for creating high-fidelity web archives.

This toolset forms the foundation of Webrecorder project, but also provides a generic web archiving toolkit that is used by other web archives, including the traditional "Wayback Machine" functionality.

New Features

The 2.x release included a major overhaul of pywb and introduces many new features, including the following:

  • Dynamic multi-collection configuration system with no-restart updates.
  • New recording capability to create new web archives from the live web or other archives.
  • Componentized architecture with standalone Warcserver, Recorder and Rewriter components.
  • Support for Memento API aggregation and fallback chains for querying multiple remote and local archival sources.
  • HTTP/S Proxy Mode with customizable certificate authority for proxy mode recording and replay.
  • Flexible rewriting system with pluggable rewriters for different content-types.
  • Standalone, modular client-side rewriting system (wombat.js) to handle most modern web sites.
  • Improved 'calendar' query UI with incremental loading, grouping results by year and month, and updated replay banner.
  • Extensible UI customizations system for modifying all aspects of the UI.
  • Robust access control system for blocking or excluding URLs, by prefix or by exact match.
  • New in 2.6: Access Control embargo and http-header control access settings.
  • New in 2.6: Support for localization and multi-language deployment.
  • New in 2.7: New banner/calendar UI written in Vue, with interactive timeline and easier theming of colors and logo via config.yaml.

Please see the full documentation for more detailed info on all these features.

Installation for Deployment

To install pywb for usage, you can use:

`shell pip install pywb `

Note: depending on your Python installation, you may have to use pip3 instead of pip.

Installation from local copy

`shell git clone https://github.com/webrecorder/pywb `

To install from a locally cloned copy, install with pip install -e . or python setup.py install.

To run tests, we recommend installing pip install tox tox-current-env and then running tox --current-env to test in your current Python environment.

To Build docs locally, run: cd docs; make html. (The docs will be built in ./_build/html/index.html)

Running

After installation, you can run pywb or wayback.

Consult the local or online docs for latest usage and configuration details.

Documentation

The pywb documentation is extensive. Some links to a few key guides:

Contributions & Bug Reports

Users are encouraged to fork and contribute to this project to keep improving web archiving tools. Please consult the contributing guide for information on how to contribute to pywb.

More Repositories

1

archiveweb.page

A High-Fidelity Web Archiving Extension for Chrome and Chromium based browsers!
JavaScript
787
star
2

replayweb.page

Serverless replay of web archives directly in the browser
TypeScript
678
star
3

browsertrix-crawler

Run a high-fidelity browser-based crawler in a single Docker container
TypeScript
547
star
4

webrecorder-player

Webrecorder Player for Desktop (OSX/Windows/Linux). (Built with Electron + Webrecorder)
JavaScript
423
star
5

warcio

Streaming WARC/ARC library for fast web archive IO
Python
345
star
6

webrecorder-desktop

Webrecorder Desktop App!
JavaScript
201
star
7

browsertrix

Browsertrix is the hosted, high-fidelity, browser-based crawling service from Webrecorder designed to make web archiving easier and more accessible for all!
TypeScript
158
star
8

specs

Specifications developed and maintained by the Webrecorder community.
HTML
117
star
9

wabac.js

wabac.js - Web Archive Browsing Augmentation Client
JavaScript
94
star
10

browsertrix-old

Browsertrix: Containerized High-Fidelity Browser-Based Automated Crawling + Behavior System
Python
87
star
11

wombat

Wombat.js client-side rewriting library
JavaScript
81
star
12

warcit

Convert Directories, Files and ZIP Files to Web Archives (WARC)
Python
79
star
13

har2warc

Convert HTTP Archive (HAR) -> Web Archive (WARC) format
Python
42
star
14

public-web-archives

A listing of world wide web archives, for humans and machines using Web Archive Manifest (WAM) yaml format
Python
40
star
15

py-wacz

Python
32
star
16

warcio.js

JS Streaming WARC IO optimized for Browser and Node
TypeScript
30
star
17

browsertrix-behaviors

Automated behaviors that run in browser to interact with complex sites automatically. Used by ArchiveWeb.page and Browsertrix Crawler.
TypeScript
30
star
18

archiveweb.page-site

The ArchiveWeb.page Site
HTML
26
star
19

wsgiprox

Python WSGI Middleware for adding HTTP/S proxy support to any WSGI Application
Python
22
star
20

cdxj-indexer

CDXJ Indexing of WARC/ARCs
Python
21
star
21

web-replay-gen

Static Site Generator for Viewing Web Archives (in WACZ) format
JavaScript
19
star
22

oembed.link

A Cloudflare Worker to render embeds on a single page using oEmbed
JavaScript
14
star
23

dat-share

A prototype server to swarm multiple DATs for Webrecorder
JavaScript
12
star
24

pywb-remote-browsers

Docker Compose based system for running remote browsers (including Flash and Java support) connected to web archives
Python
12
star
25

markdown-to-respec

A Github Action for turning Markdown into ReSpec HTML
Python
12
star
26

behaviors

Webrecorder Automated In-Page Behavior Framework
JavaScript
11
star
27

dat-s3-hybrid-storage

A S3 hybrid storage interface for dat and hyperdrive
JavaScript
11
star
28

express.archiveweb.page

ArchiveWeb.page Express!
JavaScript
8
star
29

wacz-auth-spec

Specification for authentication and creating signed WACZ Files
8
star
30

platform-spec

Discussion of the broader Webrecorder platform spec
7
star
31

autobrowser

Python
7
star
32

authsign

Python
7
star
33

example-webarchive

This is an example web archive using the ReplayWebPage component.
HTML
6
star
34

save-tweet-now

Save Tweet Now (to IPFS)
JavaScript
6
star
35

browserkube

Webrecorder Kubernetes-native Browser Ochestration
JavaScript
5
star
36

webrecorder-tests

QA tests for webrecorder player (WORK IN PROGRESS)
Python
5
star
37

autoscalar

Webrecorder Auto Archiver for Scalar Prototype
Python
5
star
38

kubecaptures-backend

JavaScript
5
star
39

awp-sw

JavaScript
5
star
40

browsertrix-browser-base

Dockerfile
5
star
41

wacz-uploader

A straightforward single page application for uploading your WACZ archives to IPFS
JavaScript
5
star
42

wabac-cors-proxy

CORS proxy for use with wabac.js-based tools
JavaScript
4
star
43

ipfs-composite-files

CLI and library for create composite files in IPFS
JavaScript
3
star
44

wabac.js-1.0

JavaScript
3
star
45

wacz2car

Conver WACZ files to CAR files for uploading to IPFS.
JavaScript
3
star
46

sup-digital-web-archives

A collection of self-hostable web archive built for Stanford University Press (SUP)
HTML
3
star
47

proxy

(Deprecated) Old Webrecorder proxy component based on mitmproxy
Python
2
star
48

community

Webrecorder Community Info
2
star
49

kubecaptures-ui

JavaScript
2
star
50

mapbox-driver

Browsertrix Crawler driver for Mapbox maps
JavaScript
2
star
51

dashboard-custom-drivers

Custom drivers for browsertrix crawler
JavaScript
1
star
52

functional-spec

A description of the interface and functionalities of webrecorder.io
1
star