Skip to content

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

License

Notifications You must be signed in to change notification settings

marcio199226/ytd

Repository files navigation

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...)