Coder Social home page Coder Social logo

wuvt / johnny-six Goto Github PK

View Code? Open in Web Editor NEW
7.0 7.0 3.0 80 KB

Simple radio automation system built with Liquidsoap

License: GNU General Public License v3.0

Python 77.96% Dockerfile 9.76% Go 12.28%
liquidsoap radio radio-automation radio-station

johnny-six's People

Contributors

echarlie avatar emachin3 avatar mutantmonkey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

johnny-six's Issues

safe harbor hours announcement

should add an optional slot to run, in addition to the ID, every hour from 22:00 to 05:00, to announce content may contain strong or suggestive language. While I do not believe this is a requirement, it is a courtesy to listeners.

Should be able to log "new" and "rotation" status with johnny-six

I'm imagining text files with the correct metadata for tracks that need to be marked (most likely by album/artist). Johnny-six then checks if a song matches those fields before marking as new/rotation. This would allow automation to help chart songs, especially useful for summer.

underwriting should have human-readable config

current yml config for underwriting is awful. write a new one.
it should store/allow

  • start and end dates
  • arbitrary metadata about underwriting (e.g. transcripts)
  • multiple recordings for each underwriting
  • multiple underwriters per hour

Ideally, underwriting will play every underwriter for a given hour, and will select a random underwriting recording if there are multiple for a single piece of underwriting. It also should verify that it is before the end date and after the start date, so that we don't need to babysit underwriting. Some less useful potential features: use liquidsoap's built-in say support to read transcripts, if we have no recording of the underwriting.

Long-term, it may be possible to adapt this, with minimal modifications, to use for scheduled PSAs, Promos, and Rotation.

start loading next hour's playlist 5min before top of hour

usually, johnny-six plays one track from the prior hour's playlist after the ID at the top of the hour. This isn't a big deal for most hours, but is very noticeable at 7am (when americana starts), 5pm (when jazz starts), and 7pm (when jazz ends).

Play m4a?

Usually, this is a container format for mp3; Dr. Sue commented that they were not playing, but theoretically, we should be able to decode and handle them.

Validate tracks don't contain FCC violations

This should first check if the playlist will play outside safe harbour hours. If it will, check each track against a lyric database and search for WUVT's standard set of FCC disallowed words.

Parse metadata from WAV

this may be a limitation of liquidsoap, but we do not parse id3v2 (or other?) tags out of WAV files, although we happily play them. c.f. https://wavmetadata.blogspot.com/ for info on tags supported in WAV.

/tank/automation/Shows/rare-groove/2020-07-09/Cass\ McCombs\ -\ The\ Wine\ Of\ Lebanon.wav has tags 'TITLE': ['The Wine Of Lebanon'], 'GENRE': ['Alternative'], 'TRACKNUMBER': ['1/1'], 'ARTIST': ['Cass McCombs'], 'DATE': ['2020'], 'ALBUM': ['The Wine Of Lebanon'] according to pytaglib, but it was never logged.

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.