All Projects → markets → suchtube

markets / suchtube

Licence: MIT license
🔍 📼 YouTube search as a service, with Slack integration and CLI

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to suchtube

youtube-sr
Simple library for Node, Deno & Bun to make YouTube search easily
Stars: ✭ 68 (+172%)
Mutual labels:  youtube-api, youtube-search, search-videos
node-youtube-music
Unofficial YouTube Music API for Node.js
Stars: ✭ 34 (+36%)
Mutual labels:  youtube-api, youtube-search
angular-youtube-player
Simple youtube player created with angular and typescript. See demo.
Stars: ✭ 35 (+40%)
Mutual labels:  youtube-api, youtube-search
scrapetube
Get all videos from a youtube channel, get all videos from a playlist, get all videos that match a search
Stars: ✭ 120 (+380%)
Mutual labels:  youtube-api, youtube-search
phpvibe-lite
PHPVibe Open source video CMS / Video Sharing CMS / Youtube Api v3 / Video Embeds
Stars: ✭ 71 (+184%)
Mutual labels:  youtube-api, youtube-search
search-youtube
An Android App used for searching and playing videos from YouTube. Used: Youtube Data API v3, YouTube Player API
Stars: ✭ 24 (-4%)
Mutual labels:  youtube-api, youtube-search
youtube-python
YouTube Api wrapper in python
Stars: ✭ 65 (+160%)
Mutual labels:  youtube-api
python-youtube-music
Python 3 YouTube Music Web API Client
Stars: ✭ 39 (+56%)
Mutual labels:  youtube-api
jetson-monitor
🚨 Jetson is an HTTP monitoring service used to notify by various messaging platforms such as Slack and Telegram
Stars: ✭ 45 (+80%)
Mutual labels:  service
helium
Helium is a small, simple, modular constructor with some pre-built components for your convenience.
Stars: ✭ 67 (+168%)
Mutual labels:  service
ex aws s3
No description or website provided.
Stars: ✭ 121 (+384%)
Mutual labels:  service
service-systemd
Setup a node.js app as systemd service.
Stars: ✭ 35 (+40%)
Mutual labels:  service
youtube-playlist
❄️ Extract links, ids, and names from a youtube playlist
Stars: ✭ 73 (+192%)
Mutual labels:  youtube-api
gotor
This program provides efficient web scraping services for Tor and non-Tor sites. The program has both a CLI and REST API.
Stars: ✭ 97 (+288%)
Mutual labels:  service
youtube-json-server
Your personal Youtube API server to get Youtube API responses without needing credentials.
Stars: ✭ 32 (+28%)
Mutual labels:  youtube-api
youtube-upload-multi-videos
Youtube Uploader: auto upload multiple youtube videos 批量自动上传youtube视频
Stars: ✭ 38 (+52%)
Mutual labels:  youtube-api
MyTube-1
An android MVVM clone of Youtube created completely from scratch. Uses the Youtube data API. Has no signup/login features, rather direct search and watch videos. Creating and saving to playlists, dowloading videos will also be supported.
Stars: ✭ 30 (+20%)
Mutual labels:  youtube-api
WaveSDK
WaveSDK, 让音乐跟上你的步频,根据跑步记录,智能推送歌曲,可高度化定制二次开发,为Android开发者提供了简单,快捷的接口 跑嗨乐.
Stars: ✭ 36 (+44%)
Mutual labels:  service
server-framework
纯C的分布式服务器框架通用模板,跨平台,模块动态加载,tcp/可靠UDP,协程RPC,日志,集群建立
Stars: ✭ 24 (-4%)
Mutual labels:  service
svgify
service to threshold-svg your images
Stars: ✭ 22 (-12%)
Mutual labels:  service

SuchTube

Help Contribute to Open Source

Youtube Search as a service

SuchTube is a server and a CLI app to search videos on YouTube.

The server responds to multiple formats, even comes with Slack integration:

  • html at GET /search.html?q=cats
  • json at GET /search.json?q=cats
  • text at GET /search.text?q=cats
  • slack at POST /search.slack + Slack payload

The CLI allows you to search videos without leaving the terminal:

> suchtube funny cats
> suchtube football top goals --random --open

Or start the server:

> suchtube --server

You can also use the search part as a library.

Installation and usage

Requirements

  • Node.js

Currently this package officially supports (and is tested against) Node v8.3+. If you need to manage different Node environments, a version manager (like creationix/nvm or tj/n) is recommended.

  • YouTube Data API key

Should be loaded in current shell as an environment variable named SUCHTUBE_YOUTUBE_DATA_API_V3.

Install

Via npm:

> npm install -g suchtube
> suchtube --help

Via GitHub:

  • Clone this repo and cd into it.
  • Run npm install
  • Run npm start to start the server
  • Run bin/suchtube -h to use the CLI

The server listens by default on port 3333, if you want to change this, you can do it via the PORT environment variable. If you're starting the server using the SuchTube CLI, you can also set the port by:

> suchtube --server --port 4444

Options

Options while using the CLI are available in the following formats: --time=10 or --time 10. For the server, you should pass the options along with the query, inside the q paramater, ie: ?q=funny+cats+--time=10.

  • --time=10, -t=10

Starts the video at the given time in seconds.

  • --random, -r

Returns a random video taking into account the given topic.

  • --open, -o (CLI only)

Opens the video in your browser.

  • --full, -f (CLI only)

Displays full video's information. It corresponds to hit GET /search.json?q= against the server.

Usage as a library

You can use the SuchTube search as a library:

const suchtube = require('suchtube')

suchtube.search('funny cats', { random: true }).then(video => {
  console.log(video.title)
  console.log(video.link)
  console.log(video.publishedAt)
})

Slack integration

/suchtube funny cats --random

To integrate SuchTube in your Slack workspace, read the following guides: https://api.slack.com/slash-commands.

Basically, you should run the server, make it publicly available (via URL or IP) and create a custom Slash Command pointing to your instance URL.

Contributing

Any kind of idea, suggestion or bug report are really welcome! Just fork the repo, make your hack and send a pull request.

Thanks to all contributors, you rock 🤘

Development

Start the server in development mode (nodemon + debugging):

> npm run dev

Run tests:

> npm test

License

Copyright (c) Marc Anguera Insa. SuchTube is released under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].