added ability to download full audios from tiktok (3.3.5)
- it's now possible to download full audios from tiktok videos, you just have to turn that on in settings. - tiktok audios are better in quality when it's possible to get exact audio used in video and not the full version of it. - cleaned up the way user preference stuff is passed over between modules, should be way more flexible now. - added audio ignore list to services config json instead of hardcoding it.
This commit is contained in:
@@ -17,14 +17,18 @@ export default async function(obj) {
|
||||
obj.postId = html.split('aweme/detail/')[1].split('?')[0]
|
||||
}
|
||||
}
|
||||
if (!obj.noWatermark) {
|
||||
if (!obj.noWatermark && !obj.isAudioOnly) {
|
||||
let html = await got.get(`https://tiktok.com/@video/video/${obj.postId}`, { headers: { "user-agent": genericUserAgent } });
|
||||
html.on('error', (err) => {
|
||||
return { error: loc(obj.lang, 'ErrorCantConnectToServiceAPI', 'tiktok') };
|
||||
});
|
||||
html = html.body;
|
||||
if (html.includes(',"preloadList":[{"url":"')) {
|
||||
return { urls: unicodeDecode(html.split(',"preloadList":[{"url":"')[1].split('","id":"')[0].trim()), audioFilename: `tiktok_${obj.postId}_audio`, filename: `tiktok_${obj.postId}.mp4` };
|
||||
return {
|
||||
urls: unicodeDecode(html.split(',"preloadList":[{"url":"')[1].split('","id":"')[0].trim()),
|
||||
audioFilename: `tiktok_${obj.postId}_audio`,
|
||||
filename: `tiktok_${obj.postId}.mp4`
|
||||
};
|
||||
} else {
|
||||
return { error: loc(obj.lang, 'ErrorEmptyDownload') };
|
||||
}
|
||||
@@ -34,8 +38,27 @@ export default async function(obj) {
|
||||
return { error: loc(obj.lang, 'ErrorCantConnectToServiceAPI', 'tiktok') };
|
||||
});
|
||||
detail = JSON.parse(detail.body);
|
||||
if (detail["aweme_detail"]["video"]["play_addr"]["url_list"][0]) {
|
||||
return { urls: detail["aweme_detail"]["video"]["play_addr"]["url_list"][0], audioFilename: `tiktok_${obj.postId}_audio`, filename: `tiktok_${obj.postId}_nw.mp4` };
|
||||
let video = detail["aweme_detail"]["video"]["play_addr"]["url_list"][0];
|
||||
let audio = obj.isAudioOnly ? detail["aweme_detail"]["music"]["play_url"]["url_list"][0] : false;
|
||||
if (audio && obj.fullAudio) {
|
||||
return {
|
||||
urls: audio,
|
||||
audioFilename: `tiktok_${obj.postId}_audio_full`,
|
||||
isAudio: true
|
||||
}
|
||||
} else if (audio && audio.slice(-4) == ".mp3") {
|
||||
return {
|
||||
urls: audio,
|
||||
audioFilename: `tiktok_${obj.postId}_audio`,
|
||||
isAudio: true,
|
||||
isMp3: true,
|
||||
};
|
||||
} else if (video) {
|
||||
return {
|
||||
urls: video,
|
||||
audioFilename: `tiktok_${obj.postId}_audio`,
|
||||
filename: `tiktok_${obj.postId}_nw.mp4`
|
||||
};
|
||||
} else {
|
||||
return { error: loc(obj.lang, 'ErrorEmptyDownload') };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user