commit 97300641286a0773df898583c3461ce154eea7a7 Author: Anpleenko Alexander Date: Wed Apr 2 12:46:16 2025 +0300 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..2e9f7ef --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,14 @@ +{ + "tabWidth": 2, + "printWidth": 120, + "singleQuote": false, + "trailingComma": "es5", + "semi": true, + "bracketSpacing": true, + "arrowParens": "always", + "endOfLine": "lf", + "bracketSameLine": false, + "jsxSingleQuote": false, + "quoteProps": "as-needed", + "proseWrap": "preserve" +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..8dacc2b --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Launch Program", + "skipFiles": [ + "/**" + ], + "program": "${file}" + } + ] +} diff --git a/jsconfig.js b/jsconfig.js new file mode 100644 index 0000000..8da6a05 --- /dev/null +++ b/jsconfig.js @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "module": "CommonJS", + "target": "ES6" + "checkJs": true + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..6c1e63b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,85 @@ +{ + "name": "tybemove", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tybemove", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@types/lodash": "^4.17.14", + "@types/node": "^22.10.5", + "change-case": "^5.4.4", + "js-convert-case": "^4.2.0", + "lodash": "^4.17.21", + "normalize-path": "^3.0.0", + "prettier": "^3.4.2" + } + }, + "node_modules/@types/lodash": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "license": "MIT" + }, + "node_modules/js-convert-case": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-convert-case/-/js-convert-case-4.2.0.tgz", + "integrity": "sha512-i4mHCxiBNj6ajjMnZnC70qAOMA8gb+YgYipy2VR7a+Q5EBgEQ2/SgSAUBdNEyObk++B4AIUiFWeDEX2ggOd8cQ==", + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..291be54 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "tybemove", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "@types/lodash": "^4.17.14", + "@types/node": "^22.10.5", + "change-case": "^5.4.4", + "js-convert-case": "^4.2.0", + "lodash": "^4.17.21", + "normalize-path": "^3.0.0", + "prettier": "^3.4.2" + } +} diff --git a/renamer.sh b/renamer.sh new file mode 100644 index 0000000..0f7a073 --- /dev/null +++ b/renamer.sh @@ -0,0 +1,131 @@ +#!/bin/bash +mkdir -p output +cp UCYVYrgITL3959NWAtXWxh5A/O2_dnG_C-Z8.mp4 output/BEST\ GYM\ PHONK\ |\ FUNK,\ KRUSH\ PHONK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/LP75HTJzgFI.mp4 output/BEST\ PHONK\ MUSIC\ |\ SLOW\ SIGMA\ PHONK\ FOR\ WORKOUT\ |\ AGGRESSIVE,\ BRAZILIAN,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/2e1NNnDACik.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/MG4Fz9ZnUfo.mp4 output/BEST\ GYM\ PHONK\ |\ BRAZILLIAN\ PHONK,\ FUNK\ MUSIC\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/X17VwsT9A5A.mp4 output/BEST\ PHONK\ MUSIC\ |\ SIGMA\ PHONK\ FOR\ WORKOUT\ |\ GYM,\ DRIFT,\ AGGRESSIVE.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/pHPoRAqYWNc.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/z6-czdfSCu0.mp4 output/BEST\ GYM\ PHONK\ |\ BEST\ HIGH-SPEED\ PHONK\ MUSIC\ |\ FUNK,\ KRUSH\ PHONK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/zM1H3NkMYv4.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/G-M1l5BlRO0.mp4 output/BEST\ PHONK\ MUSIC\ |\ SIGMA\ PHONK\ FOR\ WORKOUT\ |\ GYM,\ DRIFT,\ AGGRESSIVE.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/wltZqGmuGPI.mp4 output/BEST\ GYM\ PHONK\ |\ FUNK,\ KRUSH\ PHONK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/7E7si4k-wHg.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/i6-QdWyXWDI.mp4 output/BEST\ GYM\ PHONK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/YAsKKS20edQ.mp4 output/BEST\ PHONK\ MUSIC\ |\ SIGMA\ PHONK\ FOR\ WORKOUT\ |\ GYM,\ DRIFT,\ AGGRESSIVE.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/5vEjiymo4SU.mp4 output/BEST\ GYM\ PHONK\ |\ FUNK,\ BRAZILLIAN\ PHONK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/PvLvTtCaEkM.mp4 output/BEST\ PHONK\ MUSIC\ |\ PHONK\ THAT\ MAKES\ YOU\ DANCE\ IN\ THE\ GYM\ |\ GYM,\ FUNK,\ KRUSH.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/rKxOGWbMJKA.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/QyzLRa5-BvM.mp4 output/BEST\ PHONK\ MUSIC\ |\ SHINOBI\ PHONK\ FOR\ WORKOUT\ |\ GYM,\ DRIFT,\ AGGRESSIVE.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/dVaqcH99ZB4.mp4 output/BEST\ PHONK\ MUSIC\ |\ SIGMA\ PHONK\ FOR\ WORKOUT\ |\ GYM,\ DRIFT,\ AGGRESSIVE.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/nsgKjb4zWfo.mp4 output/BEST\ GYM\ PHONK\ |\ FUNK,\ KRUSH\ PHONK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/Q1jjUIJQl-s.mp4 output/BEST\ GYM\ PHONK\ |\ SEXY\ PHONK\ FOR\ YOUR\ WORKOUT\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/tdCJdQS22do.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/r9Gn067Wl_A.mp4 output/BEST\ PHONK\ MUSIC\ |\ PHONK\ THAT\ MAKES\ YOU\ DANCE\ IN\ THE\ GYM\ |\ GYM,\ FUNK,\ KRUSH.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/tqaxxn-TgFo.mp4 output/BEST\ GYM\ PHONK\ |\ BOOST\ YOUR\ AURA\ TO\ 1000000+\ |\ AGGRESSIVE,\ DRIFT,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/aI4mO6Q0pYk.mp4 output/BEST\ GYM\ PHONK\ |\ BOOST\ YOUR\ SIGMA\ AURA\ TO\ 1000000+\ |\ BEST\ SIGMA\ WORKOUT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/XKCaX8akmMQ.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/1Y1qg4LHkLI.mp4 output/BEST\ PHONK\ MUSIC\ |\ PHONK\ PLAYLIST\ FOR\ YOUR\ WINTER\ ARC\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/k26t5e4mCuo.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/SghWCTMl8s0.mp4 output/BEST\ PHONK\ MUSIC\ |\ HYPE\ AGGRESSIVE\ WORKOUT\ MUSIC\ |\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/I41DG7iKmKA.mp4 output/BEST\ GYM\ PHONK\ |\ BEST\ FUNK,\ KRUSH\ PHONK\ |\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/4IXLdeQoUNA.mp4 output/BEST\ PHONK\ MUSIC\ |\ SUPER\ HYPE\ AGGRESSIVE\ WORKOUT\ MUSIC\ |\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/rIWLnLfdIVE.mp4 output/BEST\ GYM\ PHONK\ |\ SIGMA,\ AGGRESSIVE,\ DRIFT\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/g-f38W0rZVw.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/JIXXZXtNer4.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/RgT7wA_b-Pg.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/YMYG2v-VRgw.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/eGo3PHS6EHQ.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/IKCIgcukKd0.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/tJ7AwOXeKaA.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ DRIFT,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/HVb7Q4sMc-M.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/jcN3C6D-CIY.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ KRUSH,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/-iTU_TSsRgM.mp4 output/BEST\ PHONK\ MUSIC\ |\ WORKOUT\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/PUXLKMXdlWk.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ KRUSH,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/tG_xzws4fdk.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/6ro8uBwHnP8.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/tGumeQA_95Y.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/IsJ0VnFNowo.mp4 output/BEST\ WORKOUT\ PHONK\ MUSIC\ .mp4 +cp UCYVYrgITL3959NWAtXWxh5A/HrhtVeTqd4w.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/jN5osLJk-7Q.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/-LnF6icDei8.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ DRIFT,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/7ntVUVMEc1A.mp4 output/BEST\ PHONK\ MUSIC\ |\ WORKOUT\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/wecdvEy0kAk.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ BRAZILIAN,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/XLV3WQVdJPE.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ BRAZILIAN,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/SnrxeVwFsQU.mp4 output/BEST\ PHONK\ MUSIC\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/b9i_aBshv74.mp4 output/BEST\ PHONK\ MUSIC\ |\ WORKOUT\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/m7uESS2s3GE.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ BRAZILIAN,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/EOrMLj7sHVs.mp4 output/BEST\ PHONK\ MUSIC\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/AvppzyxcMc8.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/g3t9Pne45ME.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/06ZGB4VgmqQ.mp4 output/BEST\ PHONK\ MUSIC\ |\ WORKOUT\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/IQ-s2E2ESwk.mp4 output/BEST\ PHONK\ MUSIC\ |\ WORKOUT\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/lNa6JRnOahY.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/eN0gowGWlhQ.mp4 output/BEST\ PHONK\ MUSIC\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/A54LVqjvj00.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ DRIFT,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/_0KwWJjuNN0.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/CHiCEq6yKXY.mp4 output/BEST\ PHONK\ MUSIC\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/-QOeD9Ztoss.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ KRUSH,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/uH6pJPSmHXg.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/E5YgCYmSzFc.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/105HOpcAxes.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ BRAZILIAN,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/dMFAPdmqXjE.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/CsU9bbDIXsY.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/WLRd3-Lli3c.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ BEST\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/ecDj-UqPyrs.mp4 output/BEST\ PHONK\ MUSIC\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/IQIOdReiEmc.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/8hx4qiOGgDE.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ DRIFT,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/JxhvP1Mq9Gs.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/KPx44cmccDw.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/JdnEw7slVpk.mp4 output/BEST\ PHONK\ MUSIC\ |\ HYPE\ AGGRESSIVE\ WORKOUT\ MUSIC\ |\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/aaWQwEQ1mdQ.mp4 output/BEST\ PHONK\ MUSIC\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/NmjOARPCngE.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/idWvxdGyN3U.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ FUNK,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/TTqiMal5GA4.mp4 output/BEST\ PHONK\ MUSIC\ |\ SIGMA\ PHONK\ FOR\ WORKOUT\ |\ GYM,\ DRIFT,\ AGGRESSIVE.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/k874sIR8bao.mp4 output/BEST\ GYM\ PHONK\ |\ FUNK,\ KRUSH\ PHONK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/Y1LDuUk6_bo.mp4 output/BEST\ GYM\ PHONK\ |\ SEXY\ PHONK\ FOR\ YOUR\ WINTER\ ARC\ |\ GYM,\ AGGRESSIVE,\ DRIFT\ .mp4 +cp UCYVYrgITL3959NWAtXWxh5A/OCV8tymHvo0.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/iNDWHojTv_8.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/rh94Er4gZII.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/G7njKl-fcFE.mp4 output/BEST\ PHONK\ MUSIC\ |\ PHONK\ PLAYLIST\ FOR\ YOUR\ WINTER\ ARC\ |\ GYM,\ FUNK,\ KRUSH.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/OIOKkN8H5EE.mp4 output/BEST\ GYM\ PHONK\ |\ BOOST\ YOUR\ SIGMA\ AURA\ TO\ 100000000+\ |\ BEST\ SIGMA\ WORKOUT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/W6jVAyGCXHU.mp4 output/BEST\ GYM\ PHONK\ |\ BOOST\ YOUR\ AURA\ TO\ 1000000+\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/OHSVu4XjCSk.mp4 output/BEST\ GYM\ PHONK\ |\ BEST\ PHONK\ MUSIC\ FOR\ YOUR\ WINTER\ ARC\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/GU-DvNYZLno.mp4 output/BEST\ GYM\ PHONK\ |\ FUNK,\ KRUSH\ PHONK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/UTVpfBYgw9w.mp4 output/BEST\ GYM\ PHONK\ |\ HYPE\ ENERGY\ FOR\ GYM\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/6GWh7ibyqQA.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/u8cXwmkYcBM.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/w8Pr3zctRAw.mp4 output/BEST\ PHONK\ MUSIC\ |\ PHONK\ THAT\ MAKES\ YOU\ DANCE\ IN\ THE\ GYM\ |\ GYM,\ FUNK,\ KRUSH.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/Mtpt1u-E6V4.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/tLlsFR1b1t8.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/xuREgsj-ZnM.mp4 output/BEST\ PHONK\ MUSIC\ |\ SPED\ UP\ WORKOUT\ MUSIC\ |\ GYM,\ KRUSH,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/aIUfgVwFtnA.mp4 output/BEST\ PHONK\ MUSIC\ |\ SIGMA\ PHONK\ VIBES/\ I\ UNDERSTAND\ IT\ NOW\ |\ WORKOUT,\ GYM.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/M1HrqbfleA0.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ DRIFT\ PHONK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/GAxxLtlko2s.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/RCRiZAO0mV8.mp4 output/BEST\ GYM\ PHONK\ |\ SIGMA\ ENERGY\ FOR\ GYM\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/FMh8b32Egaw.mp4 output/BEST\ PHONK\ MUSIC\ |\ SPED\ UP\ WORKOUT\ MUSIC\ |\ GYM,\ KRUSH,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/VJbdaPA4Z_Q.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/VJBl71qxVSk.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/0RhKoUg8NQs.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT\ PHONK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/JvTh3rcwUeU.mp4 output/BEST\ PHONK\ MUSIC\ |\ 8D\ WORKOUT\ MUSIC\ |\ GYM,\ KRUSH,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/bG0pxy5MFoI.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/FHWbM-MPgcc.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/NDyR2kU95ws.mp4 output/BEST\ GYM\ PHONK\ |\ FUNK,\ KRUSH\ PHONK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/JWYQxpzds04.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/Puwe5Uyfvy0.mp4 output/BEST\ GYM\ PHONK\ |\ TOP\ 50\ PHONK\ TRACKS\ |\ AGGRESSIVE,\ DRIFT,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/u9CDsSWbk3I.mp4 output/BEST\ GYM\ PHONK\ |\ FUNK,\ KRUSH\ PHONK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/RHvPWuEBR1Q.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/U3Vbas5AnAQ.mp4 output/BEST\ PHONK\ MUSIC\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/IiY3fJzp7kk.mp4 output/BEST\ PHONK\ MUSIC\ |\ HYPE\ AGGRESSIVE\ WORKOUT\ MUSIC\ |\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/-cU2R08QrfQ.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ HOUSE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/jBTemJ9E5yE.mp4 output/BEST\ WORKOUT\ PHONK\ MUSIC\ .mp4 +cp UCYVYrgITL3959NWAtXWxh5A/DZUC54AGrK0.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ BEST\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/w5NtSK7bNIk.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ KRUSH,\ FUNK\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/kLG-U6O-rAA.mp4 output/BEST\ PHONK\ MUSIC\ |\ GYM,\ AGGRESSIVE,\ DRIFT.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/KGN_zDGb5Zw.mp4 output/BEST\ GYM\ PHONK\ |\ DRIFT,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/ubmZ5NbBfxk.mp4 output/BEST\ GYM\ PHONK\ |\ GYM,\ AGGRESSIVE,\ DRIFT\ |\ BEST\ WORKOUT\ MUSIC\ PLAYLIST.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/WBa_4oH4FSE.mp4 output/BEST\ GYM\ PHONK\ |\ DRIFT,\ BRAZILIAN,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/i2lOkkWcqLg.mp4 output/BEST\ GYM\ PHONK\ |\ AGGRESSIVE,\ KRUSH,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/lpPqx7mZVlo.mp4 output/BEST\ PHONK\ MUSIC\ |\ HARD\ AGGRESSIVE\ WORKOUT\ MUSIC\ |\ AGGRESSIVE,\ BRAZILIAN.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/oqouauPDPLc.mp4 output/BEST\ AGGRESSIVE\ PHONK\ |\ BEST\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ FUNK.mp4 +cp UCYVYrgITL3959NWAtXWxh5A/oB-obGfx1cM.mp4 output/BEST\ PHONK\ MUSIC\ |\ WORKOUT\ MUSIC\ PLAYLIST\ |\ GYM,\ AGGRESSIVE,\ BRAZILIAN.mp4 diff --git a/run.js b/run.js new file mode 100644 index 0000000..2609db5 --- /dev/null +++ b/run.js @@ -0,0 +1,42 @@ +const _ = require("lodash"); +const fs = require("fs"); +const normalize = require("normalize-path"); +const { toHeaderCase } = require("js-convert-case"); + +const data = fs.readFileSync("./backup/es_video-20250317-0.json", { encoding: "utf8" }); + +/** + * @type {import("./types").Root[]} + */ +const sortedArrayOfObjects = data + .split("\n") + .filter(Boolean) + .map(JSON.parse) + .filter((i) => !i?.index); + +const filteredVideos = _.filter(sortedArrayOfObjects, (i) => { + return _.includes(i.playlist, "PLkA30FL9OreUKQI1w9eQ9D5TE54b5nwUd"); +}); + +const formattedList = filteredVideos.map((i) => { + const title = normalize(i.title); + // .replaceAll(String.fromCharCode(32), String.fromCharCode(92, 32)) + // .replaceAll(String.fromCharCode(40), String.fromCharCode(92, 40)) + // .replaceAll(String.fromCharCode(41), String.fromCharCode(92, 41)) + // .replace( + // /([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g, + // "" + // ); + + const changedCase = toHeaderCase(title); + + // const trimmed = _.trim(changedCase); + + return `cp ${i.media_url} output/${title}.${i.media_url.split(".").pop()}`; +}); + +const concatted = _.concat(["#!/bin/bash"], ["mkdir -p output"], formattedList); + +const joinedList = concatted.join("\n"); + +fs.writeFileSync("renamer.sh", joinedList, { encoding: "utf8" }); diff --git a/types.ts b/types.ts new file mode 100644 index 0000000..aa3c213 --- /dev/null +++ b/types.ts @@ -0,0 +1,58 @@ +export interface Root { + title: string; + description: string; + category: string[]; + vid_thumb_url: string; + vid_thumb_base64: boolean; + tags: any[]; + published: string; + vid_last_refresh: number; + date_downloaded: number; + youtube_id: string; + vid_type: string; + active: boolean; + channel: Channel; + stats: Stats; + media_url: string; + player: Player; + streams: Stream[]; + media_size: number; + playlist: string[]; +} + +export interface Channel { + channel_name: string; + channel_thumb_url: string; + channel_active: boolean; + channel_description: string; + channel_last_refresh: number; + channel_subscribed: boolean; + channel_subs: number; + channel_banner_url: string; + channel_tvart_url: string; + channel_views: number; + channel_id: string; + channel_tags: string[]; +} + +export interface Stats { + view_count: number; + like_count: number; + dislike_count: number; + average_rating: any; +} + +export interface Player { + duration: number; + watched: boolean; + duration_str: string; +} + +export interface Stream { + type: string; + index: number; + codec: string; + width?: number; + height?: number; + bitrate: number; +}