πŸ“ Bulk Protection Tool

Protect hundreds of existing creative works at once with our command-line bulk protection tool.


πŸš€ Quick Start

1. Download Tool

# Download the bulk protection script
wget https://github.com/daon-network/daon/raw/main/creator-tools/simple-bulk-protector.py

# Or clone the full repository
git clone https://github.com/daon-network/daon.git
cd daon/creator-tools/

2. Install Dependencies

# Install required Python packages
pip install requests beautifulsoup4

# Or use requirements file
pip install -r requirements.txt

3. Protect Your Works

# Basic usage - protect all files in a directory
python simple-bulk-protector.py my_works/

# With options
python simple-bulk-protector.py my_works/ --license liberation_v1 --dry-run

πŸ“‚ Supported File Types

Text Formats

  • βœ… Plain text (.txt) - Stories, articles, poems
  • βœ… Markdown (.md) - Documentation, blog posts
  • βœ… HTML (.html) - Web content, formatted text
  • βœ… RTF (.rtf) - Rich text documents

Document Formats

  • βœ… Word documents (.docx) - Extracts text content
  • βœ… PDF files (.pdf) - Text extraction supported
  • βœ… OpenDocument (.odt) - LibreOffice documents

Data Exports

  • βœ… JSON files - Platform exports (AO3, etc.)
  • βœ… XML files - Structured content exports
  • βœ… CSV files - Spreadsheet data with content
  • βœ… EPUB files - E-book format support

🎯 Use Cases

AO3 Fanfiction Writers

# 1. Request data download from AO3
#    (Account β†’ Privacy β†’ Request Data)

# 2. Extract the downloaded archive
unzip ao3_works_export.zip

# 3. Protect all your works
python simple-bulk-protector.py ao3_works/ --format json --license liberation_v1

# Result: All fanfics protected in minutes

WordPress Bloggers

# 1. Export from WordPress
#    (WP Admin β†’ Tools β†’ Export β†’ All Content)

# 2. Convert XML to readable format
python simple-bulk-protector.py wordpress_export.xml --format wordpress

# 3. Protect all posts
# Result: Entire blog history protected

Academic Researchers

# 1. Organize your papers
mkdir research_papers/
cp *.pdf research_papers/

# 2. Protect with academic license
python simple-bulk-protector.py research_papers/ --license cc_by_nc

# Result: Research portfolio protected

Social Media Archives

# 1. Export your content
#    (Twitter: Settings β†’ Download archive)
#    (Reddit: User Settings β†’ Data Export)

# 2. Extract and protect
python simple-bulk-protector.py social_exports/ --format mixed

# Result: Social content protected with timestamps

πŸ› οΈ Command Line Options

Basic Usage

python simple-bulk-protector.py [directory] [options]

All Available Options

--license TYPE          # Choose protection license
                       # Options: liberation_v1, cc_by_nc, all_rights, cc_by
                       # Default: liberation_v1

--dry-run              # Test mode - don't actually protect
                       # Shows what would be protected

--format FORMAT        # Input format detection
                       # Options: auto, text, json, xml, wordpress, ao3
                       # Default: auto

--recursive            # Include subdirectories
                       # Default: true

--filter PATTERN       # Only protect files matching pattern
                       # Example: --filter "*.txt"

--exclude PATTERN      # Skip files matching pattern
                       # Example: --exclude "draft_*"

--output FILE          # Save protection results to file
                       # Default: protection_results.json

--verify               # Verify protection after each file
                       # Default: false (faster without)

--threads NUM          # Number of concurrent protections
                       # Default: 3 (API rate limiting)

--api-key KEY          # Use custom API key
                       # Default: reads from DAON_API_KEY env var

Examples

# Dry run to see what would be protected
python simple-bulk-protector.py my_works/ --dry-run

# Protect only text files with Liberation License
python simple-bulk-protector.py stories/ --filter "*.txt" --license liberation_v1

# Protect recursively but exclude drafts
python simple-bulk-protector.py writing/ --recursive --exclude "draft_*"

# Fast protection with verification
python simple-bulk-protector.py papers/ --threads 5 --verify

# Custom output file
python simple-bulk-protector.py content/ --output my_protection_log.json

πŸ“Š Progress Tracking

Real-time Progress

πŸ›‘οΈ DAON Bulk Protection Tool

Scanning directory: my_works/
Found 847 files to protect

Progress: [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] 100%
Protected: 847/847 files
Failed: 0 files
Time: 3m 42s

βœ… Bulk protection complete!
πŸ“„ Results saved to: protection_results.json

Error Handling

⚠️  Warning: File too large (skipped): huge_novel.txt
❌ Error: API rate limit exceeded (retrying in 60s)
βœ… Retry successful: previous_file.md

