Skip to main content

pyMADOC

Python package to download and combine parts of MADOC dataset from Zenodo (record: 14637314). The MADOC dataset contains social media posts from multiple platforms (Reddit, Voat, Bluesky, and Koo), making it easy to study cross-platform content and community dynamics.

Features

  • Easy download of platform-specific data files
  • Automatic pairing of Reddit-Voat community data
  • Both Python API and Command Line Interface
  • Support for direct DataFrame loading
  • Progress bars for downloads
  • Efficient parquet file format

Installation

pip install pymadoc

Usage

As a Python Package

from pymadoc import list_available_data, download_file, download_community_pair

# List available platforms and communities
data_info = list_available_data()
print(data_info["platforms"])  # ['reddit', 'voat', 'bluesky', 'koo']
print(data_info["communities"])  # ['CringeAnarchy', 'fatpeoplehate', ...]

# Download a specific file
# For Reddit/Voat, specify both platform and community
file_path = download_file("reddit", community="funny", output_dir="data")
# For Bluesky/Koo, specify only platform
file_path = download_file("bluesky", output_dir="data")

# Load directly as DataFrame
df = download_file("reddit", community="funny", as_dataframe=True)

# Download and combine Reddit-Voat community pair
# As files
reddit_file, voat_file = download_community_pair("funny", output_dir="data")
# As combined DataFrame
combined_df = download_community_pair("funny", as_dataframe=True)

Command Line Interface

List available platforms and communities:

pymadoc list

Download a specific file:

# Reddit/Voat (requires community)
pymadoc download reddit --community funny --output-dir data
# Bluesky/Koo
pymadoc download bluesky --output-dir data

Download Reddit-Voat community pair:

pymadoc pair funny --output-dir data

Available Data

Platforms

  • Reddit: Community-specific posts and comments
  • Voat: Community-specific posts and comments
  • Bluesky: Platform-wide posts
  • Koo: Platform-wide posts

Communities (Reddit/Voat only)

  • CringeAnarchy
  • fatpeoplehate
  • funny
  • gaming
  • gifs
  • greatawakening
  • KotakuInAction
  • MensRights
  • milliondollarextreme
  • pics
  • technology
  • videos

Data Format

All files are stored in parquet format for efficient storage and fast loading. Each file contains the following columns:

  • Platform-specific post/comment IDs
  • Content text
  • Timestamps
  • User information
  • Engagement metrics

Requirements

  • Python 3.6 or higher
  • pandas
  • requests
  • tqdm

Citation

If you use this package or the MADOC dataset in your research, please cite:

@dataset{madoc_dataset,
    title = {MADOC: Multi-platform Archive of Digital Online Content},
    author = {Tomašević, Aleksandar},
    year = {2024},
    publisher = {Zenodo},
    doi = {10.5281/zenodo.14637314}
}

License

MIT License

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Release files for pymadoc 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pymadoc 0.1.1
File Size Uploaded
pymadoc-0.1.1.tar.gz 8.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pymadoc 0.1.1
File Interpreter ABI Platform
pymadoc-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 17.0 kB

Release files / pymadoc-0.1.1.tar.gz

Download URL pymadoc-0.1.1.tar.gz
Size 8.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9bec577a185a82ecc1b7b95342f51b18488e3ca3dc6b49a817425b3968272742
BLAKE2b-256 checksum
How to use checksums
b8bcdb36b4cf6136a48fdd7c0ee3437b6dfd0132f1db785c11c47d947540b128
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.12

Release files / pymadoc-0.1.1-py3-none-any.whl

Download URL pymadoc-0.1.1-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e1f68942cdcb58fe53bc039e0c5330faedd3d2bcb34bd6da58100fc351a35e4e
BLAKE2b-256 checksum
How to use checksums
7041e419bb3b672fa46b2b58d45bb49946d0079963bedc9182ad3c2ad46f1fbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page