ediaz23 / crunchyroll-webos-stream

Unofficial Crunchyroll app for LG Smart TVs, allowing users to browse and stream anime directly on their TV. Built with Enact library and WebOS SDK. This app is not owned or endorsed by Crunchyroll or LG or Sony.
Apache License 2.0
10 stars 2 forks source link
anime crunchyroll-tv enactjs javascript lg react reactjs recoil recoiljs smart-tv webos webos-application webos-tv

Crunchyroll App for LG Smart TVs

Crunchyroll™ is a registered trademark of the Sony Pictures Entertainment Inc.\ This project is not affiliated with Crunchyroll, Team Crunchyroll, or the Sony Pictures Entertainment Inc.

About

This is an unofficial app for LG smart TVs that allows you to watch Crunchyroll,\ a popular anime streaming service.

Warning

This project is not affiliated with or endorsed by Crunchyroll. The use of this project may violate the terms of service between you and stream provider. Use with caution and at your own risk.

Disclaimer

This software is intended for personal use only. Do not use it for illegal purposes, such as downloading copyrighted content without permission. We do not condone or support piracy, and any misuse of this software is not the responsibility of the project contributors or maintainers.

Tested on Devices

How to run on local? (Linux)

1) Install git, node and npm. I use node version v16.17.0 and npm version 8.15.0 (google it), example:

sudo apt install git
sudo apt install nodejs
sudo apt install npm

Note: Node 16 or greater required.

2) Install enact client (version 6.1.1):

npm install -g @enact/cli

3) Create a new folder or go to where you want to download source code, example:

mkdir ~/webos-crunchy-test
cd ~/webos-crunchy-test

4) Download necessary source code from github, example:

git clone https://github.com/ediaz23/crunchyroll-webos-stream --recursive --single-branch --branch=master --depth 3
git clone https://github.com/ediaz23/crunchyroll-webos-service --single-branch --branch=master --depth 3
git clone https://github.com/ediaz23/crunchyroll-webos-server --single-branch --branch=master --depth 3

5) Run npm install for each project.

cd crunchyroll-webos-stream && npm install && cd ..
cd crunchyroll-webos-service && npm install && cd ..
cd crunchyroll-webos-server && npm install && cd ..

6) In one terminal run server:

cd crunchyroll-webos-server && npm run play

7) In other terminal run front-end:

cd ~/webos-crunchy-test/crunchyroll-webos-stream && npm run serve

8) Should run in any browser disabling cors, but my setup is chromium_81.0.4044.92_1.vaapi_linux.tar with next command:

~/webOS_TV_SDK/chrome-linux/chrome \
  --user-data-dir=$HOME/webOS_TV_SDK/chrome-linux/tmp_chrome \
  --disable-site-isolation-trials \
  --allow-file-access-from-files \
  --disable-web-security \
  --enable-remote-extensions \
  --enable-blink-features=ShadowDOMV0,CustomElementsV0

9) You can load mock data editing src/const.js

How to create local package? (Linux)

6) Follow previously 5 steps and run build-dev for development or build-p for production, and app will be created in ~/webos-crunchy-test/crunchyroll-webos-stream/bin:

cd ~/webos-crunchy-test/crunchyroll-webos-stream && npm run build-dev

Help

Control back event.

window.dispatchEvent(new KeyboardEvent('keydown', { 'keyCode': 461 }))

Create a Dash file

x264 --output intermediate.264 --fps 24 --preset slow --bitrate 2400 --vbv-maxrate 4800 --vbv-bufsize 9600 --min-keyint 48 --keyint 48 --scenecut 0 --no-scenecut --pass 1 --video-filter "resize:width=1280,height=720" inputvideo.mkv

MP4Box -add intermediate.264 -fps 24 output_2400k.mp4

MP4Box -dash 4000 -frag 4000 -rap -segment-name kimi_z_video_segment_ output_2400k.mp4

MP4Box -dash 4000 -frag 4000 -rap -segment-name kimi_z_audio_segment_ output_2400k.mp4#audio

Copy all video.mpd and only Adaptation from audio.mpd

Create a m3u8 file

ffmpeg -i kimi.mp4 -threads 16 -c:v libx264 -c:a aac -b:v 1M -b:a 128k -flags +cgop -g 30 -hls_time 4 -hls_playlist_type vod -hls_segment_filename 'output_%03d.ts' -sn -f hls kimi.m3u8

Extrac image from bif file

ffmpeg -i archivo.bif imagen-%04d.png

Create bif file from video

ffmpeg -i video.mp4 -threads 16 -vf "fps=8/60,scale=320:179" -vsync 0 -f image2 imagen-%04d.jpg

⚖ License

This project is released under Apache 2.0 License