All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Advanced search method refactor @JonathanJdeKoning
- Added
summarize
command for video summaries - Added
--cookies-from-browser
flag to bypass rate limiting
--number-of-jobs
flag is now--jobs
update
command now updates all channels by defaultexport
vsearch
andsearch
commands OOP refactor
- Quieted warnings on download
- vtt parsing now handles normal vtt and word level time stamps
- Embeddings now include segment metadata
- changed model LLM model to gpt-4o
llm
command for Retrieval-Augmented Generation on channels with embeddings- Way to specify time interval when generating embeddings
- pytest unit testing for basic cli functionality
- Changed
get-embeddings
command toembeddings
(it's cleaner) - Refomatted most files to follow PEP 8 style guides
- Most of the commands now exit with status code
- Refactored to not use
import *
- Removed Regex warning when first running cli
- Delete not working if you use a capital Y
- Fixed broken
get_channel_id
function cause by YouTube change to video page html
- Removed need for system installation of
yt-dlp
- instead of subprocess we use yt-dlp package from pypi
- #147
- Outdated chromadb dependency crashing cli
- Date in fts searches and exports
- yt-fts-138
- Fixed unicode decode error #138
- Introduced when we added current metadata with
--write-info-json
- Caused by writing json to windows filesystem, which encodes in
Windows-1252
instead ofutf-8
- Another reason to not use subprocess.
- Caused by writing json to windows filesystem, which encodes in
- yt-fts-139
- Playlists downloading now supported by passing the
--playlist/-p
todownload
command
- Playlists downloading now supported by passing the
-
- Overhauled full text search results UI
- Results are displayed more logically, with less unnecessary information sorted by frequency.
-
- Moved build system to
pyproject.toml
fromsetup.py
- Moved build system to
- yt-fts-134
- Disabled chromadb opentelemetry
- yt-fts-132
- GitHub actions integration
Special thanks to @danlamanna for these fixes
- yt-fts-126
- Major: Fixed bug that prevented chroma database entries from being deleted if the user did not have an openAI key set
- yt-fts-127
- Major: Improved adding to database time on download by over 50% by using metadata downloaded from yt-dlp
- yt-fts-124
- Minor added -h flag to cli
- yt-fts-121
- Major: Fixed bug where delete command fails due to database locking
- yt-fts-119
- Medium: Fixed bug where end times were incorrect due to vtt parsing error
- yt-fts-118
- Major: Fixed bug where download will fail if channel does not have live-stream page
- yt-fts-116
- Minor: Search word bold highlighting on
vsearch
andsearch
- Minor: Search word bold highlighting on
- yt-fts-117
- Minor: Added hints on advanced query syntax when query doesn't get anything
- yt-fts-114
- Medium: Added vtt export to export command
- Minor: removed print statement from
get_channel_id_from_input
- yt-fts-112
- Medium: Fixed issue with download command not downloading live-streamed videos
- yt-fts-111
- Minor: Added
export
command which exports channel subtitles to a directory of text files
- Minor: Added
- yt-fts-109
- Minor: added summary string to vector search
- yt-fts-108
- Minor: added limit option to fts search
- yt-fts-110
- Medium: Fixed issue with
delete
command not deleting channels from chroma database
- Medium: Fixed issue with
- Minor: Basic unit testing with the built in
unittest
module.
- yt-fts-96
- Major: Embeddings are now stored using chromadb instead of sqlite. This allows for more efficient storage and retrieval of embeddings.
- Major: Semantic search and full text search are now separate commands.
vsearch
for semantic search andsearch
for full text search however both commands have similar flags - Medium: The text converted to embeddings is now split up by 10 second intervals to increase context for the embeddings.
- Minor: both
vsearch
andsearch
now search all channels by default. Use--channel
to specify a channel to search. - Minor: There's currently no way to update the embeddings
- Minor: the
search
command has no--limit
flag
- yt-fts-91
- Major: Fixed bootstrapping issue where
subtitles.db
was allways created in the current working directory
- Major: Fixed bootstrapping issue where
-
Minor: Moved
--list config
to its own commandlist config
to make it more discoverable.
-
Minor: Moved all ASCII message printing to the rich python library to consolidate all warning, status, progress and error message formating to one library. This removes
tabulate
andprogress
dependencies.
-
Changelog
Minor: Added a changelog to the project.
-
Minor: YouTube URL validation now allows for /@channelName and /channel/channelID instead of forcing /@channel/videos.