dontpanic

What is dontpanic?

Dontpanic is a free (as in "freedom") python application to look for any movie or serie and watch them in "streaming". It looks like popcorntime or torrent time, but doesn't depend of a centralized api.

To find the latest version number of dontpanic, see here

Download

You can download dontpanic here : dontpanic.tar.gz

Screenshots

dontpanic1.png dontpanic2.png dontpanic3.png dontpanic5.png dontpanic7.png dontpanic6.png

Usage

You can run dontpanic for a single user with the command
dontpanic

or

python3 dontpanic.py
It will open your browser to the dontpanic page.

Note: You can automatically stream and watch a magnet link if you pass it as a parameter :

dontpanic magnet:xt=urn:btih:.....

Deploy on a server

You can run dontpanic on your server and make it available for world. To do so, you have to use an adapter like cherrypy.

./dontpanic -adapter administrator admin_password

or

python3 dontpanic-server.py -adapter administrator admin_password

Change '-adapter' to the one you want to use, i.e. '-cherrypy'. Below, you can find some adapters (see here for a full list):

  • '-cherrypy' is multi-threaded (recommended). Install python-cherrypy3 to use it.
  • '-paste' is multi-threaded. Instal python-paste to use it.
  • '-tornado' : install python-tornado
  • ...

You can use '-auto' to let dontpanic (bottle) choose the first available adapter.

Use SSL (https):

To do it correctly, you might want to read your adapter documentation. An easy way is to use apache or nginx as a reverse proxy. For cherrypy, it's documented here. Below, find a working nginx configuration using ssl with cherrypy :

 upstream apps {
    server 127.0.0.1:8080;
}

gzip_http_version 1.0;
gzip_proxied      any;
gzip_min_length   500;
gzip_disable      "MSIE [1-6]\.";
gzip_types        text/plain text/xml text/css
                text/javascript
                application/javascript;


server {
    listen 80;
    server_name localhost;
    return 301 https://$server_name$request_uri;  # enforce https
}

server {
    listen 443 ssl;
    server_name  localhost;

    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

location / {
    proxy_pass         http://apps;
    proxy_redirect     off;
    proxy_set_header   Host $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Host $server_name;
}
}

Of course, replace 'localhost', '8080' and ssl variables to fit your configuration.

In this case, dontpanic was started with :

python dontpanic-server.py -cherrypy admin password 8080

Warning

If you deploy dontpanic on a server, make sure the database is not readable by world. The database is by default in ~/.dontpanic/databaz.db. Follow bottle instructions.

Remember, the admin page is /_admin

FAQ

My download doesn't start

Be sure to choose a file with a lot of peers.

Add '-f' to sign the package.

Python2 or python3?

Both are supported for now, but python3 will be more efficient thanks to async requests.