From e3374c573a5305d7ccec9fb65f5cccf731e1c226 Mon Sep 17 00:00:00 2001 From: Isaac Abadi Date: Tue, 15 Dec 2020 20:16:53 -0500 Subject: [PATCH 1/4] Args incompatible with video mode and audio-only mode will now get removed --- backend/app.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/backend/app.js b/backend/app.js index 823ea46..d2c4378 100644 --- a/backend/app.js +++ b/backend/app.js @@ -1505,6 +1505,10 @@ async function generateArgs(url, type, options) { } } + + // filter out incompatible args + downloadConfig = filterArgs(downloadConfig, is_audio); + logger.verbose(`youtube-dl args being used: ${downloadConfig.join(',')}`); return downloadConfig; } @@ -1535,6 +1539,13 @@ async function getVideoInfoByURL(url, args = [], download = null) { }); } +function filterArgs(args, isAudio) { + const video_only_args = ['--add-metadata', '--embed-subs', '--xattrs']; + const audio_only_args = ['-x', '--extract-audio', '--embed-thumbnail']; + const args_to_remove = isAudio ? video_only_args : audio_only_args; + return args.filter(x => !args_to_remove.includes(x)); +} + // currently only works for single urls async function getUrlInfos(urls) { let startDate = Date.now(); From cd93313cfc3a26a0cd113466567f55dc4cd47a17 Mon Sep 17 00:00:00 2001 From: Isaac Abadi Date: Fri, 18 Dec 2020 18:34:30 -0500 Subject: [PATCH 2/4] Updated Chrome/Firefox extension to 0.4 --- chrome-extension/background.js | 20 -------------- chrome-extension/manifest.json | 9 ++++-- chrome-extension/popup.html | 35 ++++++++++++++++++++++++ chrome-extension/popup.js | 50 ++++++++++++++++++++++++++++++++++ 4 files changed, 91 insertions(+), 23 deletions(-) delete mode 100644 chrome-extension/background.js create mode 100644 chrome-extension/popup.html create mode 100644 chrome-extension/popup.js diff --git a/chrome-extension/background.js b/chrome-extension/background.js deleted file mode 100644 index 4785a23..0000000 --- a/chrome-extension/background.js +++ /dev/null @@ -1,20 +0,0 @@ -// background.js - -// Called when the user clicks on the browser action. -chrome.browserAction.onClicked.addListener(function(tab) { - // get the frontend_url - chrome.storage.sync.get({ - frontend_url: 'http://localhost', - audio_only: false - }, function(items) { - chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { - var activeTab = tabs[0]; - var url = activeTab.url; - if (url.includes('youtube.com')) { - var new_url = items.frontend_url + '/#/home;url=' + encodeURIComponent(url) + ';audioOnly=' + items.audio_only; - chrome.tabs.create({ url: new_url }); - } - }); - }); - -}); \ No newline at end of file diff --git a/chrome-extension/manifest.json b/chrome-extension/manifest.json index 1ecf992..f5f4f79 100644 --- a/chrome-extension/manifest.json +++ b/chrome-extension/manifest.json @@ -1,17 +1,20 @@ { "manifest_version": 2, "name": "YoutubeDL-Material", - "version": "0.3", + "version": "0.4", "description": "The Official Firefox & Chrome Extension of YoutubeDL-Material, an open-source and self-hosted YouTube downloader.", "background": { "scripts": ["background.js"] }, "browser_action": { - "default_icon": "favicon.png" + "default_icon": "favicon.png", + "default_popup": "popup.html", + "default_title": "YoutubeDL-Material" }, "permissions": [ "tabs", - "storage" + "storage", + "contextMenus" ], "options_ui": { "page": "options.html", diff --git a/chrome-extension/popup.html b/chrome-extension/popup.html new file mode 100644 index 0000000..467925c --- /dev/null +++ b/chrome-extension/popup.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + +
+
+
+ +
+ +
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/chrome-extension/popup.js b/chrome-extension/popup.js new file mode 100644 index 0000000..9e48758 --- /dev/null +++ b/chrome-extension/popup.js @@ -0,0 +1,50 @@ +function audioOnlyClicked() { + console.log('audio only clicked'); + var audio_only = document.getElementById("audio_only").checked; + + // save state + + chrome.storage.sync.set({ + audio_only: audio_only + }, function() {}); +} + +function downloadVideo() { + var input_url = document.getElementById("url_input").value + // get the frontend_url + chrome.storage.sync.get({ + frontend_url: 'http://localhost', + audio_only: false + }, function(items) { + var download_url = items.frontend_url + '/#/home;url=' + encodeURIComponent(input_url) + ';audioOnly=' + items.audio_only; + chrome.tabs.create({ url: download_url }); + }); +} + +function loadInputs() { + // load audio-only input + chrome.storage.sync.get({ + frontend_url: 'http://localhost', + audio_only: false + }, function(items) { + document.getElementById("audio_only").checked = items.audio_only; + }); + + // load url input + chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { + var activeTab = tabs[0]; + var current_url = activeTab.url; + console.log(current_url); + if (current_url && current_url.includes('youtube.com')) { + document.getElementById("url_input").value = current_url; + } + }); +} + +document.getElementById('download').addEventListener('click', + downloadVideo); + +document.getElementById('audio_only').addEventListener('click', + audioOnlyClicked); + +document.addEventListener('DOMContentLoaded', loadInputs); From 5f1320501729826bb2ee3b7ccf6523c01f9cb8c9 Mon Sep 17 00:00:00 2001 From: Isaac Abadi Date: Fri, 18 Dec 2020 18:36:39 -0500 Subject: [PATCH 3/4] Removed background script declaration from the Chrome/Firefox extension --- chrome-extension/manifest.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/chrome-extension/manifest.json b/chrome-extension/manifest.json index f5f4f79..bf13650 100644 --- a/chrome-extension/manifest.json +++ b/chrome-extension/manifest.json @@ -3,9 +3,6 @@ "name": "YoutubeDL-Material", "version": "0.4", "description": "The Official Firefox & Chrome Extension of YoutubeDL-Material, an open-source and self-hosted YouTube downloader.", - "background": { - "scripts": ["background.js"] - }, "browser_action": { "default_icon": "favicon.png", "default_popup": "popup.html", From 0fec9d71a0fb9cffef3cae7ae33f4a30c6a52e9b Mon Sep 17 00:00:00 2001 From: Isaac Abadi Date: Fri, 18 Dec 2020 18:41:25 -0500 Subject: [PATCH 4/4] Updated Chrome and Firefox extension zips --- .../youtubedl-material-chrome-extension.zip | Bin 75374 -> 76040 bytes .../youtubedl-material-firefox-extension.zip | Bin 75374 -> 76109 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/chrome-extension/youtubedl-material-chrome-extension.zip b/chrome-extension/youtubedl-material-chrome-extension.zip index 87bb073ab0d26c6fa5f1b1ffb849cb9cab7d73bd..5cbca64eae8fa276ec23bf513632094d05d03d78 100644 GIT binary patch delta 2374 zcmZXV2|SefAIG0(h>WdqL_*9OMpkBQOSP;V*&MNE9P8L>C31`_SB~=h$u(NnG>o-a z6KfL|A(fmtLbk?a$S{_YL@39W9RJ76&Nl4K>ow2sJFnm8{rf)O&+qm9&OQ=O>J!Ej zP6`R{0X9FUEEfpe#Xmp7@bg@7@V`5DZtke=0F$kSHWzj_(PFCGHA1k)XS-y{N#qb$ zvYvc1gu5u+5Zk{?I+H>ijcR+l4+H>xT8knm0}%{J540slgg&5JkN@6A?b9F`7AN4G zEj3Quwy82=iH&G{NnQWjl00)b6r=NMmJ<~@cZ?=3X~Q^KDkI@2I$y+)Rk%>s{gq}^ zQs~=+nB%+B@YCh)^Da4VajTWd?03;Vbw()zsS92MG2srDM>4+1uN95Iaz_%C*QwOT zY=&H~B^#-|gv#T7k`@iKmb)ZW<+~$>IK7)px2B#hN|H@u75KK$u4N28&uDhM)paIl zcE+~L^-f>!vtml(;=#NTvzV{{q>JM~o3vZcIjdLC^}ZY$|8u^A@vG1%$#P6XiUX0W z%BD>6(Xqs%wFN_N%NjRYRa$2C)xE$xU+k{ zy+6vgiEBcgz7lAJ*sNq-G#cyxA)bXhfygup(W6BqyB01f0`?CH+YuNL7#fK43i0zz zv9k_fYk$^&8iZU!9drLMs11vukN7nwc<9gAzq*o=*-gQAkyht4d%|Y0S}sBf2i_UH zBcpq&>y_)8Hr7`~LVXu|Cv7IiOtDO{Db2?R;#20k+X3o#5GUP0;{J_?xIOid)=KJ` zGMwXN>4~5Fap}L@k|P8J=7#QGGh+-7$zAuH)oL}F)e?`j@VH$`&O0&qGztHd$XZn6VSh9W`>+r&&%jw6KiO4t0 z15dP@99|+>Q1g&iMb`m$i){2HIS^1ZGO3oJ49T}+>OOj03YUC-!*f!R&`~StHW}C= zqNdsEQZmz^dk<3~(X>o_RcMx(T=I0r0>NAhZNGbLB$BP?b+q9qF&}g$OfOw-%peA| zUB1<6ieeqHcam=C7tTG8AeE}EB(Hv0$^#aX8D)OZRQe!F%&e5#zI2fHy+orPlc`QRwZQz^pnZnz<)XOs4NgYW8{gaYbxZBbuX>qL zg$&>t(}{3*nV%5Ah3z9O#Ve zWTzam6*Qb0smNYK5l(^#L*U;wPpeb`6`bI^!|m@#0KK^cKtK+NhH&J8(=2eU=YTz> zp9P|QdGRLzw*e8BQg$+3tN~y_7Xioss$4z5<){EO3HDXeC{U>cXH9XVUC`*BX|4=>Xk+DTi%Gz`=sZ- z5lvYYR6r0NY2T=VpPOF4%RBT-M_%&$c$nqIrD4Bj|D|rrYGDEc5OLcT7gDV0~OTKhf47@xcXBG z54g|&$@8iqNP@=*tsLHra8#sqtAX@yaVpI0Pq?7^@C??yed3of&T+=BfXIT delta 1653 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 WAa8(fT)qcy1cD%M?bL!y7Wf--kls`P delta 1829 zcmX?miRIlHmihp1W)=|!1_lm>iECm5I*l9Hau^vHt}rn$@B&4X5|gvji}FkJQuMNl za|3+64?76#W&b44W}|X+)5kfF9IJ#_97Xt*Qa4-YF1kH;m%Q%MFZ-=;U)d7&e3Nzl zy*)F{Ls@%6=5xDW%=-B7v(9;m*FLdpYlhwGqvfiKnigWK`U#F#9vXK+h zSCwvYDLnGNYQ`Ir(uHC{uiMYDZ+UU5a!Y%WWQuW9>^w&H{@4VIjPtUQX|Eznmg&nK ztyNGL|C6^?=!{-)zWn}KSsJ$l!b(FWgD!1(;%sOan0iI_?1@>qyv3O|-YMI?_8@ zU8;6h&i|9TQF|SK%)y_mt7ki(T=8O!QQ%_zZr!5-(jr~cj%LiLU71s8{Q4^YvZFs0 zA4+w-T9tM4XUpZ=O^jQ*O!nE__0Qa?bb8w58-a`b_@>uBIjr_9@O{bK#E0tt^H#~6 zYIv$=xwd`jx5eGd{!ZZAdRhJakKeqom|nFwm?83yQ?~xf#KHidO3AsAz(`#Wjnv%4yv(%J;u2t#=I50L z-Ss+bAhJ)qrhNkU`fWxcf@P{d+8=yKGgnehdFfdlGkMCKlG&&3-A#FW%W|X0tT~_O zzE?l{{ikF%zxky_Y+Oma^Dac%rA}YGE`4d^j_3L7IL`{bi$7*8d0_FHAB^=zJ|8{H zu1+sjc)F1vhbyb!#uZVg)L9>lC{-~KSbuIXkK0QVco{cFBenqnMc)&tbXsl;7#+7MXqnF zxZazw#Cc48#A6a0pgUWOBP2IS_j=~c`m5U>sN0xUG*2md7uxU96cbcrGlTowX(p?- zqm2jO@=tMTR@ZyQGVfc%8lGjpTxaz8FAxpXe6(c^$3IU`Q;nW_FM*bZZ3~1~GF>?( zn^i0NS>?Y^(5jo0|8Mys%J4QfQ6+3<(K2J>C!bd|8C<-0k#*O;lWH{w-agv&_sDm4 zU<7hO^A<3Mwy%_7bYKF-%=R~OjK>)38JX-EaOFG|VBP}(1u%)054oVij0_SCQjv47 zWxl`42&120c@+QZ-Brc_ZkfX4=U((N4S`pLUor$l5_=jiyo9=Lk*)hW9|s4R#X9 zbqYZ2=Fh;8mROdVoS&yxke7~Z_{U`s|H9}8ijRT*t;g?SX1M7BK+}&$Ffe4H`q=3- z#K$lio0EY)4*2zR|GyiC3=C%b85o4&hAJ?yFfhD`n4YS}sHn~v1~CeqM)o}@@YbpU z1Mg$k^iyh#D)rGzAezu=G))0VX7VcBlVM=E8N|RKfMh=d!@U1sPZi`B6r>jE(DLRnNXG`)g2BjGoEguAm7vyLGr^gs2HyYiEk