``` ____ __ __ __ /_/ / /_ /_/ /_/ _/ /\ __/ / / /_ /_ /_/ /__\ public domain 2020-2025 ``` ytfeed(6) is a small and simple YouTube client made using menu(1). ytfeed(6) exists as a demonstration of menu(1), menu(1) was written as a component of ytfeed(6), and they were both written for my own personal use. There are many components of ytfeed that work independently of it. ytfeed.aggregate(1) is a tool to merge many catenated YouTube RSS feeds into one XML-compliant document. The invocation `cat feed.xml feed2.xml | ytfeedmerge`, for example, assuming the given XML files are YouTube RSS feeds, will output a single YouTube RSS feed containing the entries from both feeds. ytfeed.dl(1) is a tool to download a YouTube RSS feed using curl(1) or wget(1) and store it in the location used by ytfeed(6). The Python programs are especially short, exclusively use Python's standard library, and are written to (hopefully) work on a reasonably recent Python 3 interpreter. Unfortunately Python will probably shit itself anyway when you try to run them. For what it's worth, they're Python programs because most Linux distributions come with Python 3 and it's one of few languages with XML parsing as part of the standard library - I figured it'd be less hassle than vendoring a dependency or (woe be unto those who think it) relying on whatever awful package managers the user has installed.