Giter Site home page Giter Site logo

marcio199226 / ytd Goto Github PK

View Code? Open in Web Editor NEW
59.0 5.0 16.0 11.54 MB

Download songs from youtube, create your own offline playlists and share them with your friends around all world

License: MIT License

Go 38.98% JavaScript 6.06% TypeScript 31.66% HTML 14.62% SCSS 8.19% CSS 0.49%
wails angular golang youtube youtube-dl dekstop mp3 playlist typescript

ytd's Introduction

ytd

Dekstop app for downloading audio tracks from youtube built with wails & angular

(*) please note this is an alpha version in case of malfunction please open an issue

Install

Download from releases page

PWA

Supported platfroms for now

  • Macos (tested on 11.5.x/11.6.x & 12.x apple m1)

Main features:

  • check for updates & app update
  • clipboard watch (once yt link is copied it will be automatically downloaded, can be disabled)
  • run in bg on close (run app in bg even if you closed app window)
  • convert webm files to mp3
  • system tray with fast settings
  • in app player for single tracks and playlists (for now only for offline created playlists)
  • Internalization
    • English
    • Polish
    • Italian
  • clean and simple UI (I hope ;))
  • create offline playlist
    • playback playlist
    • add/remove tracks
    • export to any external devices (pen drive , external hd etc...) or any folder
  • Made with πŸ’š with golang & angular in my spare time

Screenshots

home

settings_dialog

downloading_track

track_playback

playlist_playback

Build from sources

Wails requirements: https://wails.io/docs/gettingstarted/installation

Dev env

Angular

cd frontend && npm install && npm run serve

Wails

wails dev --e "html"

Open tab in chrome (preffered) and go to http://localhost:4200

Extract translation for golang side:

xgotext -exclude "vendor,frontend" -in "/Users/oskarmarciniak/projects/golang/ytd" -out "/Users/oskarmarciniak/projects/golang/ytd/i18n"

Build binaries (Macos only at the moment)

wails build --platform darwin/arm64 --clean --package --production

wails build --platform darwin/amd64 --clean --package --production --upx

(*) upx doesn't work for apple m1 upx/upx#446

Roadmap

  • Chrome extension so tracks may be downloaded without user interaction (even without copy yt links)
  • Internalization
  • Share tracks through public webserver running locally
  • Download playlists from yt (exports them, search for playlist, playback playlist etc...)

ytd's People

Contributors

marcio199226 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ytd's Issues

Can not move the window?

After running the app (v v0.4.1-alpha ) on macbook m1 , I tried to move the window by trying to grab the top bar with the mouse, but it does nothing and I can not move the window .

Doesn't launch

I just downloaded v0.4.1-alpha and tried to launch it and it wont launch with the message: β€œytd” is damaged and can’t be opened. You should move it to the Trash. I had to manually remove the quarantine extended attribute to get it to work (xattr -cr /Users/jeng/Downloads/ytd.app).

frontend build failing for me on v2-wails branch

mac, go1.17.6

Node.js v17.5.0

npm version
{
apple: '0.0.0',
npm: '8.4.1',
node: '17.5.0',
v8: '9.6.180.15-node.13',
uv: '1.43.0',
zlib: '1.2.11',
brotli: '1.0.9',
ares: '1.18.1',
modules: '102',
nghttp2: '1.46.0',
napi: '8',
llhttp: '6.0.4',
openssl: '1.1.1m',
cldr: '39.0',
icu: '69.1',
tz: '2021a',
unicode: '13.0'
}

makefile:


# https://github.com/marcio199226/ytd/tree/v2-wails

# Desktop app for downloading audio tracks from youtube built with wails & angular

REPO_NAME=ytd

print:

all: f-build b-build

dep:
	git clone [email protected]:marcio199226/ytd.git -b v2-wails
dep-delete:
	rm -rf $(REPO_NAME)

dep-os:
	# wails cli. TODO. modify to correct version as needed
	go install github.com/wailsapp/wails/v2/cmd/wails@latest

	# node and npm assumed
	
f-build:
	cd $(REPO_NAME)/frontend && npm install
	#cd $(REPO_NAME)/frontend && npm run build
f-serve:
	# this builds it. 
	cd $(REPO_NAME)/frontend && npm run serve


b-doctor:
	cd $(REPO_NAME) && wails doctor
b-dev:
	cd $(REPO_NAME) && wails dev
b-serve:
	cd $(REPO_NAME) && wails serve
b-build:
	cd $(REPO_NAME) && wails build
b-dist:
	# mac in this case
	cd $(REPO_NAME) && wails build -platform darwin/arm64 -clean


and running the makefile:

 ytd git:(main) βœ— make dep
