GithubHelp home page GithubHelp logo

eliduke / audiofilms.net Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 355 KB

Listen to all your favorite movies!

Home Page: https://audiofilms.net/

HTML 53.73% Ruby 18.49% SCSS 16.67% JavaScript 11.11%

audiofilms.net's Introduction

AudioFilms

The Origins

Well over a decade ago, I was road-tripping somewhere with Brandon, one my oldest and dearest friends, and he brought along his portable DVD player. Cool. You might not know this, but Brandon was a big DVD guy back then. He eventually shifted to Blu-ray when it made sense, but in recent years he dipped a toe into VHS before taking a hard turn toward LaserDisc. Double cool.

Anyhoo, so I'm road-tripping with Brandon and his portable DVD player. He starts popping DVDs into that thing and sends the audio straight to aux on the car stereo! We had it made. More often than not I was the one driving, with my eyes on the road, just listening to the movies that Brandon was watching. I was having a great time.

After toying with the idea for a couple years, I finally purchased the domain way back in 2014 (a literal decade ago), wired up a simple Ruby on Rails, and got the first 20 or so films into the catalogue. It was fun, but also kinda boring. Turns out that part of the project, adding to the catalogue, was a bit too cumbersome and didn't really excite me. Things grew stale, eventually the hosting provider eliminated their free option, and I wasn't about to pay a monthly fee for this silly idea.

Fast-forward another 10 years and I have been inspired yet again! It's time to get this thing back online and really build up the catalogue.

With the latest and greatest in GitHub Pages and Jekyll, I am able to recreate what I once and make it better, easier, etc. New titles will get added weekly-ish, and please send a request if you don't see your favorite movies on the list!

audiofilms.net

The Technology

Overall this is a pretty simple and straightforward Jekyll GitHub Pages site with a few little ruby scripts to help automate a few things.

The /_films directory is where you will find the film markdown files. They contain only front matter with all the necessary metadata for each film. As of this writing, that includes:

tmdb-id:
layout:
added:
released:
slug:
title:
description:

All of that metadata (along with the movie poster) comes directly from The Movie Database (TMDB) with the help of themoviedb ruby gem. I manually search for the movie I want to import, grab the tmdb-id (my naming convention) , and use that to run /rb/import.rb. That script grabs the metadata, creates the markdown file, and populates the metadata. Pretty straightforward.

There's also a /rb/refresh.rb script that is pretty similar, but instead it loops through each film file, parses the current YAML content, and then repopulates it with whatever large-scale change that I need. That way I can easily change the format or rename one of metadata keys across all film files. It's great.

Also, I had to fork the slugify gem because I had very specific sluggification needs, namely that I wanted a slightly different mapping of certain characters, as you can see here:

A screenshot of the diff between my fork of the Slugify gem

I wrapped all that up in /rb/sluggit.rb where I got even more specific about my sluggification needs because I don't want movie titles to start with "The" or "A" and throw off the sorting of things. In those instances, the actual metadata title is correct and contains all the words of the movie title, but the file name / slug don't include it so that it sits correctly in the list of all the other films.

All film posters and audios are hosted with bunny.net, a super duper simple and inexpensive storage / CDN service that I have really come to love. For simple projects, is sooooo much easier than S3. Highly recommend.

audiofilms.net's People

Contributors

eliduke avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.