Panda1847/social-media-downloader

GitHub: Panda1847/social-media-downloader

一款跨平台命令行工具,整合多种下载引擎,支持从 20 多个社交媒体平台批量抓取图文视频内容和元数据。

Stars: 2 | Forks: 0

# 📱 社交媒体下载器
![Version](https://img.shields.io/badge/version-1.0.0-blue.svg) ![License](https://img.shields.io/badge/license-MIT-green.svg) ![Platform](https://img.shields.io/badge/platform-Android%20%7C%20Linux-lightgrey.svg) ![Shell](https://img.shields.io/badge/shell-bash-orange.svg) ![Python](https://img.shields.io/badge/python-3.8%2B-blue.svg) ![Maintenance](https://img.shields.io/badge/maintained-yes-brightgreen.svg) **一个强大的命令行工具,用于从 20 多个社交媒体平台下载内容** [功能](#-features) • [安装](#-installation) • [使用](#-usage) • [文档](#-documentation) • [贡献](#-contributing)
## 🌟 概述 Social Media Downloader 是一款专业级的开源工具,专为 Android (Termux) 和 Linux 系统设计。它提供了一个简化的命令行界面,用于从主要社交媒体平台下载图片、视频、快拍(Stories)和元数据——**无需图形界面**。 该项目基于 `gallery-dl` 和 `instaloader` 等行业标准工具构建,为普通用户和 OSINT 专业人士提供了直观的菜单系统和自动化工作流程。 ### ✨ 为什么选择这个工具? - 🚀 **支持 20+ 平台** - Instagram, Facebook, TikTok, Twitter, Reddit 等 - 📱 **移动优先设计** - 通过 Termux 针对 Android 设备进行了优化 - 🎯 **无需 GUI** - 纯命令行界面 - 🔒 **注重隐私** - 所有凭据均存储在本地 - ⚡ **快速高效** - 支持断点续传的并行下载 - 🎨 **用户友好** - 带有彩色输出的交互式菜单 - 📦 **一键设置** - 自动化安装脚本 - 🔧 **高度可配置** - 广泛的自定义选项 ## 🎯 功能 ### 核心功能 | 功能 | 描述 | |---------|-------------| | **多平台支持** | 从 Instagram, Facebook, TikTok, Twitter, Reddit, Tumblr 和 20 多个其他网站下载 | | **内容类型** | 照片、视频、快拍、Reels、IGTV、精选集、头像等 | | **元数据提取** | 说明文字、评论、地理标签、时间戳、点赞数和用户信息 | | **身份验证** | 支持登录以访问私密档案和受限内容 | | **批量处理** | 同时从多个账户或 URL 下载 | | **断点续传** | 自动继续中断的下载 | | **智能检测** | 自动检测用户名变更 | ### 平台特定功能 #### 📸 Instagram - ✅ 帖子 (照片 & 视频) - ✅ 快拍 & 精选集 - ✅ Reels & IGTV - ✅ 头像 - ✅ 评论 & 地理标签 - ✅ 粉丝/关注列表 - ✅ 私密档案支持 #### 📘 Facebook - ✅ 公开照片 - ✅ 相册 - ✅ 头像 - ✅ 视频 - ⚠️ 受限于 Facebook 的限制 #### 🎵 TikTok - ✅ 用户视频 - ✅ 档案信息 - ✅ 趋势内容 #### 🐦 Twitter/X - ✅ 媒体下载 - ✅ 推文图片 & 视频 #### 🌐 通用 - ✅ Reddit, Tumblr, Flickr - ✅ DeviantArt, Pinterest - ✅ YouTube (通过 yt-dlp) ## 📦 安装说明 ### 适用于 Android (Termux) #### 前置条件 - Android 设备 (任意版本) - [Termux](https://f-droid.org/packages/com.termux/) (需从 F-Droid 安装) - 网络连接 - 约 200MB 可用存储空间 #### 快速安装 ``` # 1. 从 F-Droid 安装 Termux # 下载:https://f-droid.org/packages/com.termux/ # 2. 打开 Termux 并授予存储权限 termux-setup-storage # 3. Clone 此 repository pkg install git -y git clone https://github.com/Panda1847/social-media-downloader.git cd social-media-downloader # 4. 运行 setup 脚本(仅需一次) chmod +x scripts/termux_setup.sh ./scripts/termux_setup.sh # 5. 启动 downloader ./scripts/social_media_downloader.sh ``` ### 适用于 Linux ``` # 1. Clone repository git clone https://github.com/Panda1847/social-media-downloader.git cd social-media-downloader # 2. 安装 dependencies sudo apt update sudo apt install python3 python3-pip git wget curl -y pip3 install gallery-dl instaloader requests # 3. 运行 downloader chmod +x scripts/social_media_downloader.sh ./scripts/social_media_downloader.sh ``` ## 🚀 使用说明 ### 交互式菜单 (推荐) 启动交互式菜单以获得引导式体验: ``` ./scripts/social_media_downloader.sh ``` **菜单选项:** ``` ================================================ Social Media Downloader for Android/Termux ================================================ Choose a platform: 1) 📸 Instagram 2) 📘 Facebook 3) 🎵 TikTok 4) 🐦 Twitter/X 5) 🌐 Any URL (Universal) 6) 📁 View Downloads 7) ⚙️ Settings 8) ❌ Exit ``` ### 快速下载 用于快速、单命令下载: ``` ./scripts/quick_download.sh "https://instagram.com/username" ``` ### 手动命令 #### Instagram 示例 ``` # 下载公开 profile 的所有 posts instaloader username # 使用登录下载(针对私有 profiles) instaloader --login=your_username target_username # 下载 stories instaloader --stories username # 下载 stories、highlights 和 tagged posts instaloader --stories --highlights --tagged username # 下载时包含 comments 和 geotags instaloader --comments --geotags username # 仅下载 profile picture instaloader --no-posts --no-videos username ``` #### 通用下载 (任意平台) ``` # 基本下载 gallery-dl "URL" # 带 authentication gallery-dl -u "username" -p "password" "URL" # 仅获取 URLs(不下载) gallery-dl -g "URL" # 自定义 output 目录 gallery-dl -D ~/Downloads/my_folder "URL" # 详细输出 gallery-dl -v "URL" ``` #### Facebook 示例 ``` # 下载照片 gallery-dl "https://facebook.com/username/photos" # 使用登录下载 gallery-dl -u "email" -p "password" "https://facebook.com/username/photos" # 下载 profile picture gallery-dl "https://facebook.com/username/avatar" # 下载 albums gallery-dl "https://facebook.com/username/photos_albums" ``` ## 📖 文档 `docs/` 目录中提供了完整的文档: | 文档 | 描述 | |----------|-------------| | [ANDROID_INSTRUCTIONS.md](docs/ANDROID_INSTRUCTIONS.md) | 完整的 Android/Termux 设置指南 | | [TOOLS_REFERENCE.md](docs/TOOLS_REFERENCE.md) | 详细的工具文档和对比 | | [facebook_gallery_dl_guide.md](docs/facebook_gallery_dl_guide.md) | Facebook 特定使用指南 | | [EXAMPLES.md](examples/EXAMPLES.md) | 真实使用案例 | | [FAQ.md](docs/FAQ.md) | 常见问题解答 | | [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) | 常见问题及解决方案 | ## 🎨 示例 ### 示例 1:下载 Instagram 档案 ``` ./scripts/social_media_downloader.sh # 选择:1 (Instagram) # 输入 username:nasa # 选择选项:1 (所有 posts) # 需要登录?:n ``` ### 示例 2:下载私密 Instagram ``` ./scripts/social_media_downloader.sh # 选择:1 (Instagram) # 输入 username:private_account # 选择选项:1 (所有 posts) # 需要登录?:y # 您的 Instagram username:your_username # (在提示时输入 password) ``` ### 示例 3:下载 TikTok 视频 ``` ./scripts/quick_download.sh "https://tiktok.com/@username" ``` ### 示例 4:批量下载多个档案 ``` # 创建包含 URLs 的文件 cat > urls.txt << EOF https://instagram.com/user1 https://instagram.com/user2 https://instagram.com/user3 EOF # 下载全部 gallery-dl -i urls.txt ``` 更多示例请见 [examples/EXAMPLES.md](examples/EXAMPLES.md) ## 📁 项目结构 ``` social-media-downloader/ ├── README.md # This file ├── LICENSE # MIT License ├── CONTRIBUTING.md # Contribution guidelines ├── CHANGELOG.md # Version history ├── .gitignore # Git ignore rules │ ├── scripts/ # Main scripts │ ├── termux_setup.sh # One-time setup script │ ├── social_media_downloader.sh # Interactive menu │ └── quick_download.sh # Quick download script │ ├── docs/ # Documentation │ ├── ANDROID_INSTRUCTIONS.md # Android setup guide │ ├── TOOLS_REFERENCE.md # Tool documentation │ ├── facebook_gallery_dl_guide.md # Facebook guide │ ├── FAQ.md # FAQ │ └── TROUBLESHOOTING.md # Troubleshooting │ ├── examples/ # Usage examples │ ├── EXAMPLES.md # Example scenarios │ ├── config_examples/ # Configuration examples │ └── scripts/ # Example scripts │ └── .github/ # GitHub specific files ├── workflows/ # CI/CD workflows ├── ISSUE_TEMPLATE/ # Issue templates └── PULL_REQUEST_TEMPLATE.md # PR template ``` ## 🔧 配置 ### 保存凭据 (可选) 创建配置文件以避免重复输入密码: ``` mkdir -p ~/.config/gallery-dl nano ~/.config/gallery-dl/config.json ``` 添加你的凭据: ``` { "extractor": { "instagram": { "username": "your_instagram_username", "password": "your_instagram_password" }, "facebook": { "username": "your_facebook_email", "password": "your_facebook_password" }, "twitter": { "username": "your_twitter_username", "password": "your_twitter_password" } } } ``` ### 自定义下载目录 在设置菜单中修改下载位置或编辑脚本: ``` DOWNLOAD_DIR=~/Downloads/social_media ``` ## 📊 平台成功率 基于大量测试: | 平台 | 成功率 | 备注 | |----------|-------------|-------| | Instagram | ✅ 95% | 支持最好,最可靠 | | TikTok | ✅ 85% | 良好支持 | | Reddit | ✅ 90% | 优秀支持 | | Tumblr | ✅ 85% | 良好支持 | | Twitter/X | ⚠️ 60% | 受限于平台限制 | | Facebook | ⚠️ 40% | 反爬虫措施严厉 | ## ⚠️ 法律与道德使用 **重要提示:** 本工具仅供教育和授权研究目的使用。 ### 准则 - ✅ 仅下载你有权访问的内容 - ✅ 尊重隐私设置和版权 - ✅ 遵守平台服务条款 - ✅ 遵守当地法律法规 - ❌ 请勿用于骚扰、跟踪或非法活动 - ❌ 请勿侵犯知识产权 ### 隐私 - 所有凭据均**本地**存储在你的设备上 - 不会向第三方发送任何数据 - 凭据仅用于与社交媒体平台进行身份验证 **使用本工具即表示你同意负责任且合法地使用它。** ## 🐛 故障排除 ### 常见问题 **"Command not found" (找不到命令)** ``` chmod +x scripts/social_media_downloader.sh ./scripts/social_media_downloader.sh ``` **"gallery-dl: command not found"** ``` pip3 install gallery-dl instaloader ``` **"Login required" (需要登录)** - 内容为私密或平台需要身份验证 - 使用登录选项并输入你的凭据 **"Rate limited" (频率限制)** - 你的下载速度太快 - 请等待 1-2 小时或使用其他网络连接 **Facebook 无法使用** - Facebook 拥有强大的反爬虫措施 - 尝试登录或改用浏览器 更多解决方案请见 [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) ## 🤝 贡献 欢迎贡献代码!在提交 Pull Request 之前,请阅读我们的[贡献指南](CONTRIBUTING.md)。 ### 贡献方式 - 🐛 报告 Bug - 💡 建议新功能 - 📝 改进文档 - 🔧 提交 Bug 修复 - ✨ 添加新平台支持 ### 开发环境设置 ``` # Fork 并 clone repository git clone https://github.com/Panda1847/social-media-downloader.git cd social-media-downloader # 创建新 branch git checkout -b feature/your-feature-name # 进行更改并测试 # Commit 和 push git add . git commit -m "Add your feature" git push origin feature/your-feature-name # Open a pull request ``` ## 📜 许可证 本项目根据 MIT 许可证授权 - 详见 [LICENSE](LICENSE) 文件。 ### 第三方工具 本项目使用以下开源工具: - [gallery-dl](https://github.com/mikf/gallery-dl) - GPL-2.0 许可证 - [instaloader](https://github.com/instaloader/instaloader) - MIT 许可证 ## 🙏 致谢 - **gallery-dl** - 提供了出色的通用下载器 - **instaloader** - 提供了优秀的 Instagram 支持 - **Termux** - 将 Linux 带到了 Android - 本项目的所有贡献者和用户 ## 📞 支持 - 📖 [文档](docs/) - 🐛 [Issue 跟踪器](https://github.com/Panda1847/social-media-downloader/issues) - 💬 [讨论区](https://github.com/Panda1847/social-media-downloader/discussions) ## 🗺️ 路线图 ### 版本 1.1 (计划中) - [ ] Web 界面选项 - [ ] Docker 支持 - [ ] 计划任务下载 - [ ] 云存储集成 - [ ] 高级过滤选项 ### 版本 1.2 (未来) - [ ] GUI 应用程序 - [ ] Windows 支持 - [ ] API 端点 - [ ] 数据库集成 - [ ] 分析仪表板 ## ⭐ Star 历史 如果你觉得这个项目有用,请考虑给它一个 Star! ⭐ ## 📈 统计数据 ![GitHub stars](https://img.shields.io/github/stars/Panda1847/social-media-downloader?style=social) ![GitHub forks](https://img.shields.io/github/forks/Panda1847/social-media-downloader?style=social) ![GitHub watchers](https://img.shields.io/github/watchers/Panda1847/social-media-downloader?style=social)
**由社区用 ❤️ 制作** [⬆ 返回顶部](#-social-media-downloader)
标签:Android, Bash, BeEF, CLI, DSL, ESC4, Facebook, Gallery-dl, HTTP工具, Instagram, Instaloader, IP 地址批量处理, OSINT, Python, Reddit, Shell脚本, Termux, TikTok, Twitter, WiFi技术, 下载工具, 二进制发布, 元数据, 命令行界面, 图片下载, 应用安全, 开源工具, 数据泄露, 数据获取, 无后门, 无头模式, 爬虫, 社交媒体, 网络调试, 自动化, 视频下载, 逆向工具