Notes on getting the most out of Screenly OSE for Raspberry Pi

For those that are not familiar, Screenly is a Digital Signage System for the Pi. There is a open source edition of it (OSE) that you can just download and install on your own SD card. I’ve been messing around with it for the past few days and it’s surprisingly simple and powerful. Below are some notes on how to fix various annoyances:

  • ON 1080p SCREENS ONLY!! Normally when you use the web browser portion of Screenly you’ll notice that it does not fill the screen (there is a black border around the screen). The video’s play fine though. For some reason on 1920×1080 screen X windows does not detect the right resolution. To force this you need to modify/uncomment the following lines in config.txt file on the dos partition of the SD card (normally mounted under /boot when the pi is running screenly).
  • mkv files with mp4 essence seem to work fine. I added a new video asset and uploaded the file Tears of steel (HD 720p version) from blender foundation which seems to work once you turn it on. BTW, it takes a long time after the upload progress scroll bar reaches the end to actually get a Asset entry on the web interface. You need to be patient.
  • After playing around with http streaming of mp4 files (i.e: you create a URL asset and use the mp4 URL in the asset URL field and set the asset type to video), I thought about youtube. I’d come across a site in the past that would give you the mp4 direct download URL of any file hosted on youtube (if the mp4 file exists that is). So I dug around a bit and indeed it works. Here is how you go about it:
    • Go and find the youtube video you’re interested in using your browser.Screen Shot 2013-11-21 at 4.45.08 PM
    • Once you get to the video pause playback and change the URL of your browser and substitute ssyoutube instead of youtube (ie: if the video URL is change it by adding ss in front so the URL reads and load that page. Don’t worry about the “Get me out of here page that sometimes comes up” it’s just that if you’re logged into youtube is will use https instead of http. You can take the ‘s’ out if you like. Screen Shot 2013-11-21 at 4.47.54 PM
    • Now on this page ( right click on the mp4 720p (or 1080p if it exists) link and copy the link. Screen Shot 2013-11-21 at 4.49.20 PM
    • Back in the Screenly interface create a new asset and paste the URL you just copied into the Asset URL field and set the Asset Type to Video. Activate the asset and enjoy. Screen Shot 2013-11-21 at 4.52.33 PM
  • To make sure you’re up to date with all the fixes you can ssh to the pi login as pi user and run the “” script in ~pi/screenly/misc folder.
  • The screenly guys have also added the ability to run stunnel on the device and create a tunnel between port 453 on the pi and port 8080 effectively giving you https secured connection. To turn this functionality on you need to run the “” script in ~pi/screenly/misc folder. Don’t worry about the last error in this script. It’s just missing a closing quote mark on a print line.
  • You’ve noticed that there is no mechanism to password protect the Schedule overview page where the carousel is running. It’s a feature that’s on their radar and will land at some point. Until then I needed to somehow restrict access to this page so students/others couldn’t get in there and mess stuff up. So I decided to use the ufw (User Friendly Firewall) command to modify the iptables so that the webserver would only respond to request from a certain subnet. First you need to become root by “sudo -i” from the pi account. Then you can use the following commands to check the rules, delete the unnecessary ones and add the new one to restrict access to the web server. You could do this for ssh port 22 as well if you wanted:
    root@screenly:~# ufw status
    Status: active
    To                         Action      From
    --                         ------      ----
    22                         ALLOW       Anywhere
    8080/tcp                   ALLOW       Anywhere
    root@screenly:~# ufw delete allow 8080/tcp
    root@screenly:~# ufw allow from xx.yy.zz.0/24
    root@screenly:~# ufw status
    Status: active
    To                         Action      From
    --                         ------      ----
    22                         ALLOW       Anywhere
    Anywhere                   ALLOW       xx.yy.zz.0/24
  • More to come……

5 responses to “Notes on getting the most out of Screenly OSE for Raspberry Pi”

  1. Is there any possibility of encrypting the content on the Raspberry Pi SD card?
    The real threat is someone stealing the SD Card from a display placed outdoors and then misusing it.

  2. Hi Jai,

    You could probably use a encrypted file system on the SD card……the trick will be how do you supply the key while the Pi is somewhere attached to a TV. There is always super glue :-).

  3. Hey Nils,

    I assume the URL you posted is from page (i.e.: you right clicked on one of the links and copied it). Did you try to paste the link back into your browser in a new tab. Did the video play in the new tab? Keep in mind that the link only stays up for about a day or so, you might need to regenerate it. quickest way to check is to try opening the link in a new browser tab, if it doesn’t work, it’s probably expired.


  4. I am a student in Master and my final project studies is dynamic display solution for raspberry screenly and that I should do:
    * authentication
    * Management of broadcasts on Tvs
    * Put out the raspberry from the page of screenly

Leave a Reply