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.
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pymadoc-0.1.1.tar.gz | 8.3 kB | Without provenance | Details for pymadoc-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pymadoc-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for pymadoc-0.1.1-py3-none-any.whl |
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
|
Security for pymadoc 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.