All Projects → pietroalbini → reddit-place-2017

pietroalbini / reddit-place-2017

Licence: MIT license
Archive of Reddit's r/place data, history and images

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to reddit-place-2017

Login With
Stateless login-with microservice for OAuth
Stars: ✭ 2,301 (+4502%)
Mutual labels:  reddit
Praw
PRAW, an acronym for "Python Reddit API Wrapper", is a python package that allows for simple access to Reddit's API.
Stars: ✭ 2,675 (+5250%)
Mutual labels:  reddit
find-song
Song recognition for Reddit
Stars: ✭ 29 (-42%)
Mutual labels:  reddit
Downloaderforreddit
The Downloader for Reddit is a GUI application with some advanced features to extract and download submitted content from reddit.
Stars: ✭ 208 (+316%)
Mutual labels:  reddit
Beam
Beam: the open source Reddit client for iOS
Stars: ✭ 217 (+334%)
Mutual labels:  reddit
Reaper
Social media scraping / data collection tool for the Facebook, Twitter, Reddit, YouTube, Pinterest, and Tumblr APIs
Stars: ✭ 240 (+380%)
Mutual labels:  reddit
Unim.press
A Reddit front-page reader in the style of The New York Times.
Stars: ✭ 199 (+298%)
Mutual labels:  reddit
ac-react-reddit
A Reddit client built with React.js, next.js and styled-components. https://ac-react-reddit.herokuapp.com
Stars: ✭ 38 (-24%)
Mutual labels:  reddit
Solarized Everything Css
A collection of Solarized user-stylesheets for...everything?
Stars: ✭ 219 (+338%)
Mutual labels:  reddit
vreddit-mirror-bot
🎥 Reddit bot that mirrors videos hosted on the native Reddit player to Gfycat and Streamable.
Stars: ✭ 23 (-54%)
Mutual labels:  reddit
Ripme
Downloads albums in bulk
Stars: ✭ 2,748 (+5396%)
Mutual labels:  reddit
Reddift
Swift Reddit API Wrapper
Stars: ✭ 215 (+330%)
Mutual labels:  reddit
Graw
Golang Reddit API Wrapper
Stars: ✭ 251 (+402%)
Mutual labels:  reddit
Media Scraper
Scrapes all photos and videos in a web page / Instagram / Twitter / Tumblr / Reddit / pixiv / TikTok
Stars: ✭ 206 (+312%)
Mutual labels:  reddit
crypto-subreddits-cli
👽 Track Cryptocurrency Subreddits On The Command Line 👽
Stars: ✭ 24 (-52%)
Mutual labels:  reddit
Meme api
Summon a random meme at will
Stars: ✭ 202 (+304%)
Mutual labels:  reddit
Reeddit
Minimal, elastic Reddit reader web-app client
Stars: ✭ 235 (+370%)
Mutual labels:  reddit
Snooful
The most complete bot for moderation, utility, and fun in Reddit Chat.
Stars: ✭ 13 (-74%)
Mutual labels:  reddit
refined.blog
curated list of personal blogs
Stars: ✭ 144 (+188%)
Mutual labels:  archive
AAPB2
American Archive of Public Broadcasting
Stars: ✭ 17 (-66%)
Mutual labels:  archive

Archive of Reddit's r/place

This repository contains an archive of the artwork created by Reddit's r/place between April 1st, 2017 and April 3rd, 2017. The repository contains a binary diff of all the changes (with a resolution of 5 seconds), and a Python script to extract the frames from the diff.

There is an empty canvas.
You may place a tile upon it, but you must wait to place another.
Individually you can create something.
Together you can create something more.

The script is maintained by Pietro Albini and released under the MIT license. Huge thanks to:

Obtaining the images from the diff

The script requires Python 3 and pillow installed. If you use Ubuntu or Debian you can install all the dependencies with this command:

$ sudo apt install python3 python3-pillow

Then, after you cloned the repository, you can use the script to generate the frames you want from the binary diff contained in the repo. Also, a Makefile is provided for the most common operations:

Generate the final artwork:
$ make latest

Generate the history of the canvas with a 5 seconds resolution:
$ make all

Generate the history of the canvas with a 1 hour resolution:
$ make hourly

All the resulting files will be located in the build/ directory. If you need more control over what's built you should use directly the script.

Usage of the script

The script requires the path to the binary diff (which can be either uncompressed or gzipped) as the first argument, and then the action you want to do.

If you only want to get the latest frame, you need to provide the --latest flag:

$ python3 generate.py data/diff.gz --latest

If you want to get an history of the canvas, you can use the --interval SECONDS with the number of seconds between the snapshots:

$ python3 generate.py data/diff.gz --interval 5  # Every 5 seconds
$ python3 generate.py data/diff.gz --interval 100  # Every 10 minutes
$ python3 generate.py data/diff.gz --interval 3600  # Every hour

If you need a snapshot at a specific timestamp instead, you can use the --timestamp TIMESTAMP flag (or multiple ones if you need more timestamps):

$ python3 generate.py data/diff.gz --timestamp 1491001598
$ python3 generate.py data/diff.gz --timestamp 1491001598 --timestamp 1491134887

If you want to get a list of all the available timestamps, you can use the --list-timestamps flag:

$ python3 generate.py data/diff.gz --list-timestamps

Also, the script supports some flags to customize its behavior. If you want the images to be stored in a different directory you can use the --output-dir flag:

$ python3 generate.py data/diff.gz --output-dir result/ --latest

You can also tell the script to output the images in a different format with the --format flag (you can use all the formats supported by pillow):

$ python3 generate.py data/diff.gz --format gif --latest

If you want to limit the area you're interested in, you can use the --area flag, which follows the format x1,y1:x2,y2. For example, to get a 200x200 square of the bottom right corner (The Blue Corner) you can use:

$ python3 generate.py data/diff.gz --area 800,800:999,999 --latest

There is also the --pixel-size flag to generate an higher resolution image. For example, if you want to double the resolution you can use:

$ python3 generate.py data/diff.gz --pixel-size 2 --latest
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].