This bot monitors ArXiv for new papers in audio and speech processing categories and sends notifications to Discord.
- Python 3.12 or higher
- uv package manager
- Discord webhook URL
- Google Gemini API key
git clone <repository-url>
cd arxiv-sound-botuv synccp .env.example .envEdit the .env file and add your credentials:
GEMINI_API_KEY: Your Google Gemini API key (required)DISCORD_WEBHOOK_SOUND: Discord webhook URL for sound processing papersDISCORD_WEBHOOK_3D: Discord webhook URL for 3D model papers (optional)DISCORD_WEBHOOK_MOTION: Discord webhook URL for motion generation papers (optional)DISCORD_WEBHOOK_MOVIE: Discord webhook URL for video generation papers (optional)DISCORD_WEBHOOK_INTELLIGENCE: Discord webhook URL for security intelligence papers (optional)
uv run python source/fetch_arxiv_papers.py-
Monitors multiple categories:
- Sound processing (audio synthesis, recognition, emotion analysis)
- 3D model generation (NeRF, Gaussian Splatting, etc.)
- Motion generation (animation, human motion)
- Video generation (text-to-video, video synthesis)
- Security intelligence (threat analysis, malware, vulnerability)
-
Filters papers by date (only processes papers from the last 7 days by default)
-
Translates abstracts to Japanese using Google Gemini
-
Sends to Discord with formatted messages including:
- Paper title
- Japanese translation of the abstract
- Links to AlphaXiv, PDF, and ArXiv
- Categories and publication date
-
Tracks processed papers to avoid duplicates using category-specific JSON files in
opt/directory
uv run python source/fetch_arxiv_papers.pySet up a cron job or scheduled task to run the bot periodically (e.g., daily):
0 9 * * * cd /path/to/arxiv-sound-bot && uv run python source/fetch_arxiv_papers.pyIf you see "API key not valid" error, ensure:
- Your
.envfile contains valid credentials - The Gemini API key has proper permissions
- The Discord webhook URL is correct
The bot only processes papers from the last 7 days. If no new papers match the search criteria, no messages will be sent.
Make sure the .env file is in the project root directory and contains the required variables.
Currently, the bot initializes the Gemini API client even when environment variables are not set, which causes an error. To run without credentials, you would need to modify the code to lazy-load the Gemini client only when needed.