Git Product home page Git Product logo

thirdtube-morelang's Introduction

ThirdTube

A work-in-progress homebrew YouTube client for the 3DS
GBAtemp Thread
Discord Server

Instability Warning

As this app is still in the alpha stage, you may and will encounter crashes and other bugs.
If you find one of those, it would be helpful to open an issue on this GitHub repository.

Description

It utilizes some undocumented YouTube APIs to get the raw video url and plays the stream using the decoder taken from Video player for 3DS by Core-2-Extreme.
It does not run any javascripts or render html/css, so it's significantly faster than YouTube on the browser.
The name is derived from the fact that it is the third YouTube client on 3DS, following the official YouTube app (discontinued) and the new 3DS browser.

QR code

You can use the qr code below to download & install .cia from 3ds(Thanks @Minionguyjpro)

Screenshots


Features

  • Video Playback up to 360p
    480p might be possible and could be considered in the future development
  • Livestreams and premiere videos support
  • Searching
  • Video suggestion
  • Comments
  • Captions
  • Local watch history and channel subscription
  • No ads
    It's more like "Ads are not implemented" rather than "We have ad-blocking functionality".
    Of course, I will never "implement" it :)

Controls

  • B button : go back to the previous scene
  • C-pad up/down : scroll
  • L/R : switch between tabs
  • Select + Start : blackout the bottom screen
  • In video player
    • Arrow left/right : 10 s seek

Below are for debug purposes

  • Select + X : toggle debug log
  • Select + Y : toggle memory usage monitor
  • Select + R + A : toggle FPS monitor

Requirments

A 3DS (including 2DS) with Luma3DS installed and DSP1 run.
I haven't tested the minimum system version, but at least 8.1.0-0 is needed.

FAQs

  • Does it make sense?
    The worst question in the console homebrew scene. Isn't it just exciting to see your favorite videos playing on a 3DS?

Building

You need:

  • devkitPro with devkitARM r58
  • 3ds-zlib and 3ds-mbedtls installed in portlibs of devkitPro
    You can install it by opening devkitPro msys2 and typing pacman -S [package name].

Type make (if you are on Linux) or make all_win (if you are on Windows) to build it.

  • Building of dependency libraries(optional)
    For ffmpeg, libbrotli, and libcurl, follow built.txt in each directory
    For libctru, just type make in library\libctru\source\libctru

License

You can use the code under the terms of the GNU General Public License GPL v3 or under the terms of any later revisions of the GPL. Refer to the provided LICENSE file for further information.

Third-party licenses

by the FFmpeg developers under GNU Lesser General Public License (LGPL) version 2.1
The modified source code can be found in https://github.com/windows-server-2003/FFmpeg/tree/3ds.

by Tencent and Milo Yip under MIT License

by devkitPro under zlib License

by Daniel Stenberg and many contributors under the curl License

by the Brotli Authors under MIT license

by Sean Barrett under MIT License and Public Domain

Credits

  • Core 2 Extreme
    For Video player for 3DS which this app is based on.
    Needless to say, the video playback functionality is essential for this app, and it would not have been possible to develop this software without him spending his time optimizing the code sometimes even with assembly and looking into HW decoding on the new 3DS.
  • dixy52-beep
    For in-app textures
  • PokéTube
    For the icon and the banner
  • The contributors of youtube-dl
    As a reference about YouTube webpage parsing. It was especially helpful for the deobfuscation of ciphered signatures.
  • The contributors of pytube
    As a reference about YouTube webpage parsing. Thanks to its strict dependency-free policy, I was able to port some of the code without difficulty.

thirdtube-morelang's People

Contributors

windows-server-2003 avatar core-2-extreme avatar minionguyjpro avatar itsfrocat avatar take0x avatar

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.