From 87746bdcac6b27f0cd61bdea4d627a513c3ff782 Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 01:40:40 +0100 Subject: [PATCH 001/140] We were using install instead of clean install --- .forgejo/workflows/ci.yaml | 2 +- .forgejo/workflows/dependency_check.yaml | 2 +- .forgejo/workflows/release.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/ci.yaml b/.forgejo/workflows/ci.yaml index b37196c..33f22d4 100644 --- a/.forgejo/workflows/ci.yaml +++ b/.forgejo/workflows/ci.yaml @@ -17,5 +17,5 @@ jobs: node-version: '20' - name: Prepare, Check, Lint and Format run: | - npm install + npm ci npm run prepare diff --git a/.forgejo/workflows/dependency_check.yaml b/.forgejo/workflows/dependency_check.yaml index 1230794..57b010c 100644 --- a/.forgejo/workflows/dependency_check.yaml +++ b/.forgejo/workflows/dependency_check.yaml @@ -23,7 +23,7 @@ jobs: - name: Update deps, install them (to change package-lock.json) and commit run: | npx npm-check-updates --target minor -u - npm install + npm ci git config --global user.name "forgejo-bot" git config --global user.email "bot@pweapon.org" git add package.json || exit 0 diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml index 5e8872e..6d69d99 100644 --- a/.forgejo/workflows/release.yaml +++ b/.forgejo/workflows/release.yaml @@ -28,7 +28,7 @@ jobs: - name: Prepare, Check, Lint and Format run: | - npm install + npm ci touch .env echo "HOST=0.0.0.0" >> .env echo "ORIGIN=https://dl.emersa.it" >> .env From 6924e8e082f84603b7ae01b090c7e37a245a855e Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 01:55:25 +0100 Subject: [PATCH 002/140] new release pipeline --- .forgejo/workflows/release.yaml | 3 ++- scripts/deploy_example.sh | 25 ++++--------------------- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml index 6d69d99..3b8c901 100644 --- a/.forgejo/workflows/release.yaml +++ b/.forgejo/workflows/release.yaml @@ -38,7 +38,8 @@ jobs: cp package* build/ cp .env build/ mkdir releases - tar czvf releases/build.tar.gz build/ + cd build/ + tar czvf ../releases/build.tar.gz . - name: Upload release uses: actions/forgejo-release@v2 diff --git a/scripts/deploy_example.sh b/scripts/deploy_example.sh index 832a2fe..4e1d417 100755 --- a/scripts/deploy_example.sh +++ b/scripts/deploy_example.sh @@ -2,31 +2,14 @@ __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -NO_DELETE=false SSH_SERVER="example" PROJECT_ROOT=example_directory SSH_REMOTE_DIR="${SSH_SERVER}:${PROJECT_ROOT}" -for arg in "$@" -do - if [ "$arg" == "--no-delete" ]; then - NO_DELETE=true - fi -done +wget https://git.pweapon.org/odo/dl.emersa.it/releases/download/latest/build.tar.gz -if [ "$NO_DELETE" = false ]; then - echo "Deleting node_modules..." - rm -rf node_modules/ -else - echo "Skipping deletion of node_modules." -fi +rsync -r --delete --progress build.tar.gz "${SSH_REMOTE_DIR}" -npm ci -npm run build - -rsync -r --delete --progress build/ "${SSH_REMOTE_DIR}" -rsync package.json "${SSH_REMOTE_DIR}" -rsync package-lock.json "${SSH_REMOTE_DIR}" - -ssh "${SSH_SERVER}" "cd ${PROJECT_ROOT}; npm ci" +ssh "${SSH_SERVER}" "rm -rf ${PROJECT_ROOT}; mkdir -p ${PROJECT_ROOT} ; cd ${PROJECT_ROOT} ; wget https://git.pweapon.org/odo/dl.emersa.it/releases/download/latest/build.tar.gz ; tar -xvf build.tar.gz -C . ; npm ci ; rm build.tar.gz" +#### CHANGE YOUR ${PROJECT_ROOT}/.env (specially ORIGIN) ssh "${SSH_SERVER}" "systemctl restart downloader" From 4c08c6ee4aaa7d020d32fcb3579b30418597cc0b Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 01:55:42 +0100 Subject: [PATCH 003/140] 0.6.7 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index bbfed6e..fcb7884 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "dl.emersa.it", - "version": "0.6.6", + "version": "0.6.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dl.emersa.it", - "version": "0.6.6", + "version": "0.6.7", "dependencies": { "@tailwindcss/forms": "^0.5.10", "@tailwindcss/postcss": "^4.0.8", diff --git a/package.json b/package.json index fae2ba8..2c42c65 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "dl.emersa.it", "private": true, - "version": "0.6.6", + "version": "0.6.7", "type": "module", "scripts": { "dev": "vite dev", From e06d04f3872bf28641835c3a223462a7cfdc358b Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 02:01:54 +0100 Subject: [PATCH 004/140] every minute --- .forgejo/workflows/dependency_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/dependency_check.yaml b/.forgejo/workflows/dependency_check.yaml index 57b010c..9c58232 100644 --- a/.forgejo/workflows/dependency_check.yaml +++ b/.forgejo/workflows/dependency_check.yaml @@ -2,7 +2,7 @@ name: Bump deps (only minor versions) on: schedule: - - cron: '0 0 * * *' # Runs every night at midnight (UTC) + - cron: '* * * * *' # Runs every night at midnight (UTC) workflow_dispatch: jobs: From a5e3e310b7a6f53c04bc1771f4912c80b0dbb11b Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 02:03:07 +0100 Subject: [PATCH 005/140] test --- .forgejo/workflows/dependency_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/dependency_check.yaml b/.forgejo/workflows/dependency_check.yaml index 9c58232..c3b60cb 100644 --- a/.forgejo/workflows/dependency_check.yaml +++ b/.forgejo/workflows/dependency_check.yaml @@ -2,7 +2,7 @@ name: Bump deps (only minor versions) on: schedule: - - cron: '* * * * *' # Runs every night at midnight (UTC) + - cron: '4 1 * * *' # Runs every night at midnight (UTC) workflow_dispatch: jobs: From 7213189744ff55825cd6171b40069b9e89a9c301 Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 02:03:40 +0100 Subject: [PATCH 006/140] test --- .forgejo/workflows/dependency_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/dependency_check.yaml b/.forgejo/workflows/dependency_check.yaml index c3b60cb..9a9c77e 100644 --- a/.forgejo/workflows/dependency_check.yaml +++ b/.forgejo/workflows/dependency_check.yaml @@ -2,7 +2,7 @@ name: Bump deps (only minor versions) on: schedule: - - cron: '4 1 * * *' # Runs every night at midnight (UTC) + - cron: '5 3 * * *' # Runs every night at midnight (UTC) workflow_dispatch: jobs: From 11b0b9f6a217c2b5a76a0d05937ada2a069e5beb Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 02:04:53 +0100 Subject: [PATCH 007/140] test --- .forgejo/workflows/dependency_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/dependency_check.yaml b/.forgejo/workflows/dependency_check.yaml index 9a9c77e..88ccae4 100644 --- a/.forgejo/workflows/dependency_check.yaml +++ b/.forgejo/workflows/dependency_check.yaml @@ -2,7 +2,7 @@ name: Bump deps (only minor versions) on: schedule: - - cron: '5 3 * * *' # Runs every night at midnight (UTC) + - cron: '6 2 * * *' # Runs every night at midnight (UTC) workflow_dispatch: jobs: From f20b9869cc2cd9e033e83f76b144195e8fece1bd Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 02:08:08 +0100 Subject: [PATCH 008/140] should work --- .forgejo/workflows/dependency_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/dependency_check.yaml b/.forgejo/workflows/dependency_check.yaml index 88ccae4..bb6164c 100644 --- a/.forgejo/workflows/dependency_check.yaml +++ b/.forgejo/workflows/dependency_check.yaml @@ -2,7 +2,7 @@ name: Bump deps (only minor versions) on: schedule: - - cron: '6 2 * * *' # Runs every night at midnight (UTC) + - cron: '10 3 * * *' # Runs every night at midnight (UTC) workflow_dispatch: jobs: From 7c9b80917f872e962297796cd17df1d6d2d9056e Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 02:11:40 +0100 Subject: [PATCH 009/140] lol --- .forgejo/workflows/dependency_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/dependency_check.yaml b/.forgejo/workflows/dependency_check.yaml index bb6164c..f7db261 100644 --- a/.forgejo/workflows/dependency_check.yaml +++ b/.forgejo/workflows/dependency_check.yaml @@ -2,7 +2,7 @@ name: Bump deps (only minor versions) on: schedule: - - cron: '10 3 * * *' # Runs every night at midnight (UTC) + - cron: '12 1 * * *' # Runs every night at midnight (UTC) workflow_dispatch: jobs: From 6e86aa7f8c58683e872e3bebb5124c396cea3567 Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 02:12:19 +0100 Subject: [PATCH 010/140] maybe --- .forgejo/workflows/dependency_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/dependency_check.yaml b/.forgejo/workflows/dependency_check.yaml index f7db261..bebd356 100644 --- a/.forgejo/workflows/dependency_check.yaml +++ b/.forgejo/workflows/dependency_check.yaml @@ -2,7 +2,7 @@ name: Bump deps (only minor versions) on: schedule: - - cron: '12 1 * * *' # Runs every night at midnight (UTC) + - cron: '14 1 * * *' # Runs every night at midnight (UTC) workflow_dispatch: jobs: From 15cb6779105ec6c60c1033fefe0015d28075962d Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 02:21:20 +0100 Subject: [PATCH 011/140] try --- .forgejo/workflows/dependency_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/dependency_check.yaml b/.forgejo/workflows/dependency_check.yaml index bebd356..6e476b8 100644 --- a/.forgejo/workflows/dependency_check.yaml +++ b/.forgejo/workflows/dependency_check.yaml @@ -2,7 +2,7 @@ name: Bump deps (only minor versions) on: schedule: - - cron: '14 1 * * *' # Runs every night at midnight (UTC) + - cron: '23 1 * * *' # Runs every night at midnight (UTC) workflow_dispatch: jobs: From 79c3c820a48332371a319a9634689a12b8f84379 Mon Sep 17 00:00:00 2001 From: forgejo-bot Date: Sun, 23 Feb 2025 01:23:58 +0000 Subject: [PATCH 012/140] chore: update minor dependencies --- package.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 2c42c65..c10c2e4 100644 --- a/package.json +++ b/package.json @@ -15,26 +15,26 @@ "lint": "prettier --check . && eslint ." }, "devDependencies": { - "@eslint/compat": "^1.2.5", - "@eslint/js": "^9.18.0", - "@sveltejs/adapter-node": "^5.2.11", - "@sveltejs/kit": "^2.16.0", - "@sveltejs/vite-plugin-svelte": "^5.0.0", - "@tailwindcss/vite": "^4.0.0", - "eslint": "^9.18.0", + "@eslint/compat": "^1.2.7", + "@eslint/js": "^9.21.0", + "@sveltejs/adapter-node": "^5.2.12", + "@sveltejs/kit": "^2.17.2", + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "@tailwindcss/vite": "^4.0.8", + "eslint": "^9.21.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-svelte": "^2.46.1", - "globals": "^15.14.0", + "globals": "^15.15.0", "mdsvex": "^0.12.3", - "prettier": "^3.4.2", + "prettier": "^3.5.2", "prettier-plugin-svelte": "^3.3.3", "prettier-plugin-tailwindcss": "^0.6.11", - "svelte": "^5.0.0", - "svelte-check": "^4.0.0", - "tailwindcss": "^4.0.0", - "typescript": "^5.0.0", - "typescript-eslint": "^8.20.0", - "vite": "^6.0.0" + "svelte": "^5.20.2", + "svelte-check": "^4.1.4", + "tailwindcss": "^4.0.8", + "typescript": "^5.7.3", + "typescript-eslint": "^8.24.1", + "vite": "^6.1.1" }, "dependencies": { "@tailwindcss/forms": "^0.5.10", From 10d8ce8a15b0ff4b1aaafd8b96937fb425511369 Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 02:31:10 +0100 Subject: [PATCH 013/140] fix dc --- .forgejo/workflows/dependency_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/dependency_check.yaml b/.forgejo/workflows/dependency_check.yaml index 6e476b8..cb2c3d5 100644 --- a/.forgejo/workflows/dependency_check.yaml +++ b/.forgejo/workflows/dependency_check.yaml @@ -2,7 +2,7 @@ name: Bump deps (only minor versions) on: schedule: - - cron: '23 1 * * *' # Runs every night at midnight (UTC) + - cron: '0 23 * * *' # Runs every night at midnight workflow_dispatch: jobs: From 151b5432cdbba4e3909bcd7f29e1e0857560d76f Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 02:35:00 +0100 Subject: [PATCH 014/140] Update globals --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c10c2e4..d8d9c6f 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "eslint": "^9.21.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-svelte": "^2.46.1", - "globals": "^15.15.0", + "globals": "^16.0.0", "mdsvex": "^0.12.3", "prettier": "^3.5.2", "prettier-plugin-svelte": "^3.3.3", From 204bceeee3e5e0b50b0dbc8682daaf7600e63884 Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 04:54:48 +0100 Subject: [PATCH 015/140] Add +x to downloaded yt-dlp --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d8d9c6f..2e46d7f 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "vite dev", "build": "vite build", - "download-yt-dlp": "wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux -O yt-dlp", + "download-yt-dlp": "wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux -O yt-dlp ; chmod +x yt-dlp", "preview": "vite preview", "prepare": "svelte-kit sync || echo ''", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", From dcb7cfec276d93eeb139a15c140c8f59e99ff9cd Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 04:55:09 +0100 Subject: [PATCH 016/140] Add loader and new formats --- src/lib/common/supportedFormats.json | 6 ++ src/lib/components/Loader.svelte | 6 +- src/lib/server/helpers.ts | 14 ++++ src/lib/server/ytdlp.ts | 23 ++++-- src/routes/+page.svelte | 112 +++++++++++++++++++++------ src/routes/download/+server.ts | 27 ++++--- 6 files changed, 148 insertions(+), 40 deletions(-) create mode 100644 src/lib/common/supportedFormats.json create mode 100644 src/lib/server/helpers.ts diff --git a/src/lib/common/supportedFormats.json b/src/lib/common/supportedFormats.json new file mode 100644 index 0000000..80187b0 --- /dev/null +++ b/src/lib/common/supportedFormats.json @@ -0,0 +1,6 @@ +{ + "mp3": "audio/mpeg", + "mp4": "video/mp4", + "opus": "audio/ogg", + "wav": "audio/wav" +} \ No newline at end of file diff --git a/src/lib/components/Loader.svelte b/src/lib/components/Loader.svelte index 62b43fc..df33172 100644 --- a/src/lib/components/Loader.svelte +++ b/src/lib/components/Loader.svelte @@ -1,6 +1,8 @@
-
+
+ +
diff --git a/src/lib/server/helpers.ts b/src/lib/server/helpers.ts new file mode 100644 index 0000000..af5111d --- /dev/null +++ b/src/lib/server/helpers.ts @@ -0,0 +1,14 @@ +import formats from '$lib/common/supportedFormats.json'; + +const formatMime = new Map(Object.entries(formats)) + +export const mimeTypeMap = formatMime; +export const contentTypeFromFormat = (format: string): string => { + const toReturn: string | undefined = formatMime.get(format) + + if (!toReturn) { + throw new Error("Unsupported format") + } + + return toReturn; +} \ No newline at end of file diff --git a/src/lib/server/ytdlp.ts b/src/lib/server/ytdlp.ts index f37ddef..9afded2 100644 --- a/src/lib/server/ytdlp.ts +++ b/src/lib/server/ytdlp.ts @@ -1,6 +1,9 @@ import { create } from 'youtube-dl-exec'; import { env } from '$env/dynamic/private'; import { spawn } from 'node:child_process'; +import supportedFormats from '$lib/common/supportedFormats.json'; +import { mimeTypeMap } from '$lib/server/helpers'; + const YTDLP_PATH: string = env.YTDLP_PATH as string; export const ytdl = create(YTDLP_PATH); @@ -21,19 +24,27 @@ export async function getYouTubeMetadata(link: string) { * Streams the YouTube video/audio using youtube-dl-exec */ export function streamYouTube(link: string, format: string): ReadableStream { + const mimeType: string | undefined = mimeTypeMap.get(format) + + if (!mimeType) { + throw new Error("Unsupported format"); + } + return new ReadableStream({ start(controller) { const args = [ '-o', '-', - format === 'mp3' ? '--embed-metadata' : '', - '--format', - format === 'mp3' ? 'bestaudio' : 'best', - '--audio-format', - format === 'mp3' ? 'mp3' : '', - '--no-playlist' ].filter(Boolean); + if(mimeType?.includes('audio')) { + args.push(...['--extract-audio', '--embed-metadata', '--embed-thumbnail', '--audio-format', format]) + } else if (mimeType.includes('video')) { + args.push(...['--embed-metadata', '--embed-thumbnail', '--format', format]) + } + + console.info(`yt-dlp ${args.join(' ')} ${link}`) + const process = spawn('yt-dlp', [...args, link], { stdio: ['ignore', 'pipe', 'ignore'] }); process.stdout.on('data', (chunk) => controller.enqueue(chunk)); diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 098ef91..0e2f7e8 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,35 +1,80 @@ -
+ -

🐙 Scaricatore 🐙

+

🐙 Scaricatore 🐙

- Choose Source: + Choose Source:
From 5d0fa4e951fe3ca63cf86ebd42fc60b01560b911 Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 06:18:50 +0100 Subject: [PATCH 029/140] update systemd unit file --- configurations/downloader.service | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/configurations/downloader.service b/configurations/downloader.service index 8e042a7..a20a19e 100644 --- a/configurations/downloader.service +++ b/configurations/downloader.service @@ -5,9 +5,9 @@ After=network.target [Service] User=user Group=user -WorkingDirectory= -ExecStart=/usr/bin/node -Environment=ORIGIN=http://example.com +WorkingDirectory=/home/user/downloader +EnvironmentFile=/home/user/downloader/.env +ExecStart=/usr/bin/node /home/user/downloader Restart=always RestartSec=10 StandardOutput=syslog @@ -16,3 +16,4 @@ SyslogIdentifier=downloader [Install] WantedBy=multi-user.target + From 6f93574e8a85c28715ed3512c6a1d7185e832628 Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 06:37:13 +0100 Subject: [PATCH 030/140] Remove useless helper --- src/lib/server/helpers.ts | 11 +---------- src/routes/download/+server.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/lib/server/helpers.ts b/src/lib/server/helpers.ts index b334c5b..09cc730 100644 --- a/src/lib/server/helpers.ts +++ b/src/lib/server/helpers.ts @@ -10,13 +10,4 @@ export const isURLValid = (url: string) => { return true; } -export const mimeTypeMap = formatMime; -export const contentTypeFromFormat = (format: string): string => { - const toReturn: string | undefined = formatMime.get(format) - - if (!toReturn) { - throw new Error("Unsupported format") - } - - return toReturn; -} \ No newline at end of file +export const mimeTypeMap = formatMime; \ No newline at end of file diff --git a/src/routes/download/+server.ts b/src/routes/download/+server.ts index 5d5c6aa..6369cb5 100644 --- a/src/routes/download/+server.ts +++ b/src/routes/download/+server.ts @@ -1,9 +1,9 @@ import { error } from '@sveltejs/kit'; import type { RequestHandler } from './$types'; import { getYouTubeMetadata, streamYouTube, ytdl } from '$lib/server/ytdlp'; -import { contentTypeFromFormat, isURLValid, mimeTypeMap } from '$lib/server/helpers'; +import { isURLValid, mimeTypeMap } from '$lib/server/helpers'; -const validateRequest = (url) => { +const validateRequest = (url: URL) => { // Get query params const link = url.searchParams.get('link'); const format = url.searchParams.get('format'); // mp3, mp4 @@ -35,11 +35,11 @@ export const GET: RequestHandler = async ({ url }) => { const { format, source, metadata, link } = validateRequest(url) let filename = `you-clicked-no-metadata-so-i-cant-put-a-correct-name.${format}`; - if (metadata) { + if (!!metadata) { try { // Fetch metadata for filename - const metadata = await getYouTubeMetadata(link); - const { title, uploader } = metadata; + const ytMetadata = await getYouTubeMetadata(link); + const { title, uploader } = ytMetadata; const safeTitle = `${uploader} - ${title}`; filename = `${safeTitle}.${format}`; } catch (err) { @@ -54,7 +54,7 @@ export const GET: RequestHandler = async ({ url }) => { // Stream video/audio return new Response(streamYouTube(link, format), { headers: { - 'Content-Type': contentTypeFromFormat(format), + 'Content-Type': "text/event-stream", 'Content-Disposition': `attachment; filename="${filename}"`, 'Set-Cookie': 'downloading=0' } From da95e2024fda717ce8a1658d53650fed6d0ad947 Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 06:37:43 +0100 Subject: [PATCH 031/140] 0.8.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 054a99d..53a91a4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "dl.emersa.it", - "version": "0.7.2", + "version": "0.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dl.emersa.it", - "version": "0.7.2", + "version": "0.8.0", "dependencies": { "@tailwindcss/forms": "^0.5.10", "@tailwindcss/postcss": "^4.0.8", diff --git a/package.json b/package.json index dd288fb..9d58049 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "dl.emersa.it", "private": true, - "version": "0.7.2", + "version": "0.8.0", "type": "module", "scripts": { "dev": "vite dev", From fa24bc435d100855c8bf9333469289399274a565 Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Sun, 23 Feb 2025 07:55:42 +0100 Subject: [PATCH 032/140] YTDLP_PATH everywhere --- src/lib/server/ytdlp.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/server/ytdlp.ts b/src/lib/server/ytdlp.ts index 0d6b107..5c5beb1 100644 --- a/src/lib/server/ytdlp.ts +++ b/src/lib/server/ytdlp.ts @@ -45,7 +45,7 @@ export function streamYouTube(link: string, format: string): ReadableStream controller.enqueue(chunk)); process.stdout.on('end', () => controller.close()); From f2673d112b2b875e10cc615720985bbb32512f39 Mon Sep 17 00:00:00 2001 From: 0d0 <0d0acre@esiliati.org> Date: Mon, 24 Feb 2025 19:43:11 +0100 Subject: [PATCH 033/140] this should do it --- src/routes/+page.svelte | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index d9b8343..17e8029 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -104,7 +104,7 @@ -

🐙 Scaricatore 🐙

+

🐙 Scaricatore 🐙

@@ -226,10 +226,21 @@ diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index b52b963..e63159a 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -94,7 +94,7 @@
🐙 Scaricatore 🐙

-
- - -
+
+
+ + +
+ +
+ + +
+
@@ -151,21 +167,6 @@ />
- -
- - -
-