写了一款类似 youtube-dl, you-get 的应用,在给定的 url 里解析出媒体文件,例如音频视频
欢迎朋友们给个 star 鼓励一下~ 也欢迎 PR 、issue
💕💕💕 GitHub 地址: https://github.com/foamzou/media-get
说下背景吧,去年年底,想写一个开源项目:私人音乐助理(具体做什么的,过段时间写完了再分享出来)。其中需要一个组件,用于从指定的 url 下载媒体资源。原本想使用 youtube-dl 或 you-get 的,但发现一些点不是很满足我的诉求:
针对以上诉求,我还是决定用 golang 写了一个,将作为我另一个开源项目的核心组件。
# 下载 b 站的视频
media-get -u "https://www.bilibili.com/video/BV1eb4y187AG?spm_id_from=444.41.0.0"
# 只下载音频,加上该参数 `-t audio`
media-get -u "https://www.bilibili.com/video/BV1eb4y187AG?spm_id_from=444.41.0.0" -t audio
本应用会以关键字相关性,对搜索结果进行排序并列出来。然后你可以用列出的 url 下载资源
# 使用 keyword ,例如 "歌名 歌手名"
media-get -k "搁浅 周杰伦"
# 如果你传入更多信息的话,排序会更准一些
media-get --searchSongName="搁浅" --searchArtist="周杰伦"
media-get --searchSongName="搁浅" --searchArtist="周杰伦" --searchAlbum="七里香"
# 如果只希望从指定网站搜索
media-get -k "搁浅 周杰伦" --sources="migu,bilibili"
# 如果希望排除一些网站,例如 youtube 国内一般搜索不了。后续会考虑加入代理配置(粒度会在网站而不是全局,因为考虑到某些网站判断到非国内 IP 就不返回结果)
media-get -k "搁浅 周杰伦" --excludeSource="youtube"
本应用支持以 JSON 格式输出信息。你可以使用搜索功能得到一些列表,然后以你的需求找到目标后再调用本应用下载资源
另外, 我的另一个开源项目 Personal Music Assistant , 也会使用本应用做一些很棒的事情
media-get --searchSongName="그리움에 가까운" --searchArtist="Hello Gayoung" --infoFormat=json
支持 Win 、Mac 和 Linux
以下方式任选一种
需要预先安装 ffmpeg
brew install ffmpeg
Usage:
media-get [OPTIONS]
Application Options:
-u, --url= 以 http[s]:// 开头的 url
-o, --out= 下载文件存储目录, 文件名可选. (默认: 当前目录)
-t, --type= 希望下载的媒体类型 [auto/audio/video/all] (默认: auto)
--addMediaTag 将歌曲名、专辑名、歌手等 tag 信息添加到歌曲文件里
-m, --metaOnly 只获取媒体信息,不下载文件
--infoFormat= 媒体信息以何种形式展示。支持 plain/json. 默认为 plain
-l, --logLevel= 日志输出级别。支持 silence/error/warn/info/debug. 默认为 info
Search Options:
-k, --keyword= 若想使用搜索功能,keyword 或 searchSongName 是必传的. 如果都传入的话,会使用 keyword 进行搜索. Such as "歌名 歌手名"
--searchSongName= 歌名
--searchArtist= 歌手名
--searchAlbum= 专辑名
--searchType= 暂时只支持: song, 默认: song
--sources= 在指定的网站中搜索,使用英文逗号隔开. 目前支持: bilibili,douyin,kugou,kuwo,migu,netease,qq,youtube. 默认在全部网站中搜索
--excludeSource= 排除指定的网站,使用英文逗号隔开
Help Options:
-h, --help Show this help message
make build
Site | Source Name | Audio | Video | Search |
---|---|---|---|---|
b 站 | bilibili | ✅ | ✅ | ✅ |
youtube | youtube | ✅ | ✅ | ✅ |
网易云音乐 | netease | ✅ | ✅ | ✅ |
qq 音乐 | ✅ | ⌛ | ✅ | |
抖音 | douyin | ✅ | ✅ | ✅ |
咪咕音乐 | migu | ✅ | ⌛ | ✅ |
酷狗 | kugou | ✅ | ⌛ | ✅ |
酷我 | kuwo | ✅ | ⌛ | ✅ |
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.