Giter Site home page Giter Site logo

ikhsanalatsary / meowtube Goto Github PK

View Code? Open in Web Editor NEW
28.0 4.0 3.0 102 KB

YouTube client on your terminal

License: Apache License 2.0

Go 100.00%
command-line cli youtube-dl youtube vlc vlc-player vlc-media-player video audio streaming streaming-video streaming-audio go golang

meowtube's Introduction

MeowTube

YouTube client on your terminal

Example

Table of Contents

About

MeowTube is a CLI (Command Line Interface) to interact with youtube videos or audios and easy to play it via VLC. No need any account to use it.

Getting Started

First, make sure VLC already installed on your machine.

Prerequisites

  1. VLC Media Player Installed

  2. Register VLC (location where VLC installed) to your PATH variable

  3. for windows user, better to use cmder, ANSI color supported by default

  4. Check everything is good, type vlc on your terminal / cmd.

    vlc
    

Register VLC to the PATH

  • Linux, no need extra step
  • Mac OS / OSX, See Official Doc and then export that location to your .zshrc or .bashrc
    echo 'export PATH="$PATH:/Applications/VLC.app/Contents/MacOS"' >> ~/.zshrc && source ~/.zshrc
    
  • Windows, see Official Doc and then copy that directory location to your PATH on your environment variable (see reference).

Installing

  1. Download MeowTube via release page
  2. Choose which target OS do you use
  3. Extract the downloaded file
  4. Move the file to any folder what you want (OPTIONAL)
  5. Register MeowTube to your PATH variable (choose where meowtube is located)
  6. Create an alias for MeowTube (OPTIONAL)
  7. You may need to create meowtube config, due to some instances uses anti bot protection

Register MeowTube to the PATH

  • unix based(linux & macos). export to .zshrc or .bashrc
    echo 'export PATH="$PATH:$HOME/MEOWTUBE_LOCATION_FOLDER"' >> ~/.zshrc && source ~/.zshrc
    
  • Windows, copy the directory location to your PATH on your environment variable (see reference)

Usage

Check everything is good. Type on your terminal

meowtube

or

meowtube --help

Command Line Arguments

Argument Description
help Help about any command
play To play YouTube video
popular To see popular videos on YouTube
search To search for videos according to certain characters
trending To see trending videos on YouTube

Play Arguments

Argument Description
:YoutubeURL Valid YouTube video url e.g: https://youtu.be/0FZZJHuQMFs
:videoId Valid Youtube videoId e.g: "tMzjKjV6r_w"
audio To play audio only
playlist To play all videos from YouTube playlist
list shorthand for playlist. To play all videos from YouTube playlist
video To play YouTube video

NOTE: Every argument has --help flag to see their specific usage

Global config

This config used for excluding or including invidious instances. You can add this config on your $HOME PATH and named it with .meowtube.yaml. For excluding, you can set it as false. Example:

invidious.fdn.fr: false
invidious.kavin.rocks: false
invidious.snopyta.org: false
yewtu.be: true
ytprivate.com: false

Reference: Invidious Instances

✍️ Authors

🎉 Acknowledgements

📌 Misc

I also published an app that uses Invidious APIs. You can download it on Play Store.

Get it on Google Play

meowtube's People

Contributors

ikhsanalatsary avatar nleroy917 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

Watchers

 avatar  avatar  avatar  avatar

meowtube's Issues

Bypass DDOS Protection

Nowadays, the problems are coming from invidious instances. Most of them have DDOS protection by Cloudflare. Then I think, We can use headless chrome, but I am not sure if it is the only way.

Use goreleaser

many projects using goreleaser. it easier to automate release work flow

Interactive terminal

The idea of this project is from a Spotify client, a plugin on Oh_My_ZSH that works on macOS only. Then, after all my works are done. I saw an awesome project like bubletea, I think, I can use that to make this more interactive and beautiful. This will be a rewrite (not sure if it can be combined with cobra), I think this is for the next major release.

Unexpected url format

Using Meowtube v1.2.0. There is an videoID that uses - in the leading of their characters. But go cannot remove single quotes on string characters automatically.

 meowtube play video '-ffooJCx37c' --resolution 720p
Request video...
Failed request url https://invidious.zee.li/api/v1/videos/'-ffooJCx37c'?fields=formatStreams,title,author,genre,adaptiveFormats,lengthSeconds
statusCode:  500
Unable to request

bugs and questions

Hello, when using search --type video --page 1, the request url ends with &page=\x01 and a error message shows: invalid control character in URL.

Besides using the --page option, is there another way to restrict the number of results returned from a search?

I also would like to ask if it's possible to change the default resolution for videos? Maybe via the config file?

Thanks a lot.

ARCHIVE

I want to archive this fun project due to I don't have time to maintain it.

Docs needs to be updated

There are some typos in the Readme & wrong instructions. especially, on register Path section

Timeout 403 unable to request

meowtube play video "videoIDhere" -r 1080p Request video... Get "https://uptime.invidious.io/api/getMonitorList/89VnzSKAn?page=1&_=1611588676444": dial tcp: lookup uptime.invidious.io on 192.168.1.1:53: read udp 192.168.1.30:55250->192.168.1.1:53: i/o timeout

running latest version. until last night was working fine.

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.