Convert Figma logo to code with AI

popcorn-official logopopcorn-desktop

Popcorn Time is a multi-platform, free software BitTorrent client that includes an integrated media player ( Windows / Mac / Linux ) A Butter-Project Fork

9,383
620
9,383
28

Top Related Projects

18,228

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.

33,238

The Free Software Media System

84,197

Collection of publicly available IPTV channels from all over the world

8,013

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:

  1. Visit the official GitHub repository: https://github.com/popcorn-official/popcorn-desktop
  2. Download the appropriate installer for your operating system from the releases page
  3. Install the application on your computer
  4. Launch Popcorn Time and browse the available content
  5. 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

18,228

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.

33,238

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.

84,197

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.

8,013

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README


Popcorn Time
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:

macOS:

Download and install:

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:

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):

  1. 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
  2. Create popcorn-time folder in /opt/:
    sudo mkdir /opt/popcorn-time
  3. 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
  4. Extract the zip in /opt/popcorn-time:
    sudo unzip Popcorn-Time-0.5.1-linux64.zip -d /opt/popcorn-time
  5. Create symlink of Popcorn-Time in /usr/bin:
    sudo ln -sf /opt/popcorn-time/Popcorn-Time /usr/bin/popcorn-time
  6. Create .desktop file (so the launcher):
    sudo nano /usr/share/applications/popcorntime.desktop
  7. 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:

  1. yarn start

If you encounter trouble with the above method, you can try:

  1. yarn config set yarn-offline-mirror ./node_modules/
  2. yarn install --ignore-engines
  3. yarn build
  4. 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:

  1. yarn config set yarn-offline-mirror ./node_modules/
  2. yarn install --ignore-engines
  3. 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.

Screenshots

Popcorn Time

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.