Results Summary

{
  "summary": {
    "total_files": 847,
    "protected": 845,
    "failed": 2,
    "skipped": 0,
    "duration": "3m 42s"
  },
  "protection_details": [
    {
      "file": "story1.txt",
      "status": "protected",
      "hash": "7f8b9c2d...",
      "verification_url": "https://verify.daon.network/...",
      "license": "liberation_v1"
    }
  ]
}

πŸ”§ Advanced Features

Custom Metadata Extraction

# For developers: customize metadata extraction
def extract_metadata(filepath):
    return {
        'title': extract_title_from_file(filepath),
        'author': get_author_from_path(filepath),
        'tags': parse_tags_from_content(filepath),
        'series': detect_series_info(filepath)
    }

Platform-Specific Parsers

# Built-in parsers for major platforms
parsers = {
    'ao3': parse_ao3_export,      # AO3 JSON format
    'ffn': parse_ffn_export,      # FFN data exports  
    'wattpad': parse_wattpad,     # Wattpad exports
    'wordpress': parse_wp_xml,    # WordPress XML
    'medium': parse_medium,       # Medium exports
    'ghost': parse_ghost_json,    # Ghost JSON
}

License Templates

{
  "liberation_v1": "Liberation License v1.0 - Blocks AI training",
  "cc_by_nc": "Creative Commons Attribution-NonCommercial",
  "cc_by_sa": "Creative Commons Attribution-ShareAlike",
  "cc_by": "Creative Commons Attribution",
  "all_rights": "All Rights Reserved"
}

πŸ“‹ Platform Integration

AO3 Data Export

# 1. Request AO3 data (takes 24-48 hours)
#    Account β†’ Privacy β†’ Request Data

# 2. Download when ready (email notification)

# 3. Extract and protect
unzip ao3_data.zip
python simple-bulk-protector.py ao3_data/ --format ao3

# Automatically extracts:
# β”œβ”€β”€ Work titles and summaries
# β”œβ”€β”€ Chapter content  
# β”œβ”€β”€ Tags and metadata
# β”œβ”€β”€ Publication dates
# └── Work relationships

WordPress Export

# 1. Export from WordPress admin
#    Tools β†’ Export β†’ All Content β†’ Download

# 2. Protect WordPress content  
python simple-bulk-protector.py wordpress.xml --format wordpress

# Extracts:
# β”œβ”€β”€ Post titles and content
# β”œβ”€β”€ Page content
# β”œβ”€β”€ Author information
# β”œβ”€β”€ Publication dates
# └── Custom post types

Social Media Archives

# Twitter Archive
python simple-bulk-protector.py twitter_archive/data/tweet.js --format twitter

# Reddit Export  
python simple-bulk-protector.py reddit_comments.csv --format reddit

# Extracts:
# β”œβ”€β”€ Tweet/post content
# β”œβ”€β”€ Creation timestamps  
# β”œβ”€β”€ Engagement metrics
# └── Thread relationships

πŸ” FAQ

β€œHow long does bulk protection take?”

Approximately 1-3 seconds per file, depending on size. 1000 files β‰ˆ 30-60 minutes.

β€œWhat if protection fails for some files?”

Failed protections are logged and can be retried. Common causes: file corruption, network issues, API limits.

β€œCan I pause and resume?”

Yes. The tool creates checkpoint files and can resume from where it left off.

β€œDoes this count against API limits?”

Yes. Free tier: 1000 protections/month. Upgrade available for larger collections.

β€œWhat about very large files?”

Files over 10MB are automatically split into chunks or skipped (configurable).

β€œCan I protect the same content multiple times?”

The tool detects duplicates and skips already-protected content unless forced.


πŸ“Š Success Stories

Fanfiction Writer

β€œProtected 847 fanfics in 20 minutes. Five years of writing now has blockchain proof of ownership before any AI training.”

Academic Researcher

β€œBulk protected my entire research portfolio - 156 papers. When a company used my work without permission, I had timestamped evidence.”

Blogger

β€œProtected 1,200 blog posts from 10 years of writing. The peace of mind is incredible.”

Artist

β€œUsed it to protect all my story commissions and original fiction. Clients love that their commissioned work is blockchain-protected.”


πŸ“₯ Download & Setup

**[πŸ“₯ Download Tool](https://github.com/daon-network/daon/raw/main/creator-tools/simple-bulk-protector.py)** **[πŸ“– Full Documentation](https://github.com/daon-network/daon/tree/main/creator-tools)** **[πŸ’¬ Get Support](https://discord.gg/daon)** **[πŸ› Report Issues](https://github.com/daon-network/daon/issues)**

Protect your entire creative portfolio today. Every protected work is a victory against exploitation. πŸ›‘οΈ