Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
###################################### # FGO Voice Spider # ##Fate角色的个人台词和战斗语音采集器 ## ###################################### > “声音会消散,但那一刻的温度可以被保存。” A Python-based crawler for extracting and downloading character voice lines from **fgo.wiki**, preserving both audio and textual data in structured form. 一个基于 Python 的语音采集工具,用于抓取 **fgo.wiki** 角色语音页面中的 MP3 音频与日文台词,并以结构化数据形式保存。 --- ======项目声明====== 本项目旨在帮助使用者更加高效、便捷地获取自己真正所需要的数据集。 通过降低数据采集与整理的技术门槛,本项目希望让研究者、开发者与爱好者能够专注于创造与分析,而不是重复性的收集工作。 本项目仅用于个人学习、研究与非商业用途,旨在协助使用者更好地整理和保存自己所需要的音频与文本资料。 ======使用限制====== 本项目禁止任何形式的商业化使用。 ======社区交流====== 欢迎社区开发者提出建议、提交改进、共同完善。 希望这个项目能够成为一个轻量、干净、可持续演进的工具。 谢谢大家。 ======English Version====== ======Project Mission====== This project aims to help users efficiently and conveniently obtain the datasets they truly need. By lowering the technical barrier to data acquisition and organization, the project enables researchers, developers, and enthusiasts to focus on creation and analysis rather than repetitive collection work. This software is intended for personal learning, research, and non-commercial use only. It is designed to assist users in collecting and organizing audio and text resources they require. ======Usage Restrictions====== Commercial use is strictly prohibited. ======Community====== Contributions, discussions, and improvements from the community are warmly welcome. Let this project remain lightweight, clean, and continuously evolving. Thank you. --- # ✨ Features | 功能特性 - 🎵 Download character voice MP3 files 下载角色语音 MP3 文件 - 📝 Extract Japanese voice text 提取日文语音台词 - 📦 Save structured JSON data 保存结构化 JSON 数据 - 📄 Generate TXT summary file 生成台词汇总 TXT 文件 - 🔁 Duplicate detection mechanism 自动去重机制 - 🧪 Reproducible environment via Conda 使用 Conda 实现环境可复现 --- # 📂 Project Structure | 项目结构 ``` FGO_Spider/ │ ├── FGO_Voice/ │ ├── fgo_voice_downloader.py │ └── voices/ ├── environment.yml ├── README.md └── .gitignore ``` ======================================================================================================================== --- # 🚀 Installation | 安装方式 ## Option A — Using Conda (Recommended) ## 方式 A — 使用 Conda(推荐) ```bash conda env create -f environment.yml conda activate fgo_spider ``` --- ## Option B — Using venv ## 方式 B — 使用 venv ```bash python -m venv .venv .venv\Scripts\activate pip install requests beautifulsoup4 lxml ``` ======================================================================================================================== --- # ▶ Usage | 使用方法 Run the script: ```bash python fgo_voice_downloader.py ``` Input character name: ``` (Character_Name) ``` --- ======================================================================================================================== # 📦 Output | 输出结果 Generated files will be saved in: 生成文件目录: ``` voices/角色名/ │ ├── 1_xxx.mp3 ├── voice_data.json └── all_voice_lines.txt ``` ### File Explanation | 文件说明 | File | Description | |------|------------| | mp3 | Voice audio files | | voice_data.json | Structured voice data | | all_voice_lines.txt | Text summary of all lines | --- # 🛠 Tech Stack | 技术栈 - Python 3.11 - requests - BeautifulSoup4 - lxml - Conda ======================================================================================================================== # ⚠ Disclaimer | 免责声明 This project is intended for: - Educational purposes - Personal research - Technical demonstration All game assets belong to their respective copyright holders. 本项目仅用于: - 学习研究 - 技术实践 - 数据结构演示 游戏相关资源版权归其原权利方所有。 --- # 📌 Future Improvements | 未来改进方向 - ⚡ Async download support - 📊 Statistics & analytics module - 🧠 CLI argument interface - 🔄 Retry & logging system - 🌐 Multi-language text extraction --- # 👤 Author:SakuraYasetsumyo ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⠿⠟⢷⣄⠀⡀⠀⠀⠀⣇⠀⠳⣄ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⡠⠤⠤⠤⠤⠄⢀⣠⡾⠛⢛⣻⣦⣤⣀⠀⠀⠀⠀⠀⠙⢷⣿⣿⣦⡀⠹⡆⠀⠈ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡴⠒⠋⠀⠀⠀⠀⠀⠀⠀⠀⢠⠛⢨⠛⠿⢦⡀⠛⣿⣷⡶⠶⠶⣤⡀⠀⠙⠻⣿⡙⠶⣬⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡔⠊⠁⡠⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣯⣬⣀⣠⣿⣿⣾⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣼⡛⠳ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣴⠟⠔⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⡼⢋⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦ ⠀⠀⠀⠀⠀⠀⠀⠀⣰⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣅⣺⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠽⢿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣸⡽⡈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢺⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣃⠀⠀⣿⣿⣿⣿⣿⣿⣿⡿ ⠀⠀⠀⠀⠀⠀⢀⢋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⢀⣏⡽⢯⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣧⣴⠞⣿⣿⣿⣿⣿⣿⠟⠀ ⠀⠀⠀⠀⠀⠀⢸⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠠⡄⠀⢈⣇⠩⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⡿⣀⠀ ⠀⠀⠀⠀⠀⠀⠘⢝⢸⠀⠀⠀⡄⠀⠀⠀⠀⠀⠀⠘⣄⠀⠀⠳⢄⣈⣿⢧⣈⣿⣴⡽⣿⣿⣿⣿⣿⣿⣿⣧⣹⣽⣿⣿⣿⣿⣿⣿⣆⠙ ⠀⠀⠀⠀⠀⠀⠀⢠⡸⡀⠀⠀⡇⠀⢀⠀⠀⠀⠳⡀⣸⠔⠐⢸⣤⣶⣯⣧⢽⠿⣷⣥⣧⣺⣿⣿⣿⣿⣷⣾⣿⣿⣿⣿⣿⣏⣿⣿⣿⣧ ⠀⠀⠀⠀⠀⠀⠀⠀⣇⡆⢰⢀⢰⠀⢸⣿⣤⠀⠀⠏⠄⢣⡾⢻⡿⠿⠛⣿⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⢠⣿⣷⡘⢾⡞⢶⣴⣼⣾⣶⠢⠀⠀⠀⠁⠀⠐⠀⠉⡏⠀⠀⢸⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⢳⣾⣿⣿⣷⠻⢛⡛⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠈⠃⣿⣿⣿⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⢸⡿⣿⢻⡽⡷⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢠⡇⠀⠀⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⢸⡇⣇⣾⡇⡇⠈⢿⣿⣧⡀⠀⠀⠀⢀⡀⠄⠀⠀⠀⢨⡞⠁⠀⢀⣿⣿⣿⣿⣷⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⠛ ⠀⠀⠀⠀⠀⠀⣰⢻⣿⡏⣿⣿⠃⠀⢸⡿⣿⡏⠑⠠⣀⡀⠀⠀⠀⣀⣴⡟⠀⠀⠀⣾⣿⣿⡿⢋⣿⡆⠈⠉⠙⠻⣿⣿⠿⠋⠀⠀⠀⠀ ⠀⠀⠀⠀⢀⡾⣡⣾⣻⢠⣿⢿⠀⠀⠘⠃⣿⣷⠀⠀⠀⣈⠷⠀⠘⢻⠏⠀⠀⠀⠘⣽⣿⣿⣷⠟⠃⠀⠀⠀⠀⠀⠈⢿⣲⣦⣀⠀⠀⠀ ⠀⠀⠀⢠⣿⠟⡿⣿⣆⡆⢧⢸⠀⠀⠀⠀⠏⣿⠽⢂⣉⠀⡀⢀⠴⠃⠀⠀⠀⠀⣰⣿⡿⠋⡇⠀⠀⠀⠀⠀⢀⡀⠀⠈⣿⣏⣿⣿⣶⣄ ⠀⠀⣠⡞⢡⠞⡠⠟⠉⢧⠘⠆⠀⠀⠀⢠⣧⠁⠀⠀⠀⠄⠊⣠⠃⠀⠀⠀⠀⣰⠋⠁⠀⠜⠀⠀⠀⠀⠀⠺⠿⠓⠀⠄⠈⢿⣯⣿⣿⣿ ⠀⣰⡏⣰⣯⠎⠀⠀⠀⠈⡷⠁⠀⠀⢀⡾⠃⠀⠀⠐⣨⡴⠚⡏⠀⠀⠀⠀⣴⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⢿⣿ ⣸⡟⣴⠟⠁⠀⠂⠀⢀⠎⠀⠀⡠⠢⠞⠁⠀⢰⣤⣾⠛⠁⢸⡿⠀⠀⢀⣼⠃⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣤⣤⣄⣀⠀⠀⠀⠈⣿⣯⣿ ⢿⡾⠁⠀⠀⠀⠀⢀⠃⣴⣷⡾⠃⠁⠀⢀⣴⣿⠿⠃⠀⠀⢸⣿⢸⡇⡿⡿⡀⡴⠁⠀⢀⣴⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⠶⠄⢀⣿⣿⣿ ⢱⠁⠀⠀⠀⠀⠀⣏⣦⢃⠏⠀⠀⡀⢠⣾⡿⠁⠀⠀⠀⠀⠐⣿⣿⣵⡇⠁⣹⡏⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣴⣿⣿⣿⣟ ⡄⠀⠀⠀⠀⠀⠀⢿⠹⡎⠀⠀⣴⡗⡉⠁⠀⠀⠀⠀⠀⠀⠀⠘⢿⣾⣷⣠⣿⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣫⣭⣿