Home

Awesome

中文 | English

media-get

在给定的 url 里解析出媒体文件,例如音频视频。并提供代理功能,针对不同的源可以设置不同的代理地址

示例

在 url 所在的网页下载资源

# 下载 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 文件的形式设置,优先级环境变量 > 配置文件

环境变量的设置方式

只需要设置 ENV_MEDIA_GET 这个环境变量即可生效,环境变量也是 json 格式的

{
    "proxy":{
        "douyin":"http://a.com",
        "bilibili":"http://b.com"
    }
}

配置文件的设置方式

需要在当前登陆用的 HOME 目录下新建 .media-get.json 文件,内容如上面环境变量设置的一样,也是一个 json 格式的配置

你可以在你的程序里调用本应用

本应用支持以 JSON 格式输出信息。你可以使用搜索功能得到一些列表,然后以你的需求找到目标后再调用本应用下载资源

另外, 我的另一个开源项目 Personal Music Assistant , 也会使用本应用做一些很棒的事情

media-get --searchSongName="그리움에 가까운" --searchArtist="Hello Gayoung" --infoFormat=json 

如何下载或更新该工具

支持 Win、Mac 和 Linux

以下方式任选一种

依赖

需要预先安装 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,qmkg. 默认在全部网站中搜索
      --excludeSource=  排除指定的网站,使用英文逗号隔开

Help Options:
  -h, --help         Show this help message

编译

make build

支持的网站

SiteSource NameAudioVideoSearch
b站bilibili
youtubeyoutube
网易云音乐netease
qq音乐qq
抖音douyin
咪咕音乐migu
酷狗kugou
酷我kuwo
全民K歌qmkg

致谢