Implement UI improvements and download management features
- Switch to light mode with black and white color scheme - Simplify channel subscription to use channel ID only instead of RSS URL - Add Downloads page to track all video download jobs - Fix Flask-Login session management bug in user loader - Always filter YouTube Shorts from feeds (case-insensitive) - Fix download service video URL attribute error - Fix watch page enum comparison for download status display UI Changes: - Update CSS to pure black/white/grayscale theme - Remove colored text and buttons - Use underlines for hover states instead of color changes - Improve visual hierarchy with grayscale shades Channel Subscription: - Accept channel ID directly instead of full RSS URL - Add validation for channel ID format (UC/UU prefix) - Update help text and examples for easier onboarding Downloads Page: - New route at /downloads showing all video download jobs - Display status, progress, and metadata for each download - Sortable by status (downloading, pending, failed, completed) - Actions to download, retry, or watch videos - Responsive grid layout with thumbnails Bug Fixes: - Fix user loader to properly use database session context manager - Fix download service accessing wrong attribute (link → video_url) - Fix watch page template enum value comparisons - Fix session detachment issues when accessing channel data 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -12,18 +12,17 @@
|
||||
<div class="form-container">
|
||||
<form method="POST" action="/add-channel" class="channel-form">
|
||||
<div class="form-group">
|
||||
<label for="rss_url">YouTube Channel RSS URL</label>
|
||||
<label for="channel_id">YouTube Channel ID</label>
|
||||
<input
|
||||
type="url"
|
||||
id="rss_url"
|
||||
name="rss_url"
|
||||
placeholder="https://www.youtube.com/feeds/videos.xml?channel_id=..."
|
||||
type="text"
|
||||
id="channel_id"
|
||||
name="channel_id"
|
||||
placeholder="UC_x5XG1OV2P6uZZ5FSM9Ttw"
|
||||
required
|
||||
class="form-input"
|
||||
>
|
||||
<small class="form-help">
|
||||
Enter the RSS feed URL for the YouTube channel.
|
||||
Format: https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID
|
||||
Enter the YouTube channel ID (starts with UC or UU).
|
||||
</small>
|
||||
</div>
|
||||
|
||||
@@ -35,23 +34,24 @@
|
||||
</div>
|
||||
|
||||
<div class="help-section">
|
||||
<h3>How to find a channel's RSS URL</h3>
|
||||
<h3>How to find a channel ID</h3>
|
||||
<ol>
|
||||
<li>Go to the YouTube channel page</li>
|
||||
<li>Look at the URL in your browser - it will contain the channel ID</li>
|
||||
<li>The channel URL format is usually:
|
||||
<li>Look at the URL in your browser</li>
|
||||
<li>If the URL is <code>youtube.com/channel/CHANNEL_ID</code>, copy the CHANNEL_ID part</li>
|
||||
<li>If the URL is <code>youtube.com/@username</code>, you'll need to:
|
||||
<ul>
|
||||
<li><code>youtube.com/channel/CHANNEL_ID</code> or</li>
|
||||
<li><code>youtube.com/@username</code> (you'll need to find the channel ID from the page source)</li>
|
||||
<li>Right-click the page and select "View Page Source"</li>
|
||||
<li>Search for "channelId" or "browse_id"</li>
|
||||
<li>Copy the ID that starts with "UC"</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Use the format: <code>https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID</code></li>
|
||||
</ol>
|
||||
|
||||
<h4>Example</h4>
|
||||
<p>
|
||||
For channel: <code>https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw</code><br>
|
||||
RSS URL: <code>https://www.youtube.com/feeds/videos.xml?channel_id=UC_x5XG1OV2P6uZZ5FSM9Ttw</code>
|
||||
For channel URL: <code>https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw</code><br>
|
||||
Channel ID: <code>UC_x5XG1OV2P6uZZ5FSM9Ttw</code>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user