diff --git a/docs/multimedia.md b/docs/multimedia.md
index 04cc3903cd..61fa09e6e9 100644
--- a/docs/multimedia.md
+++ b/docs/multimedia.md
@@ -197,3 +197,7 @@
| 全部 | 蓝光 | 1080P | 720P | 3D | WEB-DL |
| ---- | ------ | ----- | ---- | --- | ------ |
| 留空 | bluray | 1080p | 720p | 3d | webdl |
+
+## SoundCloud
+
+
diff --git a/lib/router.js b/lib/router.js
index 16a67e404c..1cc82656f8 100755
--- a/lib/router.js
+++ b/lib/router.js
@@ -1328,6 +1328,9 @@ router.get('/asahichinese-f/:category', require('./routes/asahichinese-f/index')
// 7x24小时快讯
router.get('/fx678/kx', require('./routes/fx678/kx'));
+// SoundCloud
+router.get('/soundcloud/tracks/:user', require('./routes/soundcloud/tracks'));
+
// dilidili
router.get('/dilidili/fanju/:id', require('./routes/dilidili/fanju'));
diff --git a/lib/routes/soundcloud/tracks.js b/lib/routes/soundcloud/tracks.js
new file mode 100644
index 0000000000..4a052dd1a6
--- /dev/null
+++ b/lib/routes/soundcloud/tracks.js
@@ -0,0 +1,28 @@
+const axios = require('../../utils/axios');
+const cheerio = require('cheerio');
+const util = require('./utils');
+
+module.exports = async (ctx) => {
+ const user = ctx.params.user;
+
+ const response = await axios({
+ method: 'get',
+ url: `https://soundcloud.com/${user}/tracks`,
+ headers: {
+ Referer: `https://soundcloud.com/${user}/tracks`,
+ },
+ });
+
+ const data = response.data;
+
+ const $ = cheerio.load(data, { xmlMode: true });
+ const list = $('body article.audible').get();
+ const result = await util.ProcessFeed(list, ctx.cache);
+
+ ctx.state.data = {
+ title: $('title').text(),
+ link: `https://soundcloud.com/${user}/tracks`,
+ description: $('meta[name="description"]').attr('content') || $('title').text(),
+ item: result,
+ };
+};
diff --git a/lib/routes/soundcloud/utils.js b/lib/routes/soundcloud/utils.js
new file mode 100644
index 0000000000..bd0a1a929b
--- /dev/null
+++ b/lib/routes/soundcloud/utils.js
@@ -0,0 +1,56 @@
+const axios = require('../../utils/axios');
+const cheerio = require('cheerio');
+const url = require('url');
+
+async function load(link) {
+ const response = await axios.get(link);
+ const $ = cheerio.load(response.data, { xmlMode: true });
+ let result = '';
+ const tmp = $('noscript article p');
+ result += `
${tmp.html()}
`;
+ const embed_url = $('noscript article div')
+ .first()
+ .children()
+ .first()
+ .attr('content');
+ result += `