popcorn-desktop
Popcorn Time is a multi-platform, free software BitTorrent client that includes an integrated media player ( Windows / Mac / Linux ) A Butter-Project Fork
Top Related Projects
Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS, tvOS and Windows.
The Free Software Media System
Collection of publicly available IPTV channels from all over the world
Mopidy is an extensible music server written in Python
Quick Overview
Popcorn Time is an open-source, multi-platform BitTorrent client that includes an integrated media player. It allows users to stream video content from torrents directly in the application, providing a Netflix-like experience for torrent-based content. The project aims to make it easy for users to watch movies and TV shows without having to download them separately.
Pros
- User-friendly interface with a sleek, modern design
- Cross-platform support (Windows, macOS, Linux)
- Integrated media player for seamless streaming
- Large library of content available through torrent networks
Cons
- Legal concerns due to potential copyright infringement
- Reliance on peer-to-peer networks can lead to inconsistent streaming quality
- Limited content availability in some regions
- Potential security risks associated with torrent usage
Getting Started
To get started with Popcorn Time:
- Visit the official GitHub repository: https://github.com/popcorn-official/popcorn-desktop
- Download the appropriate installer for your operating system from the releases page
- Install the application on your computer
- Launch Popcorn Time and browse the available content
- Select a movie or TV show to start streaming
Note: Be aware of the legal implications of using Popcorn Time in your region, as streaming copyrighted content may be illegal in some jurisdictions.
Competitor Comparisons
Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS, tvOS and Windows.
Pros of XBMC
- More comprehensive media center solution with support for various content types
- Highly customizable with a wide range of add-ons and skins
- Active development with regular updates and improvements
Cons of XBMC
- Steeper learning curve and more complex setup process
- Requires more system resources due to its extensive feature set
Code Comparison
XBMC (C++):
bool CVideoPlayer::OpenDemuxStream()
{
if (m_pDemuxer)
{
m_pDemuxer->Open(m_item.GetDemuxResource());
return true;
}
return false;
}
Popcorn Desktop (JavaScript):
App.vent.on('stream:start', (streamModel) => {
const torrentStart = new Backbone.Model({
torrent: streamModel.get('torrent'),
backdrop: streamModel.get('backdrop'),
subtitle: streamModel.get('subtitle'),
defaultSubtitle: streamModel.get('defaultSubtitle'),
title: streamModel.get('title'),
quality: streamModel.get('quality'),
type: streamModel.get('type'),
device: streamModel.get('device')
});
App.vent.trigger('stream:ready', torrentStart);
});
The code snippets showcase different approaches: XBMC uses C++ for low-level media handling, while Popcorn Desktop employs JavaScript for event-driven streaming management.
The Free Software Media System
Pros of Jellyfin
- Open-source media server with a focus on privacy and user control
- Supports a wide range of media formats and devices
- Active development with regular updates and community contributions
Cons of Jellyfin
- Requires more setup and configuration compared to Popcorn Desktop
- May have a steeper learning curve for non-technical users
- Doesn't offer built-in torrent streaming functionality
Code Comparison
Jellyfin (C#):
public class MediaBrowser : IDisposable
{
private readonly ILogger<MediaBrowser> _logger;
private readonly IFileSystem _fileSystem;
// ...
}
Popcorn Desktop (JavaScript):
const WebTorrent = require('webtorrent')
const client = new WebTorrent()
client.add(torrentId, (torrent) => {
// ...
})
The code snippets highlight the different approaches:
- Jellyfin uses C# for server-side logic, focusing on media management and streaming
- Popcorn Desktop utilizes JavaScript with WebTorrent for peer-to-peer streaming
Jellyfin is a comprehensive media server solution, while Popcorn Desktop is geared towards instant streaming of torrents. Jellyfin offers more control and customization but requires more setup, whereas Popcorn Desktop provides a simpler, more immediate streaming experience at the cost of legal concerns and limited media management features.
Collection of publicly available IPTV channels from all over the world
Pros of IPTV
- Larger community and more active development (15.5k stars vs 8.1k for Popcorn Desktop)
- Provides access to a vast collection of live TV channels from around the world
- Regularly updated playlist with thousands of channels
Cons of IPTV
- Requires external video players for optimal viewing experience
- Less user-friendly interface compared to Popcorn Desktop's built-in player
- May have legal concerns depending on the user's location and channel sources
Code Comparison
IPTV (playlist format):
#EXTINF:-1 tvg-id="Example.tv" tvg-logo="http://example.com/logo.png" group-title="News",Example TV
http://example.com/stream.m3u8
Popcorn Desktop (JavaScript):
App.Model.Movie = Backbone.Model.extend({
idAttribute: 'imdb_id',
initialize: function () {
this.set('health', false);
}
});
IPTV focuses on providing a comprehensive list of live TV streams, while Popcorn Desktop is a full-featured desktop application for streaming movies and TV shows. IPTV's code is primarily an M3U playlist, whereas Popcorn Desktop uses JavaScript for its application logic. The choice between the two depends on the user's preference for live TV versus on-demand content and their desired level of integration with a custom player.
Mopidy is an extensible music server written in Python
Pros of Mopidy
- Extensible architecture with plugin support
- Supports multiple music sources (local files, streaming services)
- Active development and community
Cons of Mopidy
- Requires more technical setup and configuration
- Limited to audio playback, no video support
Code Comparison
Mopidy (Python):
from mopidy import core
class MyFrontend(pykka.ThreadingActor, core.CoreListener):
def track_playback_started(self, tl_track):
print(f"Now playing: {tl_track.track.name}")
Popcorn Desktop (JavaScript):
App.vent.on('stream:started', function() {
console.log('Streaming started');
App.vent.trigger('stream:ready', streamInfo);
});
Summary
Mopidy is a flexible, extensible music server with support for various audio sources, while Popcorn Desktop focuses on streaming video content. Mopidy requires more technical knowledge to set up but offers greater customization through its plugin system. Popcorn Desktop provides a more user-friendly interface for streaming movies and TV shows, but lacks the audio-focused features of Mopidy. The code examples highlight the different approaches: Mopidy uses Python and focuses on audio track events, while Popcorn Desktop uses JavaScript and deals with video streaming events.
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
Popcorn Time
A multi-platform, free software BitTorrent client that includes an integrated media player.
Visit the project's website at popcorn-time.site
Install
Windows:
Download and install:
- Latest release: check popcorn-time.site or the repo's releases page
- Or latest dev build (for testers): check the repo's actions page
macOS:
Download and install:
- Latest release: check popcorn-time.site or the repo's releases page
- Or latest dev build (for testers): check the repo's actions page
Easily install Popcorn Time via Homebrew (Cask):
brew tap popcorn-official/popcorn-desktop https://github.com/popcorn-official/popcorn-desktop.git
#export HOMEBREW_POPCORN_TIME_BUILD=false
brew install --cask popcorn-time #--no-quarantine
Also, if you keep a Brewfile, you can add something like this:
repo = "popcorn-official/popcorn-desktop"
tap repo, "https://github.com/#{repo}.git"
#ENV["HOMEBREW_POPCORN_TIME_BUILD"] = "false"
cask "popcorn-time" #, args: { "no-quarantine": true }
Apple Silicon:
If you have Apple Silicon (M-series chips), you need to use the arm64
release. Apple Silicon apps are required to be signed and notarised with an Apple developer account. So it is necessary to manually remove the quarantine flag:
xattr -c "/Applications/Popcorn-Time.app/"
Linux - Debian/Ubuntu based distros:
Download and install:
- Latest release: check popcorn-time.site or the repo's releases page
- Or latest dev build (for testers): check the repo's actions page
Via .deb package:
Firstly, be aware in some cases, missings dependencies packages (libatomic1, libgconf-2-4, libcanberra-gtk-module) were reported to be required for the app to works.
If the app don't start for you too, in this case, try sudo apt update && sudo apt install libatomic1 libgconf-2-4 libcanberra-gtk-module
to be sure your system have the required dependencies.
Via archive and command line (tested on ubuntu 18.04 and 20.04):
- Download Popcorn Time archive from the github repo for the latest release :
wget -c https://github.com/popcorn-official/popcorn-desktop/releases/download/v0.5.1/Popcorn-Time-0.5.1-linux64.zip
- Create popcorn-time folder in /opt/:
sudo mkdir /opt/popcorn-time
- Install unzip && dependencies (they should not be always required but some users needed them to make Popcorn Time working):
sudo apt update && sudo apt install unzip libcanberra-gtk-module libgconf-2-4 libatomic1
- Extract the zip in /opt/popcorn-time:
sudo unzip Popcorn-Time-0.5.1-linux64.zip -d /opt/popcorn-time
- Create symlink of Popcorn-Time in /usr/bin:
sudo ln -sf /opt/popcorn-time/Popcorn-Time /usr/bin/popcorn-time
- Create .desktop file (so the launcher):
sudo nano /usr/share/applications/popcorntime.desktop
- and copy paste the following text in the editor and save
[Desktop Entry]
Version = 1.0
Type = Application
Terminal = false
Name = Popcorn Time
Exec = /usr/bin/popcorn-time
Icon = /opt/popcorn-time/src/app/images/icon.png
Categories = Application;
Getting Started
If you're comfortable getting up and running from a git clone
, this method is for you.
The development branch contains the latest changes.
The master branch contains the latest release.
Quickstart:
yarn start
If you encounter trouble with the above method, you can try:
yarn config set yarn-offline-mirror ./node_modules/
yarn install --ignore-engines
yarn build
yarn start
Optionally, you may simply run ./make_popcorn.sh
if you are on a linux or mac based operating system.
Full instructions & troubleshooting tips can be found in the Contributing Guide.
Building redistributable packages/installers:
yarn config set yarn-offline-mirror ./node_modules/
yarn install --ignore-engines
yarn dist --platforms=<platform>
<platform>
can be one or more of the folowing values (separated by a comma ,
):
win64
,win32
,linux64
,linux32
,osx64
,all
Redistributable packages are saved into build/
subfolder.
Getting Involved
Want to report a bug, request a feature, contribute to or translate Popcorn Time?
Check out our in-depth guide to Contributing to Popcorn Time. We need all the help we can get!
You can also join our community to keep up-to-date and meet other developers.
Community
Keep track of Popcorn Time development and community activity.
- Read and contribute to the official Popcorn Time Wiki.
- Join in discussions on r/PopCornTimeApp.
Screenshots
Versioning
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, Popcorn Time will be maintained according to the Semantic Versioning guidelines as much as possible.
Releases will be numbered with the following format:
<major>.<minor>.<patch>-<build>
Constructed with the following guidelines:
- A new major release indicates a large change where backward compatibility is broken.
- A new minor release indicates a normal change that maintains backward compatibility.
- A new patch release indicates a bugfix or small change which does not affect compatibility.
- A new build release indicates this is a pre-release of the version.
If you distribute a copy or make a fork of the project, you have to credit this project as the source.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Copyright © 2024 Popcorn Time Project - Released under the GPL v3 license.
Top Related Projects
Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS, tvOS and Windows.
The Free Software Media System
Collection of publicly available IPTV channels from all over the world
Mopidy is an extensible music server written in Python
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