git clone [email protected]:marcio199226/ytd.git -b v2-wails
Cloning into 'ytd'...
remote: Enumerating objects: 3214, done.
remote: Counting objects: 100% (3214/3214), done.
remote: Compressing objects: 100% (2204/2204), done.
remote: Total 3214 (delta 1385), reused 2683 (delta 866), pack-reused 0
Receiving objects: 100% (3214/3214), 11.32 MiB | 4.93 MiB/s, done.
Resolving deltas: 100% (1385/1385), done.
➜  ytd git:(main) βœ— make f-build
#cd ytd/frontend && npm run build
➜  ytd git:(main) βœ— make f-build
cd ytd/frontend && npm install
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@angular-devkit/[email protected]',
npm WARN EBADENGINE   required: {
npm WARN EBADENGINE     node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE     npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE     yarn: '>= 1.13.0'
npm WARN EBADENGINE   },
npm WARN EBADENGINE   current: { node: 'v17.5.0', npm: '8.4.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@angular-devkit/[email protected]',
npm WARN EBADENGINE   required: {
npm WARN EBADENGINE     node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE     npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE     yarn: '>= 1.13.0'
npm WARN EBADENGINE   },
npm WARN EBADENGINE   current: { node: 'v17.5.0', npm: '8.4.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@angular-devkit/[email protected]',
npm WARN EBADENGINE   required: {
npm WARN EBADENGINE     node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE     npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE     yarn: '>= 1.13.0'
npm WARN EBADENGINE   },
npm WARN EBADENGINE   current: { node: 'v17.5.0', npm: '8.4.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@angular-devkit/[email protected]',
npm WARN EBADENGINE   required: {
npm WARN EBADENGINE     node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE     npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE     yarn: '>= 1.13.0'
npm WARN EBADENGINE   },
npm WARN EBADENGINE   current: { node: 'v17.5.0', npm: '8.4.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@angular-devkit/[email protected]',
npm WARN EBADENGINE   required: {
npm WARN EBADENGINE     node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE     npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE     yarn: '>= 1.13.0'
npm WARN EBADENGINE   },
npm WARN EBADENGINE   current: { node: 'v17.5.0', npm: '8.4.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@angular-devkit/[email protected]',
npm WARN EBADENGINE   required: {
npm WARN EBADENGINE     node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE     npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE     yarn: '>= 1.13.0'
npm WARN EBADENGINE   },
npm WARN EBADENGINE   current: { node: 'v17.5.0', npm: '8.4.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@angular/[email protected]',
npm WARN EBADENGINE   required: {
npm WARN EBADENGINE     node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE     npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE     yarn: '>= 1.13.0'
npm WARN EBADENGINE   },
npm WARN EBADENGINE   current: { node: 'v17.5.0', npm: '8.4.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@ngtools/[email protected]',
npm WARN EBADENGINE   required: {
npm WARN EBADENGINE     node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE     npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE     yarn: '>= 1.13.0'
npm WARN EBADENGINE   },
npm WARN EBADENGINE   current: { node: 'v17.5.0', npm: '8.4.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@schematics/[email protected]',
npm WARN EBADENGINE   required: {
npm WARN EBADENGINE     node: '^12.14.1 || >=14.0.0',
npm WARN EBADENGINE     npm: '^6.11.0 || ^7.5.6',
npm WARN EBADENGINE     yarn: '>= 1.13.0'
npm WARN EBADENGINE   },
npm WARN EBADENGINE   current: { node: 'v17.5.0', npm: '8.4.1' }
npm WARN EBADENGINE }
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated [email protected]: The
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142

added 1372 packages, and audited 1373 packages in 46s

87 packages are looking for funding
  run `npm fund` for details

60 vulnerabilities (2 low, 50 moderate, 8 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues, run:
  npm audit fix --force

Run `npm audit` for details.
#cd ytd/frontend && npm run build
➜  ytd git:(main) βœ— make b-build 
cd ytd && wails build
Wails CLI v2.0.0-beta.30



App Type:               desktop
Platform:               darwin
Arch:                   amd64
Compiler:               /usr/local/bin/go
Build Mode:             Production
Skip Frontend:          false
Compress:               false
Package:                true
Clean Build Dir:        false
LDFlags:                ""
Tags:                   []

Warning: go.mod is using Wails '2.0.0-alpha.73' but the CLI is 'v2.0.0-beta.30'. Consider updating your project's `go.mod` file.

Installing frontend dependencies: Done.
Compiling frontend:     
    > [email protected] build
    > npx ng build --single-bundle true --output-hashing none --aot --build-optimizer --optimization --allowed-common-js-dependencies
    
    
    Node.js version v17.5.0 detected.
    Odd numbered Node.js versions will not enter LTS status and should not be used for production. For more information, please see https://nodejs.org/en/about/releases/.
    - Generating browser application bundles (phase: setup)...
    An unhandled exception occurred: ENOENT: no such file or directory, stat '/Users/apple/workspace/go/src/github.com/gedw99/fhir-tools/gui/github.com__matryer__xbar/others/ytd/ytd/frontend/dist'
    See "/private/var/folders/wp/ff6sz9qs6g71jnm12nj2kbyw0000gp/T/ng-XWhTpg/angular-errors.log" for further details.
    


ERROR: exit status 127

If Wails is useful to you or your company, please consider sponsoring the project:
https://github.com/sponsors/leaanthony

make: *** [b-build] Error 1
➜

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.