diff --git a/README.md b/README.md index 1664e2d..faf1e02 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,58 @@ # TYTD 2025 -A YouTube downloader writen in [CrossLang](https://crosslang.tesseslanguage.com/) +My web based YouTube downloader that I created in 2025 writen in [CrossLang](https://crosslang.tesseslanguage.com/), my own language + + + + +[Website](https://crosslang.tesseslanguage.com/software/webapps/tytd2025/) + +# Features +- Uses [SQLite3](https://www.sqlite.org/) for it's database (embedded into TessesFramework) +- 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) + ## To Install Install [crosslang](https://crosslang.tesseslanguage.com/downloads/index.html) from source: ```bash -cd Tesses.YouTubeDownloader.Server +git clone https://onedev.site.tesses.net/tytd2025 +cd tytd2025/Tesses.YouTubeDownloader.Server crosslang install-webapp - -# Save to Videos -crosslang webapp tytd2025 --port=3255 - -# Save anywhere (unix, replace /path/to/tytd with the folder you want) -export TYTDDIR=/path/to/tytd -crosslang webapp tytd2025 --port=3255 - -# Save anywhere (windows, replace C:\path\to\tytd with the folder you want) -SET TYTDDIR=/path/to/tytd -crosslang webapp tytd2025 --port=3255 ``` from package manager: ```bash crosslang install-webapp Tesses.YouTubeDownloader.Server +``` -# Save to Videos + +## To Run + +Save to videos: +```bash crosslang webapp tytd2025 --port=3255 +``` -# Save anywhere (unix, replace /path/to/tytd with the folder you want) +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 anywhere (windows, replace C:\path\to\tytd with the folder you want) -SET TYTDDIR=/path/to/tytd +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 ``` diff --git a/Tesses.YouTubeDownloader.Server/src/main.tcross b/Tesses.YouTubeDownloader.Server/src/main.tcross index cb1309d..0c90b65 100644 --- a/Tesses.YouTubeDownloader.Server/src/main.tcross +++ b/Tesses.YouTubeDownloader.Server/src/main.tcross @@ -151,7 +151,7 @@ class TYTDApp { case 3: { - const createUser = ctx.QueryParams.GetFirstBoolean("user"); + const createUser = (ctx.QueryParams.TryGetFirst("user") ?? "no")=="yes"; var seconds = this.OOBE_STATE.pollSeconds; seconds += this.OOBE_STATE.pollMinutes * 60; diff --git a/Tesses.YouTubeDownloader.Server/src/pages/oobe/page3.tcross b/Tesses.YouTubeDownloader.Server/src/pages/oobe/page3.tcross index de82c4c..33fde84 100644 --- a/Tesses.YouTubeDownloader.Server/src/pages/oobe/page3.tcross +++ b/Tesses.YouTubeDownloader.Server/src/pages/oobe/page3.tcross @@ -12,7 +12,9 @@ func Pages.OobePage3()
- This is Tesses YouTube Downloader 2025, a YouTube Downloader created in CrossLang + This is Tesses YouTube Downloader 2025, a YouTube Downloader created in CrossLang