mirror of
https://github.com/Tzahi12345/YoutubeDL-Material.git
synced 2026-03-07 20:10:03 +03:00
Fixed bug where subscription videos could not be downloaded from the player
This commit is contained in:
@@ -1997,13 +1997,26 @@ app.post('/api/downloadFile', async (req, res) => {
|
||||
let type = req.body.type;
|
||||
let outputName = req.body.outputName;
|
||||
let fullPathProvided = req.body.fullPathProvided;
|
||||
let subscriptionName = req.body.subscriptionName;
|
||||
let subscriptionPlaylist = req.body.subscriptionPlaylist;
|
||||
let file = null;
|
||||
if (!zip_mode) {
|
||||
fileNames = decodeURIComponent(fileNames);
|
||||
if (type === 'audio') {
|
||||
file = __dirname + '/' + audioFolderPath + fileNames + '.mp3';
|
||||
} else if (type === 'video') {
|
||||
file = __dirname + '/' + videoFolderPath + fileNames + '.mp4';
|
||||
if (!subscriptionName) {
|
||||
file = path.join(__dirname, audioFolderPath, fileNames + '.mp3');
|
||||
} else {
|
||||
let basePath = config_api.getConfigItem('ytdl_subscriptions_base_path');
|
||||
file = path.join(__dirname, basePath, (subscriptionPlaylist ? 'playlists' : 'channels'), subscriptionName, fileNames + '.mp3')
|
||||
}
|
||||
} else {
|
||||
// if type is 'subscription' or 'video', it's a video
|
||||
if (!subscriptionName) {
|
||||
file = path.join(__dirname, videoFolderPath, fileNames + '.mp4');
|
||||
} else {
|
||||
let basePath = config_api.getConfigItem('ytdl_subscriptions_base_path');
|
||||
file = path.join(__dirname, basePath, (subscriptionPlaylist ? 'playlists' : 'channels'), subscriptionName, fileNames + '.mp4')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i < fileNames.length; i++) {
|
||||
@@ -2011,10 +2024,9 @@ app.post('/api/downloadFile', async (req, res) => {
|
||||
}
|
||||
file = await createPlaylistZipFile(fileNames, type, outputName, fullPathProvided);
|
||||
}
|
||||
|
||||
res.sendFile(file, function (err) {
|
||||
if (err) {
|
||||
next(err);
|
||||
logger.error(err);
|
||||
} else if (fullPathProvided) {
|
||||
try {
|
||||
fs.unlinkSync(file);
|
||||
|
||||
@@ -250,7 +250,7 @@ export class PlayerComponent implements OnInit {
|
||||
const ext = (this.type === 'audio') ? '.mp3' : '.mp4';
|
||||
const filename = this.playlist[0].title;
|
||||
this.downloading = true;
|
||||
this.postsService.downloadFileFromServer(filename, this.type).subscribe(res => {
|
||||
this.postsService.downloadFileFromServer(filename, this.type, null, null, this.subscriptionName, this.subPlaylist).subscribe(res => {
|
||||
this.downloading = false;
|
||||
const blob: Blob = res;
|
||||
saveAs(blob, filename + ext);
|
||||
|
||||
@@ -122,12 +122,15 @@ export class PostsService {
|
||||
return this.http.post(this.path + 'getFile', {uid: uid, type: type});
|
||||
}
|
||||
|
||||
downloadFileFromServer(fileName, type, outputName = null, fullPathProvided = null) {
|
||||
downloadFileFromServer(fileName, type, outputName = null, fullPathProvided = null, subscriptionName = null, subPlaylist = null) {
|
||||
return this.http.post(this.path + 'downloadFile', {fileNames: fileName,
|
||||
type: type,
|
||||
zip_mode: Array.isArray(fileName),
|
||||
outputName: outputName,
|
||||
fullPathProvided: fullPathProvided},
|
||||
fullPathProvided: fullPathProvided,
|
||||
subscriptionName: subscriptionName,
|
||||
subPlaylist: subPlaylist
|
||||
},
|
||||
{responseType: 'blob'});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user