A simple cli-app that allows you to divide a YouTube video into multiple separate videos base on a video's time stamps. Powered by pkg and yt-scissors library.

Overview

YouTube-Scissors CLI

GitHub GitHub release (latest by date) GitHub release (latest by date) GitHub contributors

GitHub Repo stars Twitter URL

A simple CLI app that allows you to divide a YouTube video into multiple separate videos base on a video's time stamps. This project is built on top of another one of my projects, yt-scissors.

💡 Features

  • Can generate multiple videos or extract a single video, based on a YouTube video's time stamps (time stamps from a comment, video description, or chapters)

    • Important: Generated time stamps from the description and comments works about 85% of the time. Make sure the video's time stamps are spaced out and have nothing that would make it hard to find them. There is also a bug with any video that is +10 hours long, so video length should be below 10 hours.

    • Note: Make sure the description or comment has a full time stamp list for the best results.

  • Can download videos directly from CLI

    • Note: Downloading is slow compare to other YouTube download methods.

    • If you need good download speeds try pytube or yt-dlp. You can still use this program with other YouTube download methods.

  • Can process already downloaded YouTube videos

  • Simple CLI structure

  • 100% Open Source (MIT license)

📂 How to Download & Install

  1. Download it here or go to the release tab of this repository.

  2. Once you downloaded the YouTube-Scissors-CLI executable, download ffmpeg. FFmpeg Downloads

  3. After downloading ffmpeg, open up the config.json file and paste the path to where you have saved the ffmpeg executable. Make sure you put config.json in the same directory as your YouTube-Scissors executable.

  4. Edit config.json to your liking.

Example of How config.json is Setup

{
    "ffmpeg_path": "Your ffmpeg executable path goes here",
    "hide_ffmpeg": true, // hides ffmpeg logs
    "hide_yt_download": true, // hides download logs
    "hide_logo": false // hides youtube-scissors banner on startup
}

🕹️ Usage

  1. Find a YouTube video that you want to extract videos from

    • Make sure the YouTube video has either chapters or time stamps in the description or comments section

    • Note: For comments, follow this tutorial to figure out how to get a YouTube comment's URL.

    • Tip: Make sure the description or comment has a full time stamp list for the best results.

  2. Run YouTube-Scissors CLI and paste the YouTube video's URL or the YouTube comment's URL

  3. Then enter in what you want for each prompt

    • Important: When extracting multiple videos, YouTube-scissors will NOT create a folder for all the videos to be saved in. You must create an empty folder beforehand and save all the videos there.

🎥 Video Demo

📷 Screenshots

🛠️ Developer Instructuions (Build From Source)

Most users do not need to build from source. You can download the builds from here.

If you are looking for an API / wrapper library for this CLI app, look here.

What you will need

  • Download a copy of ffmpeg
  • Have Node.js installed on your system
  • (Optional) Have git installed on your system

How To Build From Source

(Step 1) Download the source code and cd into it

git clone https://github.com/Guuzzeji/youtube-scissors-cli.git
cd youtube-scissors-cli

(Step 2) Install pkg (Learn more about pkg)

npm install -g pkg

(Step 3) Then run npm install to install all needed dependencies

npm install

(Step 4) Build using npm

npm run build

(Step 5) Setting up config.json

cd build
  • cd into the build directory and copy the config.json file into it. Make sure you edit the config.json file to your liking and type in the path to your ffmpeg executable.

🤝 How to Contribute

  • Fork the main branch

  • Open your fork and add your changes / features / bug fixes

  • (Important) Run npm test if you made any changes to fetch folder or fetch files. You need to do this to make sure everything is working properly when grabbing data and parsing it from YouTube

  • (Important) Test and make sure your changes can still create a functional executable file. (check the build guide above)

  • Create a pull request

    • Make sure to add a description of what changes you have made and why your changes are important.

Helpful Infomation

License

MIT

