当前位置:首页 > 数码 >

怎么一次性给mp3上下歌(mp3怎么从手机上下歌)

来源:原点资讯(www.yd166.com)时间:2023-05-11 18:27:57作者:YD166手机阅读>>

2020-5-8更新:在线下载网易云VIP音乐 ,直接复制地址(去掉#),或从客户端复制链接。


从豆瓣转到网易云后,发现了不少好听的歌曲,然鹅..当我想把这些歌拿下来扔车上听的时候发现竟然不允许下载..能听不能下?这不科学,作为一名程序猿,必然要迎难而上啊.

单曲下载

如果只是想下载某一首歌曲的话,其实也不需要写代码的,毕竟浏览器有很多功能已经可以拿到文件了,但是如果想大量的下载,这种重复劳动就需要扔给程序去做了。

如果是客户端的话,可以右键拿到单曲链接,然后在浏览器打开。如下:

怎么一次性给mp3上下歌,mp3怎么从手机上下歌(1)

打开浏览器按F12打开控制台

在浏览器中输入链接后,进入页面,然后按下F12后,打开控制台,然后点击network进入该TAB页面。

怎么一次性给mp3上下歌,mp3怎么从手机上下歌(2)

找到Network

然后点击播放按钮,查看network中就会有该音乐的播放地址。

怎么一次性给mp3上下歌,mp3怎么从手机上下歌(3)

最下面的播放地址

点击该链接,打开后,复制下mp3的播放地址,另外一个窗口输入后即可播放,右键即可另存为本地。

怎么一次性给mp3上下歌,mp3怎么从手机上下歌(4)

音乐链接地址

以上操作即可将单曲音乐的文件下载下来,如果不怕麻烦,也可以按照如此的操作,将整个歌单的歌曲文件全部下载下来。

当然,作为一名程序员,决不允许这样的劳动浪费行为。

通过程序进行批量下载

以下为专业知识,需要至少了解js nodejs 相关的知识,以及少量代码编写操作。

准备
  • 一个后台API服务
  • 一个客户端,下载音乐
  • nodejs 环境(如何安装这里就不细说了,网上还是很多的。)
步骤1 - 搭建后台API

github 上有一个网易云音乐的API接口服务,地址如下:https://github.com/chrunlee/netmusic-node

通过git下载到本地后,启动,然后作为API服务器用来请求调用获取数据使用的。

我这里提供一个我用的,各位在使用的时候,请节制,我也不希望被封IP以后用不了,希望不要用在自动爬取下载的程序上,只是自己使用下载歌单用下就行。http://music.byyui.com/

步骤2 - 搭建本地客户端下载工具

由于这个工具只是自己平时使用,也没有放在github上,所以,这里只是贴下几个核心代码,大家可以参考下。

// api.js

// var api = 'http://localhost:3000'; var api = 'http://music.byyui.com'; //获得歌单 var superagent = require('superagent'); function MusicLoad ( opt ){ var _default = { isSingle : false, getListUrl : api '/v1/playlist/detail', getSingleInfo : api '/v1//music/detail', getUrl : api '/v1/music/url', fs : require('fs'), url : require('url'), http : require('http'), async : require('async') }; this.opt = Object.assign(_default,opt); this.init(); } MusicLoad.prototype.init = function(){ var that = this,opt = that.opt; if(opt.isSingle){ that.getUrl(that.opt.id,null,function(){ console.log('下载完毕.'); }); }else{ that.getList(); } } MusicLoad.prototype.getList = function( ){ var that = this; superagent.get(that.opt.getListUrl '?id=' that.opt.id '&limit=300').end(function(err,res){ if(err){ console.log('无法获取歌单') return; } var txt = res.text; var data = JSON.parse(txt); var list = data.playlist.tracks; console.log(list.length); console.log('获得' data.playlist.creator.nickname '的歌单,共计歌曲:' list.length '首'); if(list.length > 0){ //循环,获得一首,下载一首 var data = list.map(function(item){ return { id : item.id, name : item.name }; }); //开始判断 if(that.opt.start !== 0){ data = data.slice(that.opt.start,data.length); console.log('从第' that.opt.start '处开始下载,共计' (data.length - that.opt.start)); } that.list = data; that.startLoad(); }else{ console.log('对不起,这个歌单没有歌曲下载。'); } }); } MusicLoad.prototype.startLoad = function(){ var that = this; var list = that.list,async = that.opt.async; async.mapLimit(list,1,function(item,cb){ that.getUrl(item.id,item.name,cb); },function(){ console.log('全部下载完成;'); }); } MusicLoad.prototype.getUrl = function(id,name,cb){ var that = this; var target= that.opt.getUrl '?id=' id '&br=320000'; console.log(target); superagent.get(target).end(function(err,res){ if(err){ console.log(err); cb(err,null); return; } var data =JSON.parse(res.text); var url = data.data[0].url; if(typeof url == 'string'){ that.download({id : id,name : name,url : url},cb); }else{ console.log('没有获得该歌曲的URL'); cb(null,null); } }); } MusicLoad.prototype.download = function( item,callback ){ var download = this.opt.download,fs = this.opt.fs,url = this.opt.url,http = this.opt.http; var href = item.url, myHref = url.parse(href); var host = myHref.host,pathname = myHref.pathname; var http_client = http.request({ hostname: host, method: 'GET', path: pathname, headers: { 'Accept': 'text/html,application/xhtml xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Accept-Language': 'zh-CN,zh;q=0.8,gl;q=0.6,zh-TW;q=0.4', 'Connection': 'keep-alive', // 'Content-Type': 'application/x-www-form-urlencoded', // 'Referer': 'http://music.163.com', 'Pragma':'no-cache', 'Host': host, 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1' } }, function(res) { res.on('error', function(err) { //回调,报错 callback(err,null); }); var fileBuffer = []; res.on('data',function(chunk){ fileBuffer.push(new Buffer(chunk)); }); res.on('end',function(){ var total = Buffer.concat(fileBuffer); fs.appendFile(download '/' (item.name || item.id) '.mp3',total,function(err){ console.log('歌曲下载完成:' item.name); callback(null,'over'); }); }); }); http_client.end(); } var Down = function( opt ){ new MusicLoad(opt); } module.exports = Down;

以上api.js 为调用API服务的工具类,包括下载以及获取数据,下面的是调用api.js的入口函数: //app.js

//引入api.js文件 let api = require('./api'); //调用 api({ isSingle : false,//是否是单曲 id : '87950133',//单曲ID或者歌单ID start : 0,//从第几个开始下载 download : 'f:/redmusic/'//歌曲保存位置 }); console.log('开始下载歌曲..成功率不高');

保存好后,执行node app 即可。

怎么一次性给mp3上下歌,mp3怎么从手机上下歌(5)

执行效果图

以上,仅作为研究学习使用。

栏目热文

手机上下歌怎么转到mp3上(手机上下歌怎么才能转到mp3上?)

手机上下歌怎么转到mp3上(手机上下歌怎么才能转到mp3上?)

在日常生活和工作中,我们经常会遇到需要将音频转换为mp3格式的情况。mp3是一种常见的数字音频压缩格式,可以帮助大家在保...

2023-05-11 19:07:58查看全文 >>

如何用卡在mp3上下歌(怎么使用手机给mp3上下歌)

如何用卡在mp3上下歌(怎么使用手机给mp3上下歌)

原创:收音机评论译介一、外观设计乐廷T301收音机兼插卡音箱的外形呈下宽上窄的圆弧式设计,外形尺寸约为12.5*6.5*...

2023-05-11 19:03:22查看全文 >>

mp3如何在手机上下歌视频教程(mp3加歌方法手机)

mp3如何在手机上下歌视频教程(mp3加歌方法手机)

将歌曲下载到手机的过程可能会有所不同,具体取决于您使用的设备以及从何处获取歌曲。 以下是一些要遵循的一般步骤:选择来源:...

2023-05-11 19:04:28查看全文 >>

mp3怎么在手机上下歌不用电脑(手机上下歌在mp3上怎么弄格式)

mp3怎么在手机上下歌不用电脑(手机上下歌在mp3上怎么弄格式)

上次制作过一期音频制作教程以后,后台有好多的网友问我,自己没有电脑,如何用手机上传音频。那么今天我们就开始。(同时这个也...

2023-05-11 18:57:16查看全文 >>

怎么能通过手机在mp3上下歌(怎么使用手机给mp3上下歌)

怎么能通过手机在mp3上下歌(怎么使用手机给mp3上下歌)

拒绝参数,只谈体验,关注导盲犬小抠,真实解读您熟悉的数码产品,本文阅读预计耗时3分钟。便携式媒体播放器,在大多数90后朋...

2023-05-11 19:06:58查看全文 >>

如何不用连接手机在mp3上下歌(怎么一次性给mp3上下歌)

如何不用连接手机在mp3上下歌(怎么一次性给mp3上下歌)

现如今,大家用来听歌的装备往往是手机 真无线蓝牙耳机的组合。随着智能手机的普及,以往的MP3播放器已经渐渐式微,真无线蓝...

2023-05-11 18:42:08查看全文 >>

新式路亚钓鲫鱼线组装配图解(新式路亚钓鲫鱼线组装配)

新式路亚钓鲫鱼线组装配图解(新式路亚钓鲫鱼线组装配)

首先说明一下,这种钓法说是叫路亚,但其实是我们真正的路亚钓法的改装,适合与冬季水面未结冰以前和初春时节,小杂鱼已经基本...

2023-05-11 18:55:58查看全文 >>

路亚滑漂冬天钓鲫鱼线组如何搭配(路亚滑漂钓鲫鱼一般用什么饵料)

路亚滑漂冬天钓鲫鱼线组如何搭配(路亚滑漂钓鲫鱼一般用什么饵料)

气温越低水温就越低,水温越低鲫鱼会更倾向于躲在深水中,因为深水中气温会恒定在4度左右,就算水面结冰,深水依然能保持这个温...

2023-05-11 19:10:10查看全文 >>

路亚钓大鲫鱼最佳配饵(路亚活饵钓鲫鱼方法)

路亚钓大鲫鱼最佳配饵(路亚活饵钓鲫鱼方法)

路亚钓鲫鱼的一般步骤如下:确定钓点:首先需要选择一个比较适合鲫鱼生长的钓点,如清澈的水面、较多的水草和水下结构等。选择适...

2023-05-11 19:15:29查看全文 >>

路亚钓小鲫鱼线组怎么绑(路亚竿钓鲫鱼线组怎么绑线图解)

路亚钓小鲫鱼线组怎么绑(路亚竿钓鲫鱼线组怎么绑线图解)

受飞蝇钓的启发,DIY制作了一套可用于路亚钓法的钓组,这个钓组对钓小型鱼类来说简直是神器,不管是马口,青稍和白...

2023-05-11 19:07:10查看全文 >>

文档排行