• Stars
    star
    419
  • Rank 99,471 (Top 3 %)
  • Language
    Haskell
  • License
    BSD 3-Clause "New...
  • Created over 6 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ“บ A free and simple to use video player made with Haskell.

Movie Monad

Is Movie Monad the free video player I've been looking for?

Yes. โœ”๏ธ

Movie Monad is a free and simple to use video player made with Haskell. Originally it was a proof of concept to add video playback to Gifcurry (another great appโ€”check it out). Nowadays it's a lightweight yet mighty media player used all over the world ๐ŸŒ everyday.

Movie Monad is cross platform so you'll never have to watch without it. Stream videos from the web or play the files stored on your computer. Play, pause, seek, repeat, resize, expand, and turn it upโ€”Movie Monad gets out of the way so you can watch the videos you love. ๐Ÿ’“

So try out Movie Monadโ€”it'll make your life simpler. ๐Ÿ˜Ž

What does Movie Monad look like? ๐Ÿ‘€

Movie Monad

What can I do with Movie Monad? ๐Ÿค”

  • You can play video files from your hard drive ๐Ÿ’ป or stream videos from the web. ๐Ÿ•ธ๏ธ
    • To play web videos, click the file open button, paste the URL into the text box, and click open.
    • Movie Monad can handle file://, https://, and http://.
  • You can play and pause. โฏ๏ธ
  • You can seek/scrub โช โฉ through the video. ๐Ÿ“ผ
  • You can put the video on repeat. ๐Ÿ”
  • You can slow down ๐ŸŒ or speed up ๐ŸŽ the video (great for lectures).
  • You can turn subtitles off or on and pick your language.
  • You can turn up โฌ†๏ธ, turn down โฌ‡๏ธ, or mute ๐Ÿ”‡ the volume. ๐Ÿ”‰
  • You can expand the video to full screen.
  • You can quickly resize the video to standard sizes.
  • You can resize the video to a custom size by resizing the window.
    • Movie Monad will responsively adjust the video size to fill the window. ๐Ÿ’ฅ
  • You can play videos from the command line. ๐Ÿ†‘
    • movie-monad ./path/to/video/file.webm
    • movie-monad http://www.domain.tld/path/to/video/file.webm

What are the keyboard controls? โŒจ๏ธ

  • Mute/Unmute
    • m
    • AudioMute
  • Full Screen/Windowed
    • f
  • Show Controls
    • c
  • Toggle Repeat
    • r
  • Volume Up
    • ArrowUp
    • AudioRaiseVolume
  • Volume Down
    • ArrowDown
    • AudioLowerVolume
  • Seek Left
    • ArrowLeft
  • Seek Right
    • ArrowRight
  • Play/Pause
    • Space
    • AudioPlay

How do I get a copy of Movie Monad? ๐Ÿ’พ

Movie Monad works on Linux, Mac, and most likely Windows. Make sure you have GStreamer and GTK+ installed on your machine. To find the latest version of Movie Monad, head over to the releases page.

I use Linux. ๐Ÿง

If you use Linux then the easiest way to grab a copy of Movie Monad is by downloading the AppImage. After you download the AppImage, right click on it, select permissions, and check the box near execute. With that out of the wayโ€”you're all setโ€”just double click on the AppImage and Movie Monad will pop up.

You can also download and install the AppImage using the handy AppImage install script (right click the link and select "Save link as..."). Download the script, right click on it, select permissions, check the box near execute, and double click on it. You should now see Movie Monad listed alongside your other installed programs.

I use Arch, Manjaro, Antergos, or pacman. ๐Ÿ‘ป

You can install Movie Monad via pacman. Copy the following into your terminal.

cd "$HOME/Downloads"
sudo pacman -S git gstreamer gst-plugins-base-libs gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav
git clone https://aur.archlinux.org/movie-monad.git
cd movie-monad
makepkg -sic
cd "$HOME/Downloads"
rm -rf movie-monad
cd
movie-monad

I use Fedora, SUSE, CentOS, Red Hat, Flatpak, Flathub, or GNOME Software. ๐ŸŽฉ

You can install Movie Monad as a Flatpak via Flathub.

flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.lettier.movie-monad

You can also find it in GNOME Software. Just search for Movie Monad.

I use Ubuntu, Mint, Debian, Deepin, or Snap. ๐ŸŒ€

Movie Monad is available as a snap from Snapcraft. If you don't already have snap, go ahead and install it using the command sudo apt install snapd.

You can install the Movie Monad snap right from your browser or via the command line. For the command line route, paste the following into your terminal.

snap install movie-monad
sudo snap connect movie-monad:removable-media
movie-monad

I use Mac. ๐ŸŽ

Mac users can download the Mac install script by holding down control, clicking the link, selecting "Save Link As...", selecting where Downloads, and clicking save. To run the script, hold down the command key and press the space bar. Now type terminal and hit enter. After the terminal comes up, copy and paste the following.

cd ~/Downloads
chmod +x movie-monad-mac-install-script.command
./movie-monad-mac-install-script.command

Once it's finished, a shortcut to Movie Monad will be on your desktop.

