VueTube
A simple FOSS video streaming client aimed to recreate ALL features from their respective apps (and more)
Top Related Projects
An alternative frontend for YouTube, for Android.
A fork of NewPipe with SponsorBlock functionality.
SmartTube - an advanced player for set-top boxes and tvs running Android OS
Privacy oriented video player for iOS, tvOS and macOS
An Open Source YouTube app for privacy
Quick Overview
VueTube is an open-source YouTube client application built using Vue.js. It aims to provide a customizable and privacy-focused alternative to the official YouTube app, offering a similar user experience with additional features and flexibility.
Pros
- Privacy-focused: Offers enhanced privacy features compared to the official YouTube app
- Customizable: Allows users to personalize their viewing experience
- Open-source: Encourages community contributions and transparency
- Cross-platform: Supports multiple platforms, including Android, iOS, and web browsers
Cons
- Potential legal issues: May face challenges from YouTube/Google regarding API usage
- Limited features: Some advanced YouTube features may not be available or fully implemented
- Dependency on YouTube's API: Changes to YouTube's API could affect functionality
- Smaller user base: May have fewer resources and slower development compared to the official app
Getting Started
To get started with VueTube, follow these steps:
-
Clone the repository:
git clone https://github.com/VueTubeApp/VueTube.git
-
Install dependencies:
cd VueTube npm install
-
Run the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:3000
to view the app.
For more detailed instructions and platform-specific setup, refer to the project's README and documentation on GitHub.
Competitor Comparisons
An alternative frontend for YouTube, for Android.
Pros of LibreTube
- More mature project with a larger community and more frequent updates
- Offers additional features like SponsorBlock integration and video downloading
- Better performance and stability in real-world usage
Cons of LibreTube
- Less customizable user interface compared to VueTube
- Lacks some advanced features like picture-in-picture mode
- Limited theming options
Code Comparison
LibreTube (Kotlin):
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
_binding = FragmentPlayerBinding.inflate(inflater, container, false)
return binding.root
}
VueTube (Vue.js):
<template>
<div class="player-container">
<video ref="videoPlayer" @timeupdate="onTimeUpdate" />
</div>
</template>
Both projects use different technologies, making direct code comparison challenging. LibreTube is built with Kotlin for Android, while VueTube uses Vue.js for a cross-platform approach. LibreTube's code tends to be more focused on native Android development, while VueTube's code is more web-oriented and potentially more flexible for multiple platforms.
A fork of NewPipe with SponsorBlock functionality.
Pros of NewPipe
- More mature project with a longer development history
- Supports a wider range of video platforms beyond YouTube
- Offers background playback and audio-only mode
Cons of NewPipe
- Limited to Android platform
- Less modern user interface compared to VueTube
- Lacks some advanced features like SponsorBlock integration
Code Comparison
NewPipe (Java):
@Override
protected void onResume() {
super.onResume();
if (wasSearchFocused && searchEditText != null) {
searchEditText.requestFocus();
}
}
VueTube (Vue.js):
<template>
<div class="search-bar">
<input v-model="searchQuery" @focus="onFocus" @blur="onBlur" />
</div>
</template>
<script>
export default {
methods: {
onFocus() {
this.wasSearchFocused = true;
},
onBlur() {
this.wasSearchFocused = false;
}
}
}
</script>
This comparison shows the different approaches to handling search focus in both applications. NewPipe uses Java and Android-specific lifecycle methods, while VueTube employs Vue.js components and reactive data binding.
SmartTube - an advanced player for set-top boxes and tvs running Android OS
Pros of SmartTube
- More mature project with a larger user base and longer development history
- Specifically designed for Android TV, offering a tailored experience for large screens
- Includes advanced features like SponsorBlock integration and custom video speed controls
Cons of SmartTube
- Limited to Android TV platform, not available for mobile devices or other operating systems
- Closed-source development model, which may limit community contributions and transparency
- Potential legal concerns due to its nature as a third-party YouTube client
Code Comparison
While a direct code comparison is not possible due to SmartTube being closed-source, we can compare some aspects of VueTube's code structure:
VueTube (Vue.js component example):
<template>
<div class="video-player">
<!-- Video player implementation -->
</div>
</template>
<script>
export default {
// Component logic
}
</script>
SmartTube (hypothetical Java code based on Android TV app structure):
public class VideoPlayerActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_player);
// Video player implementation
}
}
This comparison highlights the different technologies and platforms used by each project, with VueTube utilizing a web-based approach and SmartTube likely using native Android development.
Privacy oriented video player for iOS, tvOS and macOS
Pros of Yattee
- Written in Swift, potentially offering better performance on Apple devices
- Supports multiple backends (YouTube, Invidious, Piped)
- More mature project with a larger number of releases
Cons of Yattee
- Limited to Apple platforms (iOS, macOS, tvOS)
- Smaller community and fewer contributors
- Less frequent updates compared to VueTube
Code Comparison
VueTube (Vue.js):
<template>
<div class="video-player">
<video ref="videoPlayer" @timeupdate="onTimeUpdate">
<source :src="videoUrl" type="video/mp4">
</video>
</div>
</template>
Yattee (Swift):
struct VideoPlayerView: View {
@StateObject var player: PlayerModel
var body: some View {
VideoPlayer(player: player.avPlayer)
.onReceive(player.$currentTime) { _ in
// Handle time update
}
}
}
Both projects aim to provide alternative YouTube clients, but they differ in their approach and target platforms. VueTube is a cross-platform solution built with Vue.js, while Yattee focuses on Apple ecosystems using Swift. VueTube may have broader appeal due to its multi-platform nature, but Yattee could offer better integration and performance on Apple devices. The code snippets illustrate the different languages and frameworks used in each project.
An Open Source YouTube app for privacy
Pros of FreeTube
- More mature project with a larger user base and longer development history
- Offers a wider range of features, including playlist management and channel subscriptions
- Available on multiple platforms (Windows, macOS, Linux)
Cons of FreeTube
- Larger application size due to being built with Electron
- May have higher resource usage compared to VueTube
- Less focus on mobile-friendly design
Code Comparison
FreeTube (JavaScript):
async function getVideoData(videoId) {
try {
const data = await ytdl.getInfo(videoId)
return data
} catch (err) {
console.error(err)
return null
}
}
VueTube (TypeScript):
async function fetchVideoInfo(videoId: string): Promise<VideoInfo | null> {
try {
const response = await api.get(`/videos/${videoId}`)
return response.data
} catch (error) {
console.error('Error fetching video info:', error)
return null
}
}
Both projects aim to provide a privacy-focused YouTube experience, but FreeTube is more established and feature-rich, while VueTube is newer and focuses on mobile platforms. FreeTube uses Electron for cross-platform desktop support, while VueTube is built with Vue.js and targets mobile devices primarily.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Show Readme credits
VueTube Logo by @afnzmn
English Readme contributors: @404-Program-not-found
, @Frontesque, @gayolGate
, @ThatOneCalculator, @afnzmn
, @tired6488, @DARKDRAGON532
, @PickleNik and @Zyborg777
A simple and open source video streaming client aimed to recreate ALL the features from their respective apps (and more!)
Pronounced View Tube (/ËvjuËËtjuËb/
)
Read this page in other languages: English, Español, ç®ä½ä¸æ, ç¹é«ä¸æ, æ¥æ¬èª, ×¢Ö´×רִ×ת, Nederlands, தமிழà¯, Bahasa Melayu, ÐакедонÑки, Français, Português Brasileiro, Bahasa Indonesia, Polski, ÐÑлгаÑÑки, Italiano, Magyar, íêµì´, Tiếng Viá»t, RomânÄ, УкÑаÑнÑÑка, Türkçe, Ð ÑÑÑкий
Features
- ð¨ Themes: Light, dark, OLED and all the colors of the rainbow! Set the accent and background color according to your preferences.
- ðï¸ Customizable UI: Customize buttons, corners and disable parts of the UI that you don't use to get an optimal experience.
- â¬ï¸ Auto updates: Be notified when an update is available, download through the app and downgrade if you don't like it!
- ðï¸ Tracking protection: No telemetry data is sent from your device by default and we don't use external APIs. Privacy is neccesary!
- ðº Custom video player: There is a player integrated in the application with everything you need to be happy, such as 16x speed.
- ð Translations: App is available in more than 25 languages! Default language is determined according to your device configuration.
- ð Return YouTube Dislike - Enable dislike counters in videos again. More info
- ð° SponsorBlock - Skip automatically sponsors and annoying segments in videos. More info
Install
To install the app, please visit vuetube.app/install or check below all versions available:
ð±ï¸ Click to display versions
Android
<a href=https://nightly.link/VueTubeApp/VueTube/workflows/ci/main/android.zip><img id="im" width="200" src=./resources/getunstable.png> | <a href=https://github.com/VueTubeApp/VueTube/releases/tag/0.5><img id="im" width="200" src=./resources/getcanary.png> | <a href=https://vuetube.app/install><img id="im" width="200" src=./resources/getstable.png> |
---|---|---|
Pretty unstable, but you get early access to new features. | Less bugs than unstable while having more features than stable. | Not available yet. |
iOS
<a href=https://nightly.link/VueTubeApp/VueTube/workflows/ci/main/iOS.zip><img id="im" width="200" src=./resources/getunstable.png> | <a href=https://github.com/VueTubeApp/VueTube/releases/tag/0.3><img id="im" width="200" src=./resources/getcanary.png> | <a href=https://vuetube.app/install><img id="im" width="200" src=./resources/getstable.png> |
---|---|---|
Pretty unstable, but you get early access to new features. | Less bugs than unstable while having more features than stable. | Not available yet. |
(Apple does not officially support sideloading, i.e. the installation of applications with just the file without them being uploaded to the company's official shop. It is necessary to use advanced methods to install VueTube on iPhone / iPad devices)
Plans
- ð Advanced search: Sort results by date, duration, likes or any other factor.
- ðï¸ Local watch history: Get your last viewed videos without logging in.
- âï¸ YouTube Shorts: Small vertical videos that last anywhere from 15 to 60 seconds.
- ð§ Signing in with your Google account: Login to have a full experience by voting and commenting on videos and subscribing to channels.
- ð¼ï¸ Picture-in-Picture mode (PiP): Allows you to watch videos in a floating window when using another app.
- 𧩠Plugins: Install third party plugins made by community with useful features!
- And more!
You can suggest your own feature by opening a feature request issue in this repository.
Screenshots
View them on our website or click below to display them.
ð±ï¸ Click to display screenshots
Community
We use several different platforms to connect with our community. You can actively participate in the development of VueTube or simply keep up to date with all the news joining these groups:
- Discord server (https://vuetube.app/discord)
- Telegram group (https://t.me/vuetube)
- Reddit page (https://www.reddit.com/r/vuetube)
Progress
ð±ï¸ Click to display progress
General | Player | Extractor |
---|---|---|
ð¢ Comments (100%) | ð¢ Play / Pause (100%) | ð¢ Search Autocomplete (100%) |
ð¢ Description (100%) | ð¢ Tap to show / hide controls (100%) | ð¢ Home page (100%) |
ð¢ Home Page (100%) | ð Seekbar / Scrubber (80%) | ð¢ Search (100%) |
ð¢ RYD Integration (100%) | ð Fullscreen (80%) | ð Video Information (60%) |
ð¢ Themes (100%) | ð Resolution Picker (50%) | ð´ Channels (0%) |
ð¢ Watch Page (100%) | ð´ Miniplayer (0%) | ð´ Comments (0%) |
ð Sponsorblock Integration (95%) | ð´ Background Play (0%) | ð´ Live Chat (0%) |
ð Auto Update (50%) | ð´ Picture in Picture (0%) | ð´ Trending content (0%) |
ð Channel Page (50%) | ð´ Captions (0%) | ð´ Interactions (0%) |
ð Community Posts (10%) | ð´ Cards (0%) | ð´ Playlists (0%) |
ð Customizable Shorts UI (10%) | ð´ Notifications (0%) | |
ð Customizable YT Music UI (10%) | ð´ Login (0%) | |
ð Customizable UI (30%) | ||
ð Libraries Page (10%) | ||
ð Replies (50%) | ||
ð Third Party Plugins (40%) | ||
ð VueTube Player (See progress to the right) | ||
ð VueTube Extractor (See progress to the right) | ||
ð´ Local Watch History (0%) | ||
ð´ Subscriptions Page (0%) | ||
ð´ Other Platform Support (0%) |
Technologies used
Why are we doing this?
VueTube was made with the aim of providing to the Internet a free, open source and complete cross-platform alternative to Big Tech, with highly customizable options and login available. The project was growing, attracting thousands of users and contributors all around the world. You can join us and contribute to this project in any kind of way...
Want to contribute?
Thank you for being interested on contributing! Please read our website on how to do so: vuetube.app/contributing.
If you want to translate the app, click here and read the instructions. If GitHub is hard or uncomfortable to you, you can also send the fields translated in a text file on our Discord and we will implement them. Don't worry!
GitHub contributors
Dashboard made automatically with contrib.rocks.
Acknowledgements
- Emojis by the Twemoji team, Licensed under CC-BY 4.0.
- VueTube Logo by @afnzmn.
- Public YouTube dislike data provided by Return Youtube Dislike.
- Ajay & Community for providing the Sponsorblock API, Licensed under CC BY-NC-SA 4.0.
Donate
VueTube is and always will be free and open source, but you can support our devs with a donation that will help to maintain the project and develop new features. Every kind of help is welcome! These are the donating options available:
Donate on Ko-Fi.com (Official)
Donate to PickleNik on GitHub (Maintainer)
Disclaimer
The VueTube project and its contents are not affiliated with, funded, authorized, endorsed by, or in any way associated with YouTube, Google LLC or any of its affiliates and subsidiaries. The official YouTube website can be found at www.youtube.com.
Any trademark, service mark, trade name, or other intellectual property rights used in the VueTube project are owned by the respective owners.
Other VueTube repos
ð±ï¸ Click to display repos
VueTube Extractor is a library designed to extract data from streaming services, designed for use in VueTube App.
VueTube Translator is a tool for translating fields of GitHub files like JSON or JS and export the result with the correct structure. It was created to help VueTube translators, but it can be used for any other purpose.
VueTube HTTP is a plugin for native HTTP requests, file download/uploads, and cookie management. It's a fork of the original HTTP project from Capacitor Community, with additions by the VueTube Team.
Top Related Projects
An alternative frontend for YouTube, for Android.
A fork of NewPipe with SponsorBlock functionality.
SmartTube - an advanced player for set-top boxes and tvs running Android OS
Privacy oriented video player for iOS, tvOS and macOS
An Open Source YouTube app for privacy
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot