bbond007 / raspytube

OpenVG YouTube client for Raspberry Pi

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

raspytube - an OpenVG YouTube client for Raspberry Pi.

binarybond007@gmail.com

Installation

Automatic install

wget --no-check-certificate https://github.com/bbond007/raspytube/raw/master/install.sh -O - | sh

Installing using ultra-simple binary-only install.

# Install dependancies
echo "> Installing dependancies."
sudo apt-get install omxplayer wget libjpeg8 youtube-dl

# Updating youtube-dl to make sure it's the latest version.
echo "> Updating youtube-dl."
sudo youtube-dl -U

# Download binary
echo "> Downloading raspytube binary."
sudo wget https://github.com/bbond007/raspytube/raw/master/raspytube.bin -O /usr/local/bin/raspytube.bin
sudo chmod a+x /usr/local/bin/raspytube.bin

# Launch raspytube!
echo "> Launching raspytube!"
raspytube.bin

Installing from source

# Install dependancies
sudo apt-get install omxplayer wget libjpeg8 youtube-dl

# Update youtube-dl. Need to make sure it's up to date with youtube API.
sudo youtube-dl -U

# Install compilation tools and required libraries
sudo apt-get update
sudo apt-get install build-essential git-core libjpeg8-dev libx11-dev

# Compile ilclient
cd /opt/vc/src/hello_pi/libs/ilclient
make clean
make

# Compile raspytube
cd ~
git clone https://github.com/bbond007/raspytube
cd raspytube
cd OMXJPEG
make clean
make
cd ..
cd GFXDATA
make clean
make
cd ..
make clean
make

# Launch raspytube!
./raspytube.bin

Usage

Keys:

Q - run 1/4 screen in X11 window

M - main menu

S - search (edit existing txt)

N - new search

J - (uppercase) test joystick (useful for configuring JS) 

j - (lowercase) joystick/keyboard/mouse menu (input menu)

cursor down - next record

cursor up - prev record

cursor right- get next # results

cursor left- get prev # results

ESC - exit screen/program

The following are also available from the menu:

C - category menu

F - set youtube-dl format
	
G - GUI Menu 

P - toggle between OMXPlayer and MPlayer 

H - toggle between HDMI/Local audio output

j - joystick/keyboard/mouse menu (input menu)

I - more information on selected record

X - toggle between software (libjpeg) and hardware (OMX) jpeg decoding.

Notes

	* OMX-jpg & gfx data broken out into seperate static libs (see updated compile instructions)
	
	* you need 64MB VRAM to run this program.

	* MPlayer if you switch to windowed mode.  

	* Added mouse support.

	* Added support to run in X11 window! 

This application can now run in a X11 window. The app is not really

running in X11 window, but it is a clever illusion. How I accomplish

this is I create a dummy X11 window, track the movement of that window

on the desktop then uses "vc_dispmanx_element_change_attributes" of

the VC output to match. This has the added benefit of being able to

take input focus and capture X11 input such as mouse move/enter events

and keypresses. Apparently it is very expensive to call XGetWindowAttributes

and XGetGeometry (that is actually how MC Hammer went broke), so I only

do so periodically which is why you'll notice a slight lag when you move

the window (before the VC window catches up). This is also why the window

is always front-most. To switch to XWindows mode, There is an invisible

"button" on right-topmost position to toggle on the screen or the "q"

key (for quarter-screen). Repeat to return.

Acknowledgements

Thanks the the RPi community!

parts of this come from "shapes.c":

shapes: minimal program to explore OpenVG

Anthony Starks (ajstarks@gmail.com)

and "test_image.c"

ShivaVG / IvanLebenivan.leben@gmail.com

ShivaVG-anopen-sourceLGPLANSICimplementationoftheOpenVGspecification

Also thanks to MattOwnby and jumble) for OMX jpeg decode

Thanks to CalumJEadie for formatting this file.

About

OpenVG YouTube client for Raspberry Pi


Languages

Language:C 98.1%Language:C++ 1.9%Language:Shell 0.1%