Commit Graph

  • 56af1f0735 fix: adjust initialData extraction for new a/b change master sherl 2025-12-29 23:32:06 +01:00
  • 72266aad0f chore: remove unnecessary string from age-restricted videos' description sherl 2025-11-22 21:42:47 +01:00
  • 900cc92229 fix: play other formats than 16x9 on yattee reports factually wrong, but close enough resolution. to be removed when this will be fixed on yattee's end. sherl 2025-11-21 22:38:43 +01:00
  • 2687cc2bdc hotfix: fix typo sherl 2025-11-21 10:15:37 +01:00
  • 4a9d59c9b4 fix: filter out DRC and VB audio from wdata sherl 2025-11-21 09:59:22 +01:00
  • 4af581ab7c fix: use acodec for audio streams instead of vcodec should fix some issues with more strict DASH players sherl 2025-11-21 09:44:30 +01:00
  • d1f381220d fix: use exclusively tv player for age-restricted videos also filter out DRC audio sherl 2025-11-20 17:54:41 +01:00
  • eebf434f3e feat: support age-restricted videos when cookies are provided sherl 2025-11-20 13:02:38 +01:00
  • c979c97077 feat: allow debugging with pdb allows user to debug the webapp when admin API key is passed as a param. also - an anniversary, 100th commit! sherl 2025-11-13 11:28:40 +01:00
  • 11c94c757e fix: don't show playlists in related videos feed items in related feed are now checked by contentType to determine if they are videos or not sherl 2025-11-07 18:45:11 +01:00
  • 4421e68d9d fix: format stream itag is now a string (as it should) fixes playback on clipious sherl 2025-11-07 18:43:07 +01:00
  • da2daab16a feat: preliminary DASH support (for freetube/yattee, no manifest) rewrites struct returned by innertube with video url retrieved by yt-dlp works on freetube with proxying disabled; enabling proxying causes horrible performance. yattee seems unaffected. sherl 2025-11-06 21:53:32 +01:00
  • 05b81e55da chore: bump version strings sherl 2025-11-02 04:07:41 +01:00
  • 158dcc3b7f fix: comment reply count extraction suspected a/b test, sorting comments with "top" option returns a new ctoken which will return "Replies" text for comments without replies. to get rid of this behavior it'd be best to create known good ctokens for every request. sherl 2025-10-19 23:32:12 +02:00
  • 668e8c32aa feat: support for lockupViewModel inside of channels' video feed this is rare and currently a/b tested sherl 2025-10-18 14:39:55 +02:00
  • 760aaccfff feat: add debug printing allows to print messages to stdout only if the instance has debugging enabled sherl 2025-10-18 14:23:08 +02:00
  • da54bd0818 chore: bump version strings sherl 2025-10-15 01:17:55 +02:00
  • b0845d723a feat: storyboard generation (json, webvtt) and proxy adds support for video storyboard extraction, generation and proxying sherl 2025-10-15 00:03:45 +02:00
  • c760104d70 fix: support md5 url rewriting for proxied instances depends on public_facing_url instead of perceived request url (which can, and will be different for proxied instances) sherl 2025-10-12 19:10:28 +02:00
  • d6cb0fe692 feat: support for md5 videoplayback url shortening md5(url) can be supplied as md5 param to shorten videoplayback url sherl 2025-10-12 18:52:38 +02:00
  • 81fba8c4d0 fix: handle forwarded requests proxied requests are now counted correctly sherl 2025-10-05 23:42:23 +02:00
  • 260039c307 hotfix: make the chunk size an integer in videoplayback proxy sherl 2025-10-05 20:03:43 +02:00
  • 2b24fc2906 feat: videoplayback proxying adds support for proxying videos through the instance the support is configurable, and disabled by default sherl 2025-10-05 19:59:23 +02:00
  • 002e3cba33 hotfix: glaring mistake while parsing text runs sherl 2025-10-05 18:15:56 +02:00
  • 5944fd2458 feat: support for "trending" playlists (without authors) also introduces a fix for text run parsing (by forcing obj to be a dict) sherl 2025-10-05 17:22:15 +02:00
  • 719b545cb4 fix: livestream data extraction prevents "NoneType" is not iterable error sherl 2025-10-05 11:12:44 +02:00
  • 468795a7a2 feat: search pagination adds support for getting past the first page of search results sherl 2025-10-03 01:16:56 +02:00
  • 7eb4452fec feat: make maxres provide the best quality thumbnail available sherl 2025-10-02 12:42:12 +02:00
  • e7ae42f289 fix: simulate pagination for clients that rely on it some clients (like clipious) use pagination on playlists and rely on videos field to tell if the playlist has no more videos. here all videos are returned for non-paginated queries, with empty video field returned for every paginated query, which page is not equal to "1" sherl 2025-10-02 02:27:51 +02:00
  • 5bb542826e feat: rewrite channel api endpoints in reversed order sherl 2025-10-02 01:23:37 +02:00
  • 365c54d214 fix: actually fall back to the android_vr extractor sherl 2025-10-01 09:10:15 +02:00
  • a2e2fedc90 fix: handle empty channel tabs gracefully prevents 500s when a channel tab is empty sherl 2025-09-28 10:12:23 +02:00
  • 4a311f185c fix: prefer android_vr extractor by default this is possibly one of the last known extractors unaffected by signature extraction and decryption shenanigans, which cripples load times on lower-end hardware sherl 2025-09-28 07:47:17 +02:00
  • 45073fff67 feat: extract avatar of the channel which added a video to a collaborative playlist surprisingly, innertube response contains the user's avatar, but doesn't contain the ucid, name nor the handle sherl 2025-09-28 06:59:53 +02:00
  • f73e6c11d4 fix: playlist description and collaborative playlist rendering falls back to the more "universal" microformat for description extraction and provides limited support for collaborative videos (no channel ucids or collaborator names) sherl 2025-09-28 06:32:39 +02:00
  • 34e00e2492 fix: handle collaboratively authored videos in playlists and videos endpoint currently, the videos endpoint returns the video uploader name, and not "author1, author2, author3" as is the case for videoRenderer and playlistVideoRenderer - this might change in the future in order for the endpoints to return the same data sherl 2025-09-28 05:02:51 +02:00
  • f63c620541 fix: avatars for artist channels ensures that we get the renderers, rather than expecting them to always be the first or second element of primary_results (which is not the case if the video has for example the "Nearest event" ticketShelfRenderer) sherl 2025-09-27 23:52:50 +02:00
  • f2adc2e561 fix: verified badge extraction for search results also introduces support for collaborative videos (mainly music videos) sherl 2025-09-27 21:41:51 +02:00
  • e6d32091e1 fix: don't check for plid length playlist ids can be of many lengths (at least 18, 34 and 36) and there doesn't seem to be a rule for how many characters encode a typical (non-mix, video-related) playlist. such validation requires more research. sherl 2025-09-27 20:41:07 +02:00
  • b98aa718b0 fix: fix shorts-only playlists by using on-demand ctoken generator this will allow for retrieving playlist videos as playlistVideoRenderer which we already have a parser for. another benefit is being able to list videos in a playlist which have been deleted/made private. also fixes livestream parsing sherl 2025-09-26 22:49:16 +02:00
  • 30850a7ce0 feat: protobuf ctoken generation this commit introduces on-demand ctoken generation with a wrapper for more concise, protodec-like syntax (see producePlaylistContinuation) sherl 2025-09-26 22:40:29 +02:00
  • 1c9174c888 feat: playlist browsing pagination still needs refinement for some of the clients. on another note, this is an anniversary commit, as ythdd turns 1 year today. sherl 2025-09-25 23:30:59 +02:00
  • 6d0c70696b docs: reorganize and update TODOs sherl 2025-09-25 06:50:10 +02:00
  • 509e81aafa feat: add a temporary proxy for no_thumbnail ideally, this would be served from a local resource instead of proxying sherl 2025-09-25 06:36:23 +02:00
  • caa9e0c2b1 feat: list traversal improvements with safeTraverse() translateLinks() also now strips any params (if present) by default sherl 2025-09-25 06:34:13 +02:00
  • 873abbd413 chore: update version strings sherl 2025-09-25 06:30:53 +02:00
  • bedcaff7c0 fix: skip playlists in related video feed they aren't returned by the invidious api in the first place sherl 2025-09-23 20:10:19 +02:00
  • 5dcf8c81e0 fix: strip playlist thumbnails off of unnecessary tracking params sherl 2025-09-23 04:20:15 +02:00
  • 60712f3b5d fix: provide "latest" endpoint for channels sherl 2025-09-23 04:19:42 +02:00
  • c20d4c34aa feat: check for playback errors and return them in invidious api fashion sherl 2025-09-22 10:50:33 +02:00
  • be697bb572 chore: update version strings sherl 2025-09-21 21:16:05 +02:00
  • 3e84cf3443 fix: check video id for validity before passing to yt-dlp and extractor sherl 2025-09-19 04:55:34 +02:00
  • 4a3937a923 feat: livestream browsing adds the ability to browse channel's livestreams, just like with shorts, videos and playlists sherl 2025-09-18 08:09:33 +02:00
  • c3fae689e1 feat: show current viewer count for live streams in search results and related videos feed previously it would fall back to 0 sherl 2025-09-17 01:55:35 +02:00
  • 4cfb1db7d0 fix: handle url rewrite when querying wrong endpoint materialious is guilty of this sherl 2025-09-17 01:52:45 +02:00
  • 5a1e772909 feat: add support for video livestreams sherl 2025-09-17 00:13:20 +02:00
  • 7c4991cea7 fix: fix for infinite recursion/deadlock for specific channels this applies mainly for meta channels like UC4R8DWoMoI7CAwX8_LjQHig, which ythdd can't parse and thus doesn't support sherl 2025-09-16 23:36:53 +02:00
  • 5f88d6f096 docs: update todos and error message when comment extraction fails sherl 2025-09-16 23:35:07 +02:00
  • eaaa14c4d8 feat: treat verified artists as verified users sherl 2025-09-16 23:28:46 +02:00
  • ef177f7200 feat: video comments endpoint sherl 2025-09-14 07:02:22 +02:00
  • d0d2298186 fix: rely on hardcoded default user avatar for failed requests sherl 2025-09-14 04:01:19 +02:00
  • 7086177a58 fix: make safeTraverse handle IndexErrors sherl 2025-09-14 01:06:40 +02:00
  • dc8009db23 chore: update innertube client strings sherl 2025-09-13 04:05:25 +02:00
  • e562d1ee14 hotfix: rename a variable used for extraction of recommended feed also minor nitpicky comment corrections sherl 2025-09-12 04:05:56 +02:00
  • 96c1b5396e feat: channel browsing and code overhaul a lot of code responsible for parsing data into invidious-compatible structures has been moved to the ythdd_struct_parser file sherl 2025-09-12 03:48:57 +02:00
  • 256d21bbcd fix: fixes to context creation, avatar url generation also implemented basic badge extraction and continuation for channels sherl 2025-09-12 00:15:06 +02:00
  • 2a9826eb03 refactor: support search caching remains to be seen whether this is a good idea or not sherl 2025-09-07 05:30:16 +02:00
  • 37e932956d feat: search suggestions sherl 2025-09-07 05:05:11 +02:00
  • 15d2de5228 chore: change the hostname in default config to match the one assumed (if not explicitly passed to the script, e.g. when running with flask) sherl 2025-09-05 18:51:09 +02:00
  • 3cf203ee27 fix: reintroduced fix for live or upcoming videos in related feed sherl 2025-09-05 18:19:18 +02:00
  • a814797363 feat: basic support for search queries currently returns videos and playlists - the latter don't yet have an API endpoint sherl 2025-09-05 06:23:45 +02:00
  • 89f8f2a786 fix: yattee's mpv-specific resolution workaround for some reason Yattee's mpv backend won't play videos which are using an "unusual" aspect ratio (at least ones which are not 360p) sherl 2025-09-05 05:17:13 +02:00
  • 5e655ddd2c chore: update version strings in headers and context json sherl 2025-09-04 21:45:18 +02:00
  • 3e7589aea6 fix: revert previous commit, convert to unix epoch at the end sherl 2025-08-05 23:45:11 +02:00
  • cd34b2e406 fix: premiere timestamp should be unix epoch, not iso time fixes past live stream playback on clipious sherl 2025-07-24 20:40:59 +02:00
  • 3a0a89f737 fix: fixes server error when recommended videos are "LIVE" or "Upcoming" sherl 2025-07-08 14:51:04 +02:00
  • 55a116e042 hotfix: make it 3 hours, not 3 minutes sherl 2025-07-07 11:42:22 +02:00
  • 51b94842e3 fix: workaround long load times with naive in-memory caching sherl 2025-07-07 11:34:57 +02:00
  • 3253447c72 fix: support new lockupViewModel for recommended videos sherl 2025-07-02 23:17:16 +02:00
  • 32c563a45a fix: ensure clen is a string fixes clipious playback sherl 2025-06-29 14:28:43 +02:00
  • 3ea3558990 fix: retrieve itag 18 even if it's in https protocol sherl 2025-06-28 20:52:38 +02:00
  • 6cdae051b5 fix: make clipious and freetube work by adding some made-up metadata for the most part ok, but there are some (music) videos which won't work sherl 2025-06-28 05:56:05 +02:00
  • 4e066e4b23 fix: rebuild formats from yt-dlp data makes yattee and freetube work sherl 2025-06-27 23:02:57 +02:00
  • 837567f8c8 hotfix: add colors to ythdd_api debug trace sherl 2025-06-20 23:29:56 +02:00
  • 99e914557a fix: backport fixes from a sister project sherl 2025-06-20 23:23:00 +02:00
  • 06679ee165 hotfix: rely (more) on yt-dlp for extraction (part 1/2) adaptiveFormats and hlsUrl need to be fixed (or maybe replaced by DASH?) sherl 2025-02-28 01:02:05 +01:00
  • dbc90d3f74 update extractor headers, add support for checking badges and avatars sherl 2025-02-28 00:57:40 +01:00
  • d1b9f90e7e add support for GUC proxy, move safeTraverse to ythdd_globals sherl 2025-02-28 00:56:13 +01:00
  • 019e47edd9 revert addition of second audio-only formatStream, which breaks Clipious sherl 2025-01-18 03:47:36 +01:00
  • 8fa05486f1 print errors, provide an additional audio-only formatStream sherl 2025-01-18 01:45:43 +01:00
  • 71a24a4870 check if the format with best bitrate is a video sherl 2025-01-08 14:58:04 +01:00
  • 2837cdf612 make FreeTube work (by using video only streams), fix livestream dates sherl 2024-12-29 04:59:46 +01:00
  • ee31114e51 add owner badges for related videos, use short text for text view count sherl 2024-12-28 06:33:39 +01:00
  • dd102cb6ae introduce related videos, small fixes to invidious translation layer sherl 2024-12-28 04:53:37 +01:00
  • 3a524d96a0 Update README.md sherl 2024-12-27 02:23:55 +01:00
  • 3212627d89 introduce a bare-bones invidious API translation layer also rewritten ythdd_api.py a tiny bit sherl 2024-12-26 20:38:33 +01:00
  • 0099736a74 new iOS/web extractors, image proxying done by views.py - ythdd_globals.py - added helper function to get user-configured header - ythdd.py - now checks for config.toml in work directory - requirements.txt - add brotli, so that requests can decompress innertube request sherl 2024-12-26 20:15:45 +01:00
  • 1e4b05c33b major rework of ythdd.py, new method for setting config in ythdd_globals.py - slightly modified config, api keys now have the value "CHANGEME" - requirements.txt has new dependency, flask apscheduler - ythdd.py has been reworked, support for argument parsing has been added, code is now split into functions - ythdd_api_v1.py features real uptime as well - ythdd_db.py is no longer dependent on ythdd_globals.py - ythdd_globals.py has a method for setting config and getting it from configfile variable sherl 2024-12-12 11:02:11 +01:00
  • c60f7db698 introduced: requirements.txt, colored output (with ANSI escape codes), baked in failsafe when config file does not exist, slight improvements to ythdd.py sherl 2024-11-02 01:21:06 +01:00
  • 1fb14a5718 delete ythdd_v.py sherl 2024-10-31 01:39:21 +01:00