Skip to content

基于 Python 的高品质音乐抓取下载程序,支持搜索和下载 FLAC 格式的音乐文件。

License

Notifications You must be signed in to change notification settings

liulb/fetchSongs

Repository files navigation

音乐下载器

基于 Python 的高品质音乐抓取下载程序,支持搜索和下载 FLAC 格式的音乐文件。

功能特点

  • 🎵 支持关键词搜索音乐
  • 📄 支持分页搜索
  • 🎧 只下载高品质 FLAC 格式音乐 (hasSQ=true)
  • 📁 自动按搜索关键词创建文件夹
  • 🔄 自动跳过已存在的文件
  • ⏱️ 内置请求延时,避免频繁请求
  • 🍪 自动Cookie管理 - 使用DrissionPage自动获取和刷新cookies
  • 🔄 智能重试机制 - 自动处理网络错误和cookie过期
  • 🛡️ 防爬保护 - 随机延迟和请求头优化

安装依赖

pip install -r requirements.txt

使用方法

快速启动 (推荐)

python start.py

选择"快速启动",程序会自动管理cookies并开始下载。

传统方式

python music_downloader.py

手动刷新Cookies

如果遇到cookie过期问题:

python cookie_manager.py

程序化使用

from music_downloader import MusicDownloader

# 使用自动cookie管理 (推荐)
downloader = MusicDownloader(auto_refresh_cookies=True)
downloader.process_keyword("周杰伦", max_pages=2)

# 使用固定cookies
downloader = MusicDownloader(auto_refresh_cookies=False)
downloader.process_keyword("邓紫棋", max_pages=1)

文件结构

下载的文件会保存在以搜索关键词命名的文件夹中,文件名格式为:歌手_歌曲名.flac

例如搜索"周杰伦",会创建"周杰伦"文件夹,其中包含:

  • 周杰伦_花海.flac
  • 周杰伦_霍元甲.flac
  • ...

防爬机制

程序内置了多种防爬保护机制:

  • 🕐 搜索页面间隔延迟 (1秒)
  • ⏳ 获取下载链接延迟 (0.5-1秒随机)
  • 🎯 下载完成后延迟 (2-3秒随机)
  • 🔄 自动重试机制 (最多3次)
  • 📊 进度显示和状态提示

配置说明

可以在 config.py 中调整延迟设置:

  • search_delay: 搜索页面间隔
  • download_delay: 下载间隔
  • get_url_delay: 获取链接间隔

注意事项

  • 程序会自动过滤掉不支持高品质下载的歌曲 (hasSQ=false)
  • 文件名中的特殊字符会被替换为下划线
  • 内置防爬延迟,请耐心等待下载完成
  • 如遇到468错误,请更新 config.py 中的cookies
  • 下载的音乐文件仅供个人学习使用,请支持正版

About

基于 Python 的高品质音乐抓取下载程序,支持搜索和下载 FLAC 格式的音乐文件。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages