# TYTD 2025 My web based YouTube downloader that I created in 2025 writen in [CrossLang](https://crosslang.tesseslanguage.com/), my own language ![The Image](https://crosslang.tesseslanguage.com/images/tytdscreenshot.jpg) [Website](https://crosslang.tesseslanguage.com/software/webapps/tytd2025/) # Features - PWA with the ability to add videos when server is down - Can download videos, playlists and channels (you need a channel url like this [https://www.youtube.com/channel/UCBa659QWEk1AI4Tg--mrJ2A](https://www.youtube.com/channel/UCBa659QWEk1AI4Tg--mrJ2A)) - Can subscribe to channels - Can create playlists (that are stored on the server) - Search and browse your downloaded videos, playlists, or channels (the search is very basic though) - User accounts - Videos can be tagged based on your downloader's TYTD tag (to determine which instance downloaded it) - Plugins from [CPKG](https://cpkg.tesseslangauge.com/) or any CPKG compliant server - Can download YouTube videos either Low quality (but doesn't) require [ffmpeg](https://ffmpeg.org/), you can also download individual streams (also doesn't need [ffmpeg](https://ffmpeg.org/)), or to MP4 (doesn't work on wii due to libx264 having illegal instruction), MKV (so no transcode), MP3 or FLAC (these do need [ffmpeg](https://ffmpeg.org/) in your PATH however) - Runs on the Wii using the [Wii Linux Continuation Project](https://wiibrew.org/wiki/Wii-Linux#Wii_Linux_Continuation_Project) (albeit extremely slowly, despite this that's where I run it) # What this project uses (attribution) I don't feel like storing their licenses in my project, so I link to their projects instead - [SQLite3](https://www.sqlite.org/) for it's database (embedded into TessesFramework) - [BeerCSS](https://www.beercss.com/) for its webui, licensed under MIT - [HTMX](https://htmx.org/) for the SPA experience - [FFmpeg](https://ffmpeg.org/) if you convert the videos, uses the cli - [YouTubeExplode](https://github.com/Tyrrrz/YoutubeExplode) for some of its json payloads - [NewPipe](https://newpipe.net/) for some of its json payloads - [Material Symbols Font](https://fonts.google.com/icons) (wget from beercss css files) - [VideoJS](https://videojs.org/) for video player - [CrossLang](https://crosslang.tesseslanguage.com/) My programming language ## To Install Install [crosslang](https://crosslang.tesseslanguage.com/downloads/index.html) from source: ```bash git clone https://onedev.site.tesses.net/tytd2025 cd tytd2025/Tesses.YouTubeDownloader.Server crosslang install-webapp ``` from package manager: ```bash crosslang install-webapp Tesses.YouTubeDownloader.Server ``` ## To Run Save to videos: ```bash crosslang webapp tytd2025 --port=3255 ``` Save to a folder (unix): ```bash # Replace /path/to/tytd with the folder you want export TYTDDIR=/path/to/tytd crosslang webapp tytd2025 --port=3255 ``` Save to a folder (windows): ```batch REM Replace C:\path\to\tytd with the folder you want SET TYTDDIR=C:\path\to\tytd crosslang webapp tytd2025 --port=3255 ``` License is GPLv3-or-later