- Flask-based web interface on port 8080 - Dashboard with channel statistics and sync status - Channel management (add/remove channels via UI) - Settings page for all configuration options - Cookie file upload interface - Real-time log viewer - Manual sync trigger from web UI - Updated Dockerfile to include Flask and web assets - Updated Unraid template with WebUI port - Updated README with web UI documentation
81 lines
3.5 KiB
HTML
81 lines
3.5 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Cookies{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="page-header">
|
|
<h2>YouTube Cookies</h2>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h3>Cookie Status</h3>
|
|
<div class="status-info">
|
|
<div class="status-item">
|
|
<span class="label">Status:</span>
|
|
<span class="value {% if has_cookies %}status-ok{% else %}status-warning{% endif %}">
|
|
{% if has_cookies %}
|
|
Cookies file configured
|
|
{% else %}
|
|
No cookies file uploaded
|
|
{% endif %}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
{% if has_cookies %}
|
|
<div class="alert alert-success">
|
|
<strong>Success!</strong> YouTube cookies are configured. This helps prevent "Sign in to confirm you're not a bot" errors.
|
|
</div>
|
|
<a href="{{ url_for('delete_cookies') }}" class="btn btn-danger"
|
|
onclick="return confirm('Delete cookies file? You may experience download errors without it.')">
|
|
Delete Cookies
|
|
</a>
|
|
{% else %}
|
|
<div class="alert alert-warning">
|
|
<strong>Warning:</strong> Without cookies, YouTube may block downloads with "Sign in to confirm you're not a bot" errors.
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h3>Upload Cookies File</h3>
|
|
<form method="POST" action="{{ url_for('cookies') }}" enctype="multipart/form-data" class="form">
|
|
<div class="form-group">
|
|
<label for="cookies_file">Select cookies.txt file</label>
|
|
<input type="file" id="cookies_file" name="cookies_file" accept=".txt" class="form-control" required>
|
|
<small class="form-help">Must be in Netscape format (cookies.txt)</small>
|
|
</div>
|
|
|
|
<button type="submit" class="btn btn-primary">Upload Cookies</button>
|
|
</form>
|
|
</div>
|
|
|
|
<div class="card info-card">
|
|
<h3>How to Export YouTube Cookies</h3>
|
|
|
|
<h4>Method 1: Browser Extension (Recommended)</h4>
|
|
<ol>
|
|
<li>Install the <strong>"Get cookies.txt LOCALLY"</strong> extension for Firefox or Chrome:
|
|
<ul>
|
|
<li>Firefox: <a href="https://addons.mozilla.org/en-US/firefox/addon/cookies-txt/" target="_blank">addons.mozilla.org/firefox/addon/cookies-txt</a></li>
|
|
<li>Chrome: <a href="https://chrome.google.com/webstore/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc" target="_blank">Chrome Web Store</a></li>
|
|
</ul>
|
|
</li>
|
|
<li>Go to <strong>youtube.com</strong> and make sure you're logged in</li>
|
|
<li>Click the extension icon in your browser toolbar</li>
|
|
<li>Click "Export" or "Download" to save cookies.txt</li>
|
|
<li>Upload the file here</li>
|
|
</ol>
|
|
|
|
<h4>Method 2: Using yt-dlp (Advanced)</h4>
|
|
<p>If you have yt-dlp installed locally:</p>
|
|
<pre><code>yt-dlp --cookies-from-browser firefox --cookies cookies.txt --skip-download "https://www.youtube.com/watch?v=dQw4w9WgXcQ"</code></pre>
|
|
<p>Replace <code>firefox</code> with <code>chrome</code>, <code>edge</code>, or <code>safari</code> as needed.</p>
|
|
|
|
<h4>Why Are Cookies Needed?</h4>
|
|
<p>YouTube uses bot detection to prevent automated downloads. By providing cookies from a logged-in browser session, yt-dlp can authenticate as your browser and avoid these restrictions.</p>
|
|
|
|
<p><strong>Security Note:</strong> Cookies contain authentication tokens. Only upload cookies to trusted applications. The cookie file stays on your server and is not transmitted elsewhere.</p>
|
|
</div>
|
|
{% endblock %}
|