| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Major Features:
- HD video thumbnails (hq720.jpg) with automatic fallback to lower qualities
- HD channel avatars (240x240 instead of 88x88)
- YouTube 2024+ lockupViewModel support for channel playlists
- youtubei/v1/browse API integration for channel playlist tabs
- yt-dlp integration for multi-language audio and subtitles
Bug Fixes:
- Fixed undefined `abort` import in playlist.py
- Fixed undefined functions in proto.py (encode_varint, bytes_to_hex, succinct_encode)
- Fixed missing `traceback` import in proto_debug.py
- Fixed blurry playlist thumbnails using default.jpg instead of HD versions
- Fixed channel playlists page using deprecated pbj=1 format
Improvements:
- Automatic thumbnail fallback system (hq720 → sddefault → hqdefault → mqdefault → default)
- JavaScript thumbnail_fallback() handler for 404 errors
- Better thumbnail quality across all pages (watch, channel, playlist, subscriptions)
- Consistent HD avatar display for all channel items
- Settings system automatically adds new settings without breaking user config
Files Modified:
- youtube/watch.py - HD thumbnails for related videos and playlist items
- youtube/channel.py - HD thumbnails for channel playlists, youtubei API integration
- youtube/playlist.py - HD thumbnails, fixed abort import
- youtube/util.py - HD thumbnail URLs, avatar HD upgrade, prefix_url improvements
- youtube/comments.py - HD video thumbnail
- youtube/subscriptions.py - HD thumbnails, fixed abort import
- youtube/yt_data_extract/common.py - lockupViewModel support, extract_lockup_view_model_info()
- youtube/yt_data_extract/everything_else.py - HD playlist thumbnails
- youtube/proto.py - Fixed undefined function references
- youtube/proto_debug.py - Added traceback import
- youtube/static/js/common.js - thumbnail_fallback() handler
- youtube/templates/*.html - Added onerror handlers for thumbnail fallback
- youtube/version.py - Bump to v0.4.0
Technical Details:
- All thumbnail URLs now use hq720.jpg (1280x720) when available
- Fallback handled client-side via JavaScript onerror handler
- Server-side avatar upgrade via regex in util.prefix_url()
- lockupViewModel parser extracts contentType, metadata, and first_video_id
- Channel playlist tabs now use youtubei/v1/browse instead of deprecated pbj=1
- Settings version system ensures backward compatibility
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Made changes to the styles on the video playback page to enhance visibility and address issues with the video player.
Added a new custom style file for Plyr, and removed redundant and unused styles in watch.css.
Specific changes:
- Added custom_plyr.css for Plyr styles.
- Removed redundant styles related to playback issues in watch.css
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
YouTube now displays 2K comments instead of 2359, for instance
|
| |
|
|
|
|
| |
Previous commit replaced it with shorts-filtering, use sort code
number 4 for that instead. Sort by oldest is still broken
pending reverse engineering of new ctoken format, however.
|
| |
|
|
|
|
|
|
|
| |
This will be much less likely to break moving forward since
YouTube rarely changes the playlist api
Videos page now includes shorts and streams in the video lsit
Also include an option to filter out shorts on the videos page
|
| | |
|
| |
|
|
|
|
|
| |
Add channel tabs to the channel template and script
Update continuation token to request different tabs
Add support for 'reelItemRenderer' format required to extract shorts
|
| |
|
|
| |
Closes #160
|
| |
|
|
|
|
| |
Huge thanks to @michaelweiser
Different sortings still don't work for videos and playlists
|
| | |
|
| | |
|
| |
|
|
|
| |
Ref: https://torrentfreak.com/riaa-thwarts-youts-attempt-to-declare-youtube-ripping-legal-221002/
Archive: https://archive.ph/OZQbN
|
| |
|
|
|
| |
because iceweasel not support engine v8+
More info: https://repo.palemoon.org/MoonchildProductions/UXP/issues/1675
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| | |
|
| |
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Ref: https://blog.youtube/news-and-events/update-to-youtube/
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allows for ranked preferences for h264, av1, and vp9 codecs in
settings, along with equal preferences which are tiebroken using
smaller file size.
For each quality, gives av-merge a list of video sources
and audio sources sorted based on preference & file size. It
will pick the first one that the browser supports.
Closes #84
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
|
|
|
| |
This avoids an ugly error if the user forgets to select a file
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
|
|
|
| |
Closes #82
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
According to
https://github.com/iv-org/invidious/issues/2319
Google Takeout changed the format from json to csv
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| | |
|
| | |
|
| |
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
|
|
|
|
|
| |
The number of inline code blocks and the dependencies between them
became unmanageable.
From 9d96c07a3c2e68f1893634574c3be64e41a2c041 Mon Sep 17 00:00:00 2001
From: James Taylor <user234683@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
| |
The video quality is only changed when the quality selector
changes. If it was changed and the user refreshes, Firefox
remembers the selected value, but since no change event is fired,
the select will display the wrong quality.
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
If a fetchRange network request finished after the quality was
changed, there would be a "InvalidStateError: An attempt was made
to use an object that is not, or is no longer, usable" because
appendSegment was trying to append to the sourceBuffer that was
unusable after the video src was changed to a new mediaSource.
Adds a close method to the AVMerge class to properly clean and
close everything so these sorts of errors won't happen.
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|