feat: cookies-from-browser per bypass HTTP 403 YouTube (v1.10.1)
Alcuni video YouTube restituiscono 403 anche con yt-dlp aggiornato. Fix: nuova opzione Impostazioni "Cookies da browser" con dropdown (chrome/safari/firefox/edge/brave). Priorita': file cookies.txt esistente -> --cookies-from-browser <name> -> nessuno. Bonus: - core/paths.py::_bundle_dirs() ora include <project>/bundle_bin/ anche in dev, cosi' python main.py usa lo stesso yt-dlp del build invece di Homebrew (spesso obsoleto) - Helper _cookie_args() in downloader.py per non ripetere la logica su tutti i punti dove serve --cookies
This commit is contained in:
1 parent
e7d11d0235
commit
39a117f08b
6 files changed
+60
-15
No files matched your search
@@ -563,6 +563,24 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label class="field-label">Cookies da browser (bypass 403 YouTube)</label>
|
||||
<div class="row">
|
||||
<select id="cookiesBrowserSelect" class="input pill" style="max-width:220px;">
|
||||
<option value="">Nessuno</option>
|
||||
<option value="chrome">Chrome</option>
|
||||
<option value="safari">Safari</option>
|
||||
<option value="firefox">Firefox</option>
|
||||
<option value="edge">Edge</option>
|
||||
<option value="brave">Brave</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="hint">
|
||||
<span class="hint-ico">ⓘ</span>
|
||||
<div>Alcuni video YouTube (musica protetta, region-lock, età) danno HTTP 403 senza cookies autenticati. Selezionando un browser, l'app legge i cookies dal tuo profilo — richiede che tu sia loggato su YouTube in quel browser. Se hai anche cookies.txt sopra, ha priorità il file.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label class="field-label">Cartella output predefinita</label>
|
||||
<div class="row">
|
||||
|
||||
@@ -485,6 +485,7 @@ async function init() {
|
||||
$("#bitrateSelect").value = state.config.bitrate || "320K";
|
||||
$("#hqThresholdInput").value = state.config.hq_threshold || 310;
|
||||
$("#cookiesInput").value = state.config.cookies_path || "";
|
||||
if ($("#cookiesBrowserSelect")) $("#cookiesBrowserSelect").value = state.config.cookies_browser || "";
|
||||
$("#outputInput").value = state.config.output_dir || "";
|
||||
$("#themeSelect").value = state.config.theme || "dark";
|
||||
applyTheme(state.config.theme);
|
||||
@@ -1293,6 +1294,7 @@ $("#saveBtn").addEventListener("click", async () => {
|
||||
bitrate: $("#bitrateSelect").value,
|
||||
hq_threshold: parseInt($("#hqThresholdInput").value, 10) || 310,
|
||||
cookies_path: $("#cookiesInput").value,
|
||||
cookies_browser: $("#cookiesBrowserSelect") ? $("#cookiesBrowserSelect").value : "",
|
||||
output_dir: $("#outputInput").value,
|
||||
theme: $("#themeSelect").value,
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user