ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β πββπΌπΈπ»π βπβππΌβπ βππππΌβππβ β β β β βββ Disney Β· Zootopia βββ β β β β β¦ β§ β β β§ β¦ β β β β Collect β’ Archive β’ Organize β β Your Passion, Preserved Forever β β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π° Judy Hopps Β· Nick Wilde π¦
π ηΉι«δΈζ β’ π Documentation Portal β’ β‘ Quick Start β’ π¨ How It Works
"I implore everyone who sees this, try. Try to make the world a better place. Look inside yourself and recognize that change starts with you."
β Judy Hopps
Collect, organize, and archive your favorite Threads posts about Disney, Zootopia, recipes, and more!
A hobby archival toolkit for Disney fans and content collectors! If you love Zootopia characters, animation discussions, themed recipes, or fan communities, this helps you:
- π Search & Save - Find posts about Judy Hopps, Nick Wilde, and your favorite topics
- π€ AI Organization - Smart sorting helps identify the best matches for your collection
- πΎ Local Archive - Everything saved privately on your computer
- π¨ Media Included - Downloads photos, videos, and attachments automatically
| Interest | Examples |
|---|---|
| π¦ Disney Characters | Zootopia, Judy Hopps, Nick Wilde, character analysis |
| π¨ Fan Content | Cosplay builds, fan art, creative projects |
| π³ Themed Recipes | Pawpsicles, Disney-inspired treats, park food recreations |
| π¬ Animation | Behind-the-scenes, technique discussions, industry news |
| π° Parks & Merch | Disney experiences, collectibles, attraction updates |
π Version 1.0 - December 2025
- β Smart AI Classifier - Local LLM integration for intelligent content sorting
- β GPU Acceleration - Multi-threaded processing for bulk collections (100+ posts/min)
- β Resume Capability - Checkpoint system lets you pause and continue anytime
- β Bilingual Support - Interface available in English and Traditional Chinese (ηΉι«δΈζ)
- β Vision Analysis - Optional image/video content verification
- β False Positive Detection - Smart context understanding (e.g., "Judy" the person vs. character)
π¨ What Makes This Special
Unlike generic scrapers, this tool:
- Understands context - Knows "Nick Wilde" isn't just any Nick
- Privacy-focused - Everything processes locally, no cloud uploads
- Hobby-oriented - Designed for personal collections, not commercial use
- Community-friendly - Respects rate limits and platform guidelines
|
|
Step 1: Installation (Click to expand)
- Python 3.8 or higher
- Threads account for authentication
- GPU recommended (optional, but 6x faster)
π§ Linux
git clone https://github.com/jyusiwong/Threads-Archiver.git
cd Threads-Archiver
apt update && apt install -y libgconf-2-4 libatk1.0-0 libgbm-dev \
libnotify-dev libgdk-pixbuf2.0-0 libnss3 libxss1 libasound2 \
libxtst6 xdg-utils
pip install -r requirements.txt
playwright install chromiumπ macOS
git clone https://github.com/jyusiwong/Threads-Archiver.git
cd Threads-Archiver
xcode-select --install
pip install -r requirements.txt
playwright install chromiumπͺ Windows
git clone https://github.com/jyusiwong/Threads-Archiver.git
cd Threads-Archiver
pip install -r requirements.txt
playwright install chromiumStep 2: Collect Your First Posts
python phase1_search_download.pyWhat happens:
- Opens browser for Threads login (one-time)
- Searches for your topics (Judy Hopps, recipes, etc.)
- Scrolls through results automatically
- Downloads posts + media to your computer
- Saves in organized JSONL format
Configure your interests in the script:
TOPICS = ["Judy Hopps", "Nick Wilde", "Zootopia fan art", "Disney recipes"]
POST_LIMIT = 2000 # Max posts per topicStep 3: AI-Powered Organization (Optional)
First time setup:
.\setup_model.ps1 # Creates AI classifier
python test_classifier.py # Validates accuracyRun the sorter:
python phase2_ai_prefilter.py # Single-threaded
# OR
python phase2_ai_prefilter_multithreaded.py # 6x faster (GPU)Results:
_sorting/[topic]_posts_likely_yes.jsonl- Matches your interests β_sorting/[topic]_posts_uncertain.jsonl- Review theseβ οΈ _sorting/[topic]_posts_likely_no.jsonl- Probably skip β
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#e3f2fd','primaryTextColor':'#0d47a1','primaryBorderColor':'#1976d2','lineColor':'#42a5f5','secondaryColor':'#fff3e0','tertiaryColor':'#f3e5f5','noteBkgColor':'#e8f5e9','noteTextColor':'#1b5e20'}}}%%
graph TB
Start(["π¬ Start Your Collection Journey"])
Search["π Search Topics<br/><small>Judy Hopps, Nick Wilde, etc.</small>"]
Download["π₯ Download Posts<br/><small>Text + Images + Videos</small>"]
Save["πΎ Save Locally<br/><small>JSONL Format</small>"]
AIDecision{"π€ Enable AI Sorting?<br/><small>Optional but Recommended</small>"}
AIProcess["β‘ AI Analysis<br/><small>Context Understanding</small>"]
Relevant["β
Highly Relevant<br/><small>Matches Your Interest</small>"]
Uncertain["β οΈ Uncertain<br/><small>Needs Review</small>"]
NotRelevant["β Not Relevant<br/><small>Low Match Score</small>"]
RawArchive["π Raw Archive<br/><small>All Posts Unsorted</small>"]
End(["π Collection Complete!"])
Start ==> Search
Search ==> Download
Download ==> Save
Save ==> AIDecision
AIDecision -->|"Yes π"| AIProcess
AIDecision -->|"No π"| RawArchive
AIProcess ==> Relevant
AIProcess ==> Uncertain
AIProcess ==> NotRelevant
Relevant ==> End
Uncertain ==> End
NotRelevant ==> End
RawArchive ==> End
style Start fill:#e1f5ff,stroke:#01579b,stroke-width:3px,color:#01579b
style Search fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#1b5e20
style Download fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#e65100
style Save fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px,color:#4a148c
style AIDecision fill:#fff9c4,stroke:#f57f17,stroke-width:3px,color:#f57f17
style AIProcess fill:#e0f2f1,stroke:#00695c,stroke-width:2px,color:#004d40
style Relevant fill:#c8e6c9,stroke:#388e3c,stroke-width:3px,color:#1b5e20
style Uncertain fill:#ffe0b2,stroke:#ef6c00,stroke-width:2px,color:#e65100
style NotRelevant fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:#b71c1c
style RawArchive fill:#e1bee7,stroke:#7b1fa2,stroke-width:2px,color:#4a148c
style End fill:#b2ebf2,stroke:#006064,stroke-width:3px,color:#006064
classDef processNode fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#0d47a1
classDef resultNode fill:#f1f8e9,stroke:#689f38,stroke-width:2px,color:#33691e
| Phase | Purpose | Output |
|---|---|---|
| Phase 1 | Collection | Raw posts + media in Interested_Event_Archive/ |
| Phase 2 | Organization | Sorted posts in _sorting/ by relevance |
# phase1_search_download.py - What to collect
class Config:
TOPICS = [
"Judy Hopps", # Zootopia character
"Nick Wilde", # Another favorite
"Disney recipes", # Themed cooking
"Zootopia fan art" # Creative content
]
POST_LIMIT = 2000 # Posts per topic
SCROLL_DELAY = 3 # Seconds between scrolls
# phase2_ai_prefilter.py - How to sort
class AppConfig:
MODEL_NAME = "disney-classifier" # AI model to use
HIGH_CONFIDENCE = 0.7 # Threshold for "yes"
LOW_CONFIDENCE = 0.3 # Threshold for "no"
GPU_ACTIVE = True # Use GPU accelerationThreads-Archiver/
β
βββ π Core Scripts
β βββ phase1_search_download.py # Search & download posts
β βββ phase2_ai_prefilter.py # AI sorting (single-thread)
β βββ phase2_ai_prefilter_multithreaded.py # AI sorting (parallel)
β
βββ π€ AI Configuration
β βββ Modelfile # Custom AI model definition
β βββ setup_model.ps1 # Automated setup script
β βββ test_classifier.py # Validation test suite
β
βββ π Documentation
β βββ README.md # This file
β βββ README.zh.md # ηΉι«δΈζηζ¬
β βββ QUICK_REFERENCE.md # Quick start guide
β βββ MODEL_SETUP_README.md # AI setup tutorial
β βββ MODELFILE_GUIDE.md # Advanced configuration
β
βββ πΎ Data Directories
β βββ Interested_Event_Archive/ # Your collected posts & media
β βββ thread_sessions/ # Login sessions (local only)
β βββ _sorting/ # AI-organized outputs
β βββ checkpoints/ # Resume points
β βββ *_posts_likely_yes.jsonl # High relevance β
β βββ *_posts_uncertain.jsonl # Review needed β οΈ
β βββ *_posts_likely_no.jsonl # Low relevance β
β
βββ βοΈ Configuration
βββ requirements.txt # Python dependencies
- π¨ Building personal Disney character collections
- π Archiving fan discussions and theories
- π³ Saving themed recipe posts for later
- π Learning about AI and data organization
- π Creating curated content libraries for hobbies
- πΌ Commercial data harvesting
- π Violating privacy or platform ToS
- π Large-scale analytics or research
- π° Any for-profit activities
This is a personal hobby tool. Please:
- β Follow local laws and platform guidelines
- β Respect content creators' rights
- β Keep data private and secure
- β Use for personal, non-commercial purposes
- β Be mindful of rate limits and server load
Found a bug? Have a feature idea? Contributions welcome!
- π΄ Fork the repository
- πΏ Create a feature branch (
git checkout -b feature/AmazingFeature) - πΎ Commit your changes (
git commit -m 'Add some AmazingFeature') - π€ Push to the branch (
git push origin feature/AmazingFeature) - π Open a Pull Request
MIT License - See LICENSE for details.
In Short:
- β Use for personal projects
- β Modify as you like
- β Share with others
β οΈ Include original license noticeβ οΈ No warranty provided
If this project helped you or inspired your work, consider citing it to support community development:
@software{threads_collector_2025,
author = {jyusiwong},
title = {Threads Content Collector: Disney & Zootopia Archive Toolkit},
year = {2025},
url = {https://github.com/jyusiwong/Threads-Collector},
note = {A hobby archival toolkit for Disney fans with AI-powered organization}
}APA Style:
jyusiwong. (2025). Threads Content Collector: Disney & Zootopia Archive Toolkit [Computer software]. GitHub. https://github.com/jyusiwong/Threads-Collector
MLA Style:
jyusiwong. Threads Content Collector: Disney & Zootopia Archive Toolkit. GitHub, 2025, https://github.com/jyusiwong/Threads-Collector.
Collect what you love. Organize what matters. Archive your passion.
π¦ Happy Collecting! | π° Enjoy Your Archive! | π¨ Share Your Passion!