Giter Club home page Giter Club logo

vivace's Introduction

Vivace

Table of Contents
  1. About The Project
  2. Build From Source
  3. Usage
  4. Examples
  5. Contributing
  6. License
  7. Contact

About The Project

Command line tool in Rust to download songs from Youtube to whatever encoding you want

Note: ffmpeg needs to be present on your system

(back to top)

Build from source

To build the project from source, run cargo build --release within the project directory

(back to top)

Usage

vivace [OPTIONS] --url <URL> --output-file <OUTPUT_FILE>

Options:
  -u, --url <URL>                  Video URL
  -o, --output-file <OUTPUT_FILE>  Output file name
  -c, --chunk-size <CHUNK_SIZE>    Chunk size for partial requests
  -h, --help                       Print help
  -V, --version                    Print version

(back to top)

Examples

Download a song to given output file with .mp3 extension

vivace --url https://www.youtube.com/watch?v=dQw4w9WgXcQ --output-file my-favourite-song.mp3

Download a song to given output file with .wav extension

vivace --url https://www.youtube.com/watch?v=dQw4w9WgXcQ --output-file my-favourite-song.wav

Download a song to given output file and specify chunk size (in bytes) for the partial requests to the server

vivace --url https://www.youtube.com/watch?v=dQw4w9WgXcQ --output-file my-favourite-song.mp3 -c 10240

(back to top)

Contributing

Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Pavlos Smith - paulsmith4561+at+gmail.com

(back to top)

vivace's People

Contributors

almeida-a avatar dependabot[bot] avatar ibyteabit256 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

almeida-a

vivace's Issues

Source linting

Hello, thank you for publishing this interesting project!

I have a suggestion for using the cargo fmt and clippy tools on the project's source code, in order to have some standardized styling to it.

@iByteABit256 I don't know what policy you want to have on this subject, and since I noticed your own code style, you might want to stick to it. If so, you can configure your fmt style on a rustfmt.toml file (see more), if you still want to enforce uniform style throughout the project.

ID3 tags for author, cover image and keywords

These can all be parsed from the videoDetails field of the POST response:

"videoDetails": {
        "videoId": "pqhfyrW_BEA",
        "title": "Πούτσες Μπλε - Κοντοψώλης (Poutses Mple - Kontopsolis)ft.Moumou",
        "lengthSeconds": "330",
        "keywords": [
            "κωμωδία",
            "comedy",
            "punk rock",
            "poutses mple",
            "greece",
            "katerini",
            "greek",
            "music comedy",
            "poutse",
            "mple",
            "kontoppsolis",
            "κατερινη",
            "κοντοψώλης",
            "κοντοψωλης",
            "stoner",
            "heavy rock",
            "kontopsolis",
            "plokami tou karxaria",
            "plokami",
            "anorimoi",
            "kafrilion",
            "metallira",
            "ανωριμοι",
            "καφριλιον",
            "μεταλληρα",
            "πλοκαμι",
            "πλοκαμι του καρχαρια",
            "ελληνικο ροκ",
            "ελληνικη πανκ"
        ],
        "channelId": "UC6k-84tp0t7-LW69ZS2hlJA",
        "isOwnerViewing": false,
        "shortDescription": "Το σινγκλάκι από το πρώτο μας αλμπουμ με τίτλο \nTA QIFSHA ROCK.\nmix/master:Alexandros Argyris (Sonata Antartika)\nhttps://poutsesmple.bandcamp.com/\nστίχοι:\n\nΜ'ένα πέος μικρογραφία\nνιώθω πολύ μικρός γι'αυτήν την πόλη\nΜε τσιμπιδάκι βαράω μαλακία\nοι φίλοι με φωνάζουν κοντοψώλη\nΗ πούτσα μου είναι πυγμαία \nστο πρώτο ραντεβού δε θα το μάθεις\nΜε κατατάσσουν στα ΑΜΕΑ\nμα αν με αγαπάς θα καταλάβεις\n\nΜα εσύ που με λατρεύεις θα'σαι πάντα εδώ\nΜα εσύ που με λελεύεις θα'σαι πάντα εδώ\n\nΣαν ψωλή στο χιόνι\nπέντε εκατοστά όταν καυλώνει\nΜαλακιά σαν κρέπα\nτρωκτικό μικρό που ζει στη στέπα\nΤο καυλί που αγαπάς δε σε νοιάζει ως προς το μέγεθός του\nΜπορεί να'ναι μικρό μα εσύ το βλέπεις τραίνο\n\nΣ'αγαπάω δε σε αλλάζω \nτην πούτσα σου όμως όταν αντικρίζω \nΜε το ζόρι την αρπάζω\nάθλος είναι να μη σε απατήσω\nΑκρότατο είναι το λιλί σου\nολικό ελάχιστο σε λέω\nΚι όταν με λένε άντε γαμήσου\nδε μπορώ το σκέφτομαι και κλαίω\n\nΜα εγώ που σε λατρεύω θα'μαι πάντα εδώ\nΜα εγώ που σε λελεύω θα'μαι πάντα εδώ\n\nΣαν ψωλή στο χιόνι\nπέντε εκατοστά όταν καυλώνει\nΜαλακιά σαν κρέμα\nθα'ναι πάντα μια σταλιά για μένα\nΤο καυλί που αγαπάς κρίμα να'ναι μισό\nΕίναι τόσο μικρό σα να το ταλαιπωρώ \n\nΠούτσα γαριδάκι\nΠούτσα από στρουμφάκι\nΠούτσα μπλε γαμάτη\n\nΜικρό για αιδοίο\nΤο τρίο κάνει δύο\nΓια πταισματοδικείο\n\nspecial thanks to Μπίλης,Μπίλης ο δίπλας,Τίμος,Ντίνος,Δήμητρα.",
        "isCrawlable": true,
        "thumbnail": {
            "thumbnails": [
                {
                    "url": "https://i.ytimg.com/vi/pqhfyrW_BEA/hqdefault.jpg?sqp=-oaymwEiCKgBEF5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ==&rs=AOn4CLACznixSiAUN-tWTha0zy_IYWv0QQ",
                    "width": 168,
                    "height": 94
                },
                {
                    "url": "https://i.ytimg.com/vi/pqhfyrW_BEA/hqdefault.jpg?sqp=-oaymwEiCMQBEG5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ==&rs=AOn4CLCLYNhmyoeEQ68pixrZpAO7oxrgVQ",
                    "width": 196,
                    "height": 110
                },
                {
                    "url": "https://i.ytimg.com/vi/pqhfyrW_BEA/hqdefault.jpg?sqp=-oaymwEjCPYBEIoBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE=&rs=AOn4CLCUjsd-v9HwaOfiddKckRCIouyI6g",
                    "width": 246,
                    "height": 138
                },
                {
                    "url": "https://i.ytimg.com/vi/pqhfyrW_BEA/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE=&rs=AOn4CLC70PiMIs5zvq6ga_w8pbCs--PJnA",
                    "width": 336,
                    "height": 188
                },
                {
                    "url": "https://i.ytimg.com/vi/pqhfyrW_BEA/maxresdefault.jpg",
                    "width": 1920,
                    "height": 1080
                }
            ]
        },
        "allowRatings": true,
        "viewCount": "22702",
        "author": "POUTSES MPLE",
        "isPrivate": false,
        "isUnpluggedCorpus": false,
        "isLiveContent": false
    },

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.