Apple Music 专辑链接一键复制

一键复制 Apple Music 当前页面中的专辑链接到剪贴板;兼容 Shadow DOM。

作者
David Wang
日安装量
0
总安装量
0
评分
0 0 0
版本
1.0.1
创建于
2025-09-26
更新于
2025-09-26
大小
18.3 KB
许可证
MIT
适用于

Apple Music 专辑链接一键复制

Version License Tampermonkey

一个专为 Apple Music 设计的 Tampermonkey 用户脚本,能够一键复制当前页面中的所有专辑链接到剪贴板,方便批量使用。

✨ 特性

  • 🚀 一键复制:快速提取并复制页面中的所有专辑链接
  • 🎯 智能识别:自动检测和过滤 Apple Music 专辑链接
  • 🔗 格式优化:链接以空格分隔,方便批量处理
  • 📱 现代UI:简洁美观的浮动按钮界面
  • 🛡️ 稳定可靠:完善的错误处理和容错机制
  • 🌐 兼容性强:支持 Shadow DOM 和现代浏览器
  • 性能优化:智能缓存和防抖机制

🚀 安装使用

1. 安装 Tampermonkey

首先确保您的浏览器已安装 Tampermonkey 扩展:

2. 安装脚本

  1. 在 Tampermonkey 中创建新脚本
  2. 复制 AppleMusic.js 的完整内容并粘贴
  3. 保存脚本(Ctrl+S)

3. 开始使用

  1. 访问任意 Apple Music 页面(如专辑、播放列表、艺术家页面等)
  2. 页面右下角会出现「专辑链接」浮动按钮
  3. 点击按钮即可复制当前页面的所有专辑链接

📖 使用说明

界面介绍

┌─────────────────┐
│  专辑链接 [5]    │  ← 显示检测到的专辑数量
└─────────────────┘
       ↓ 点击展开
┌─────────────────┐
│ 复制专辑链接     │  ← 一键复制功能
├─────────────────┤
│ 链接以空格分隔, │  ← 格式说明
│ 方便批量使用     │
└─────────────────┘

操作方式

方式一:浮动按钮

  • 页面右下角的浮动按钮
  • 显示当前检测到的专辑数量
  • 点击展开操作面板

方式二:菜单命令

  • Tampermonkey 扩展菜单
  • 选择「复制专辑链接」命令

输出格式

复制的链接格式为空格分隔,例如:

https://music.apple.com/cn/album/kind-of-blue/268443092 https://music.apple.com/cn/album/a-love-supreme/1440687467 https://music.apple.com/cn/album/moanin/1440811580

这种格式特别适合:

  • 批量导入工具
  • 脚本处理
  • 文档整理
  • API 调用

🎯 适用页面

脚本会自动检测以下类型的 Apple Music 页面:

  • 🎵 专辑页面/album/
  • 📝 播放列表/playlist/
  • 👤 艺术家页面/artist/
  • 📻 电台页面/station/
  • 🏠 主题房间/room/
  • 🔍 浏览页面/browse/

🔧 技术特性

智能识别

  • 精确匹配:只识别真正的专辑链接
  • 去重处理:基于专辑 ID 自动去重
  • URL 清理:移除不必要的查询参数

性能优化

  • 懒加载:仅在相关页面激活
  • 防抖机制:避免频繁重复执行
  • 内存管理:使用 WeakSet 防止内存泄漏

兼容性

  • Shadow DOM:支持现代 Web Components
  • SPA 路由:适配单页应用的路由变化
  • 多浏览器:兼容主流浏览器

容错机制

  • 多重回退:GM_setClipboard → navigator.clipboard → 手动复制
  • 异常处理:全面的 try-catch 保护
  • 日志记录:详细的控制台日志

🛠️ 开发说明

代码结构

AppleMusic.js
├── 用户脚本元数据
├── 工具函数
│   ├── getAllAnchorsDeep()    # 深度遍历获取所有链接
│   ├── isAlbumLink()          # 判断是否为专辑链接
│   ├── extractAlbumIdFromUrl() # 提取专辑 ID
│   └── getAlbumLinksFromPage() # 获取页面所有专辑链接
├── 页面检测
│   ├── isRelevantPage()       # 检测是否为相关页面
│   └── waitForContent()       # 等待内容加载
├── 核心功能
│   ├── copyToClipboard()      # 复制到剪贴板
│   └── actionCopyCurrent()    # 执行复制操作
├── 用户界面
│   ├── addMenuCommands()      # 添加菜单命令
│   └── addFloatingButton()    # 添加浮动按钮
└── 初始化逻辑
    ├── SPA 路由监听
    ├── DOM 变化观察
    └── 资源清理

自定义配置

可以通过修改脚本中的常量来自定义行为:

// 等待内容加载的超时时间(毫秒)
const WAIT_TIMEOUT = 5000;

// 防抖延迟时间(毫秒)
const DEBOUNCE_DELAY = 500;

// 检测重试间隔(毫秒)
const RETRY_INTERVAL = 200;

🤝 贡献

欢迎提交 Issue 和 Pull Request!

开发环境

  1. 安装 Tampermonkey
  2. 创建开发版脚本
  3. 在 Apple Music 页面测试

测试页面

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

👤 作者

onlys

🙏 致谢

  • Apple Music 提供的优秀音乐服务
  • Tampermonkey 团队提供的强大扩展平台
  • 所有测试和反馈的用户

🎵 享受音乐,简化操作!