I'm a Haskell developer. ๐Ÿ–ฅ๏ธ

If you develop Haskell programs then the easiest way to build Movie Monad is with Haskell Stack. Copy the following into your terminal.

cd "$HOME/Downloads"
git clone https://github.com/lettier/movie-monad.git
cd movie-monad
stack update
stack setup
stack install alex happy
stack install haskell-gi
stack install
stack exec -- movie-monad

What dependencies does Movie Monad use?

To run Movie Monad.

To build Movie Monad.

What is the license?

See LICENSE.

Who wrote Movie Monad?

(C) 2017 David Lettier
lettier.com

More Repositories

1

3d-game-shaders-for-beginners

๐ŸŽฎ A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
C++
16,849
star
2

gifcurry

๐Ÿ˜Ž The open-source, Haskell-built video editor for GIF makers.
Haskell
1,301
star
3

lambda-lantern

๐Ÿง™ โ€Žโ€Ž A 3D game about functional programming patterns. Uses PureScript Native, C++, and Panda3D.
PureScript
159
star
4

ntpclient

NTP client.
C
130
star
5

webviewhs

๐ŸŒ A Haskell binding to the webview library created by Serge Zaitsev.
Haskell
120
star
6

lda-topic-modeling

A PureScript, browser-based implementation of LDA topic modeling.
PureScript
101
star
7

parsing-with-haskell-parser-combinators

๐Ÿ” A step-by-step guide to parsing using Haskell parser combinators.
Haskell
87
star
8

interactiveknn

Interactive K-Nearest Neighbors machine learning algorithm in JavaScript.
JavaScript
81
star
9

isosurface

Isosurface extraction using Marching Cubes and pure WebGL.
JavaScript
71
star
10

hacker-feud

๐Ÿ’ฅ A single page web game made with Svelte.
HTML
62
star
11

purescript-pop

๐Ÿ˜ƒ A functional reactive programming (FRP) demo created with PureScript events and behaviors.
PureScript
33
star
12

emoji-bingo

๐Ÿ˜„ A single page web game made with Svelte.
HTML
29
star
13

dnsclient

A simple DNS client similar to nslookup. Does not use any DNS libraries.
Python
26
star
14

blender-keymap-trainer

โŒจ๏ธ Digital flashcards for memorizing Blender's shortcut keys.
Svelte
25
star
15

webglbowling

A WebGL, browser-based bowling game that uses real-time physics.
JavaScript
24
star
16

lettier.github.io

HTML
21
star
17

interviewquestions

A collection of solutions to various technical interview questions.
Python
18
star
18

interactive-simple-linear-regression

A PureScript, browser-based implementation of simple linear regression.
PureScript
18
star
19

blendersim

Multi-agent robot simulator created with Blender.
Python
17
star
20

slackotron

A plugin extensible Slack bot.
Python
16
star
21

interactivekmeans

Interactive HTML canvas based implementation of k-means.
JavaScript
15
star
22

awesome-opengl

A curated list of awesome OpenGL libraries, debuggers and resources.
13
star
23

shortestpath

An interactive HTML5 canvas graph that shows the shortest path between any two nodes.
JavaScript
12
star
24

sierpinski

Explorable 3D Sierpinski tetrahedrons rendered using WebGL.
JavaScript
9
star
25

dubulrubul

Dual-sided, breakout-like 2D game using PhysicsJS, PubSubJS, EaselJS, and FunctionalJS.
JavaScript
8
star
26

poing

Browser based pong clone featuring a neuro-evolved AI opponent.
JavaScript
6
star
27

matrix-inverse-calculator

Input a square matrix and calculate its inverse if possible.
PureScript
5
star
28

bbautotune

Blender/Bullet automatic parameter tuning/learning.
TeX
4
star
29

telnetclientclone

A limited functionality Telnet client clone written in C.
C
3
star
30

boids

Boids steering behaviors created in 3D using the Panda3D API.
Python
3
star
31

webserver

A simple HTTP web server.
Python
3
star
32

wumpusworld

Wumpus World written in Java.
Java
3
star
33

cryptohoppershouter

Two tools for the automation of encrypting files and then later distributing them via email.
Python
3
star
34

simpl

Pong player utilizing a feedforward neural network and evolutionary algorithm.
JavaScript
3
star
35

webclient

A simple web client that retrieves files via HTTP from an HTTP server.
Python
2
star
36

smtpclient

A simple SMTP client that uses either port 25 or 587 with TLS authentication.
Python
2
star
37

chatserver

Simple chat server.
Python
2
star
38

bullytextsms

Code screen for DoSomething.org.
JavaScript
1
star
39

javatrafficlight

Java applet that displays and allows control of a crude traffic light.
Java
1
star
40

lettier.com

Code for the main website.
JavaScript
1
star
41

javaclock

Ticking analog clock made in Java.
Java
1
star
42

javacheckerboard

Java applet of a checker board.
1
star
43

jobjar

A job search web application.
JavaScript
1
star
44

javamancalaboard

Java applet that displays a Mancala board.
Java
1
star