Comments
  • Bump chalk from 4.1.2 to 5.2.0

    Bump chalk from 4.1.2 to 5.2.0

    Bumps chalk from 4.1.2 to 5.2.0.

    Release notes

    Sourced from chalk's releases.

    v5.2.0

    • Improve Deno compatibility (#579) 7443e9f
    • Detect true-color support for GitHub Actions (#579) 7443e9f
    • Detect true-color support for Kitty terminal (#579) 7443e9f
    • Fix test for Azure DevOps environment (#579) 7443e9f

    https://github.com/chalk/chalk/compare/v5.1.2...v5.2.0

    v5.1.2

    • Fix exported styles names (#569) a34bcf6

    https://github.com/chalk/chalk/compare/v5.1.1...v5.1.2

    v5.1.1

    • Improved the names of exports introduced in 5.1.0 (#567) 6e0df05
      • We of course preserved the old names.

    https://github.com/chalk/chalk/compare/v5.1.0...v5.1.1

    v5.1.0

    • Expose style names (#566) d7d7571

    https://github.com/chalk/chalk/compare/v5.0.1...v5.1.0

    v5.0.1

    • Add main field to package.json for backwards compatibility with some developer tools 85f7e96

    https://github.com/chalk/chalk/compare/v5.0.0...v5.0.1

    v5.0.0

    Breaking

    • This package is now pure ESM. Please read this.
      • If you use TypeScript, you need to use TypeScript 4.7 or later. Why.
      • If you use a bundler, make sure it supports ESM and that you have correctly configured it for ESM.
      • The Chalk issue tracker is not a support channel for your favorite build/bundler tool.
      • It's totally fine to stay on Chalk v4. It's been stable for years.
    • Require Node.js 12.20 fa16f4e
    • Move some properties off the default export to individual named exports:
      • chalk.InstanceChalk
      • chalk.supportsColorsupportsColor
      • chalk.stderrchalkStderr
      • chalk.stderr.supportsColorsupportsColorStderr
    • Remove .keyword(), .hsl(), .hsv(), .hwb(), and .ansi() coloring methods (#433) 4cf2e40
      • These were not commonly used and added a lot of bloat to Chalk. You can achieve the same by using the color-convert package.
    • The tagged template literal support moved into a separate package: chalk-template (#524) c987c61
    -import chalk from 'chalk';
    +import chalkTemplate from 'chalk-template';
    

    </tr></table>

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump jest from 29.2.2 to 29.3.1

    Bump jest from 29.2.2 to 29.3.1

    Bumps jest from 29.2.2 to 29.3.1.

    Release notes

    Sourced from jest's releases.

    v29.3.1

    Fixes

    • [jest-config] Do not warn about preset in ProjectConfig #13583

    Performance

    • [jest-transform] Defer creation of cache directory #13420

    v29.3.0

    Features

    • [jest-runtime] Support WebAssembly (Wasm) imports in ESM modules (#13505)

    Fixes

    • [jest-config] Add config validation for projects option (#13565)
    • [jest-mock] Treat cjs modules as objects so they can be mocked (#13513)
    • [jest-worker] Throw an error instead of hanging when jest workers terminate unexpectedly (#13566)

    Chore & Maintenance

    • [@jest/transform] Update convert-source-map (#13509)
    • [docs] Mention toStrictEqual in UsingMatchers docs. (#13560)

    New Contributors

    Full Changelog: https://github.com/facebook/jest/compare/v29.2.2...v29.3.0

    Changelog

    Sourced from jest's changelog.

    29.3.1

    Fixes

    • [jest-config] Do not warn about preset in ProjectConfig (#13583)

    Performance

    • [jest-transform] Defer creation of cache directory (#13420)

    29.3.0

    Features

    • [jest-runtime] Support WebAssembly (Wasm) imports in ESM modules (#13505)

    Fixes

    • [jest-config] Add config validation for projects option (#13565)
    • [jest-mock] Treat cjs modules as objects so they can be mocked (#13513)
    • [jest-worker] Throw an error instead of hanging when jest workers terminate unexpectedly (#13566)

    Chore & Maintenance

    • [@jest/transform] Update convert-source-map (#13509)
    • [docs] Mention toStrictEqual in UsingMatchers docs. (#13560)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump chalk from 4.1.2 to 5.1.2

    Bump chalk from 4.1.2 to 5.1.2

    Bumps chalk from 4.1.2 to 5.1.2.

    Release notes

    Sourced from chalk's releases.

    v5.1.2

    • Fix exported styles names (#569) a34bcf6

    https://github.com/chalk/chalk/compare/v5.1.1...v5.1.2

    v5.1.1

    • Improved the names of exports introduced in 5.1.0 (#567) 6e0df05
      • We of course preserved the old names.

    https://github.com/chalk/chalk/compare/v5.1.0...v5.1.1

    v5.1.0

    • Expose style names (#566) d7d7571

    https://github.com/chalk/chalk/compare/v5.0.1...v5.1.0

    v5.0.1

    • Add main field to package.json for backwards compatibility with some developer tools 85f7e96

    https://github.com/chalk/chalk/compare/v5.0.0...v5.0.1

    v5.0.0

    Breaking

    • This package is now pure ESM. Please read this.
      • If you use TypeScript, you need to use TypeScript 4.7 or later. Why.
      • If you use a bundler, make sure it supports ESM and that you have correctly configured it for ESM.
      • The Chalk issue tracker is not a support channel for your favorite build/bundler tool.
      • It's totally fine to stay on Chalk v4. It's been stable for years.
    • Require Node.js 12.20 fa16f4e
    • Move some properties off the default export to individual named exports:
      • chalk.InstanceChalk
      • chalk.supportsColorsupportsColor
      • chalk.stderrchalkStderr
      • chalk.stderr.supportsColorsupportsColorStderr
    • Remove .keyword(), .hsl(), .hsv(), .hwb(), and .ansi() coloring methods (#433) 4cf2e40
      • These were not commonly used and added a lot of bloat to Chalk. You can achieve the same by using the color-convert package.
    • The tagged template literal support moved into a separate package: chalk-template (#524) c987c61
    -import chalk from 'chalk';
    +import chalkTemplate from 'chalk-template';
    

    -chalk2 + 3 = {bold ${2 + 3}}; +chalkTemplate2 + 3 = {bold ${2 + 3}};

    Improvements

    • Bundle dependencies 04fdbd6
      • This means Chalk no longer has any dependencies 🎉

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump chalk from 4.1.2 to 5.0.1

    Bump chalk from 4.1.2 to 5.0.1

    Bumps chalk from 4.1.2 to 5.0.1.

    Release notes

    Sourced from chalk's releases.

    v5.0.1

    • Add main field to package.json for backwards compatibility with some developer tools 85f7e96

    https://github.com/chalk/chalk/compare/v5.0.0...v5.0.1

    v5.0.0

    Breaking

    • This package is now pure ESM. Please read this.
      • If you use TypeScript, you need to use TypeScript 4.7 or later. Why.
      • If you use a bundler, make sure it supports ESM and that you have correctly configured it for ESM.
      • The Chalk issue tracker is not a support channel for your favorite build/bundler tool.
      • It's totally fine to stay on Chalk v4. It's been stable for years.
    • Require Node.js 12.20 fa16f4e
    • Move some properties off the default export to individual named exports:
      • chalk.InstanceChalk
      • chalk.supportsColorsupportsColor
      • chalk.stderrchalkStderr
      • chalk.stderr.supportsColorsupportsColorStderr
    • Remove .keyword(), .hsl(), .hsv(), .hwb(), and .ansi() coloring methods (#433) 4cf2e40
      • These were not commonly used and added a lot of bloat to Chalk. You can achieve the same by using the color-convert package.
    • The tagged template literal support moved into a separate package: chalk-template (#524) c987c61
    -import chalk from 'chalk';
    +import chalkTemplate from 'chalk-template';
    

    -chalk2 + 3 = {bold ${2 + 3}}; +chalkTemplate2 + 3 = {bold ${2 + 3}};

    Improvements

    https://github.com/chalk/chalk/compare/v4.1.0...v5.0.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Add Unit Testing

    Add Unit Testing

    Notes (Really testing the timestamp generation algorithm)

    Use jest.js (https://jestjs.io/docs/getting-started)

    Tasks

    • [x] Have a database of YouTube videos to use, all with different types of ways to get timestamp data ~- [ ] Also have a database of local copy time stamps for descriptions and comments (this will be text data)~ ~- [ ] Test and make sure FFmpeg is working currently~
    • [x] Make sure each fetch YouTube Data function is working currently
    • [x] Add documentation to explain how to use unit testing.
    • [x] Spell check docs addon
    • [x] (optional) Add GitHub action to it
    💡 Feature 
    opened by Guuzzeji 1
  • Bump jest from 29.1.2 to 29.2.2

    Bump jest from 29.1.2 to 29.2.2

    Bumps jest from 29.1.2 to 29.2.2.

    Release notes

    Sourced from jest's releases.

    v29.2.2

    Fixes

    • [@jest/test-sequencer] Make sure sharding does not produce empty groups (#13476)
    • [jest-circus] Test marked as todo are shown as todo when inside a focussed describe (#13504)
    • [jest-mock] Ensure mock resolved and rejected values are promises from correct realm (#13503)
    • [jest-snapshot] Don't highlight passing asymmetric property matchers in snapshot diff (#13480)

    Chore & Maintenance

    • [docs] Update link to Jest 28 upgrade guide in error message (#13483)
    • [jest-runner, jest-watcher] Update emittery (#13490)

    New Contributors

    Full Changelog: https://github.com/facebook/jest/compare/v29.2.1...v29.2.2

    v29.2.1

    Features

    • [@jest/globals, jest-mock] Add jest.Spied* utility types (#13440)

    Fixes

    • [jest-environment-node] make globalThis.performance writable for Node 19 and fake timers (#13467)
    • [jest-mock] Revert #13398 to restore mocking of setters (#13472)

    Performance

    • [*] Use sha1 instead of sha256 for hashing (#13421)

    Full Changelog: https://github.com/facebook/jest/compare/v29.2.0...v29.2.1

    v29.2.0

    Features

    • [@jest/cli, jest-config] A seed for the test run will be randomly generated, or set by a CLI option (#13400)
    • [@jest/cli, jest-config] --show-seed will display the seed value in the report, and can be set via a CLI flag or through the config file (#13400)
    • [jest-config] Add readInitialConfig utility function (#13356)
    • [jest-core] Allow testResultsProcessor to be async (#13343)
    • [@jest/environment, jest-environment-node, jest-environment-jsdom, jest-runtime] Add getSeed() to the jest object (#13400)
    • [expect, @jest/expect-utils] Allow isA utility to take a type argument (#13355)
    • [expect] Expose AsyncExpectationResult and SyncExpectationResult types (#13411)

    Fixes

    • [babel-plugin-jest-hoist] Ignore TSTypeQuery when checking for hoisted references (#13367)

    ... (truncated)

    Changelog

    Sourced from jest's changelog.

    29.2.2

    Fixes

    • [@jest/test-sequencer] Make sure sharding does not produce empty groups (#13476)
    • [jest-circus] Test marked as todo are shown as todo when inside a focussed describe (#13504)
    • [jest-mock] Ensure mock resolved and rejected values are promises from correct realm (#13503)
    • [jest-snapshot] Don't highlight passing asymmetric property matchers in snapshot diff (#13480)

    Chore & Maintenance

    • [docs] Update link to Jest 28 upgrade guide in error message (#13483)
    • [jest-runner, jest-watcher] Update emittery (#13490)

    29.2.1

    Features

    • [@jest/globals, jest-mock] Add jest.Spied* utility types (#13440)

    Fixes

    • [jest-environment-node] make globalThis.performance writable for Node 19 and fake timers (#13467)
    • [jest-mock] Revert #13398 to restore mocking of setters (#13472)

    Performance

    • [*] Use sha1 instead of sha256 for hashing (#13421)

    29.2.0

    Features

    • [@jest/cli, jest-config] A seed for the test run will be randomly generated, or set by a CLI option (#13400)
    • [@jest/cli, jest-config] --show-seed will display the seed value in the report, and can be set via a CLI flag or through the config file (#13400)
    • [jest-config] Add readInitialConfig utility function (#13356)
    • [jest-core] Allow testResultsProcessor to be async (#13343)
    • [@jest/environment, jest-environment-node, jest-environment-jsdom, jest-runtime] Add getSeed() to the jest object (#13400)
    • [expect, @jest/expect-utils] Allow isA utility to take a type argument (#13355)
    • [expect] Expose AsyncExpectationResult and SyncExpectationResult types (#13411)

    Fixes

    • [babel-plugin-jest-hoist] Ignore TSTypeQuery when checking for hoisted references (#13367)
    • [jest-core] Fix detectOpenHandles false positives for some special objects such as TLSWRAP (#13414)
    • [jest-mock] Fix mocking of getters and setters on classes (#13398)
    • [jest-reporters] Revert: Transform file paths into hyperlinks (#13399)
    • [@jest/types] Infer type of each table correctly when the table is a tuple or array (#13381)
    • [@jest/types] Rework typings to allow the *ReturnedWith matchers to be called with no argument (#13385)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • (MAJOR BUG) YouTube comment system isn't working

    (MAJOR BUG) YouTube comment system isn't working

    Error from running Windows Build and MacOS build

    (node:30528) UnhandledPromiseRejectionWarning: TypeError: data.comments[0].text.replaceAll is not a function
        at C:\snapshot\youtube-scissors-cli-1.0.0\fetch\info.js:21:38
        at processTicksAndRejections (internal/process/task_queues.js:95:5)
        at async C:\snapshot\youtube-scissors-cli-1.0.0\fetch\info.js:20:12
        at async C:\snapshot\youtube-scissors-cli-1.0.0\fetch\index.js:29:16
        at async C:\snapshot\youtube-scissors-cli-1.0.0\index.js:154:22
    (Use `youtube-scissors-cli-win --trace-warnings ...` to show where the warning was created)
    (node:30528) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
    (node:30528) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
    
    

    How to fix

    • Update build of Node.js to v16
    🐞 bug 
    opened by Guuzzeji 0
  • Bump @freetube/yt-comment-scraper from 6.1.0 to 6.2.0

    Bump @freetube/yt-comment-scraper from 6.1.0 to 6.2.0

    Bumps @freetube/yt-comment-scraper from 6.1.0 to 6.2.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Add GitHub action Build script

    Add GitHub action Build script

    Todo

    • [x] Create publish.yml
    • [x] Create build script
    • [x] Push build into release

    Resources

    • https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-publish-GitHub-Actions-artifacts-example
    • https://github.com/marketplace/actions/action-zip
    • https://github.com/nektos/act
    • https://github.com/msusdev/end-to-end-github-actions/blob/main/presentations/ci_github_actions.md
    • https://futurestud.io/tutorials/github-actions-run-a-workflow-when-creating-a-tag
    • https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/managing-commits/managing-tags
    • https://github.com/nodematiclabs/nodematic.com/blob/main/.github/workflows/release.yml
    • https://github.com/marvinpinto/action-automatic-releases
    • https://github.com/marketplace/actions/release-changelog-builder
    💡 Feature 
    opened by Guuzzeji 0
Releases(v1.0.1)
Owner
Gabe
💻 I like to make stuff 💡
Gabe
App that allows you to control and watch YouTube videos using hand gestures. Additionally, app that allows you to search for videos, playlists, and channels.

YouTube Alternative Interaction App An app I made with Edward Wu that allows you to search and watch videos from YouTube. Leverages Google's YouTube D

Aaron Lam 2 Dec 28, 2021
solana-base-app is a base level, including most of the common features and wallet connectivity, try using `npx solana-base-app react my-app`

solana-base-app solana-base-app is for Solana beginners to get them up and running fast. To start run : run npx solana-base-app react my-app change th

UjjwalGupta49 33 Dec 27, 2022
An event-driven architecture wrapper for Wechaty that applies the CQS principle by using separate Query and Command messages to retrieve and modify the bot state, respectively.

CQRS Wechaty An event-driven architecture wrapper for Wechaty that applies the CQS principle by using separate Query and Command messages to retrieve

Wechaty 3 Mar 23, 2022
A ts/js pkg to query the OnAir Airline Manager's API.

Typescript/Javascript package for querying the OnAir API A Typescript/Javascript wrapper around the OnAir Airline Manager's API. Installation npm i -s

Virtual Airline Management System 2 Dec 15, 2022
True P2P concept for your p2p powered website/app/client. MSC/MEP (Multiple Strategy Concept/Multiple Entry Points)

TRUE P2P CONCEPT - Lets redecentralize the web This repo is just conceptual. Active development of the endproduct (TRUE P2P) happens here https://gith

Bo 6 Mar 29, 2022
This plugin can generate timestamps for video, audio and Bilibili video, it takes you to the corresponding video/audio position when clicked.

logseq-plugin-media-ts 本插件能够生成视频、音频以及 B 站视频的时间戳,点击时间戳后会跳转到对应的音视频位置。 This plugin can generate timestamps for video, audio and Bilibili video, it takes

Seth Yuan 58 Jan 3, 2023
JavaScript game for Rock Paper Scissors between player and bot

rock-paper-scissors-game JavaScript game for Rock Paper Scissors between player and bot Try it here! : https://rock-paper-scissors-221ef.web.app/ V1.1

Rohindhran Nair 1 Feb 10, 2022
A scalable rock, paper and scissors game for study purpose

A scalable rock, paper and scissors game for personal study purposes. The original game is rock, paper and scissors. However, assuming you want to add

Flávio Delesposte 4 Aug 11, 2022
A good web interface for youtube-dl that allows you to download arbitrary mixes of audio and video, including up to the highest quality such as 8K.

?? youtube-dl-web A good web interface for youtube-dl that allows you to download arbitrary mixes of audio and video, including up to the highest qual

Codian 90 Dec 30, 2022
Deta Base UI - A place with more functionality for managing your Deta Base(s).

Deta Base UI - A place with more functionality for managing your Deta Base(s). ✨ Features: Total rows count Quick multi select (click and shift) Searc

Harman Sandhu 13 Dec 29, 2022
This plugin allows side-by-side notetaking with videos. Annotate your notes with timestamps to directly control the video and remember where each note comes from.

Obsidian Timestamp Notes Use Case Hello Obsidian users! Like all of you, I love using Obsidian for taking notes. My usual workflow is a video in my br

null 74 Jan 2, 2023
Cindy Dorantes 12 Oct 18, 2022
A JavaScript-powered CLI for converting HTML into PDFs

Print Ready by Nicholas C. Zakas If you find this useful, please consider supporting my work with a donation. Description A JavaScript-powered CLI for

Human Who Codes 86 Dec 18, 2022
Asciifly is a webapp where you can asciify images and youtube videos on the fly.

Asciifly Asciifly is a webapp where you can asciify images and youtube videos on the fly. Come visit at https://asciifly.com Hosting I'm hosting this

André Esser 7 May 23, 2022
New base script bot wa by Ramdani Official, don't forget to subscribe youtube Ramdani Official.

Requirements • Installation • Thanks to • Official Group Bot • Donate Information bahasa Indonesia Ramdani Botz V17 adalah bot yang di ciptakan oleh R

Ramdani Official 22 Nov 1, 2022
A CLI application that allows you to easily grind your Steam items into gems.

Gemify Tool Gemify Tool is a CLI (Command Line Interface) application that allows you to easily convert your Steam items (backgrounds / emoticons) to

Jack Nolddor 3 Jun 17, 2022
The ToDoList app let you create a task, added to a list of task, mark it as complete, and delete individual or multiple tasks at the same time

The ToDoList app let you create a task, added to a list of task, mark it as complete, and delete individual or multiple tasks at the same time. The app manipulate the Local-Storag so you can save your tasks there. Built with HTML, CSS and JavaScript. First practice using Webpack, Modules and tests with Jest

Tomas Milanesi 12 Jul 21, 2022