Open JonTheNiceGuy opened 5 years ago
I'm back to looking at this issue - Need to pick up my code base and see where I was.
I have rebased my fork, and I will do some research as to what we actually use the jsonAudioLayout value for - From what I can see it could be useful for bookmarking timecodes - but I dont seem to see what we actually use it for...
I can see that it is referenced in :
Does anyone know what this field is actually used for ?
Looking at the website - it could be useful for generating the RSS feeds...
I created an extension to the RSS spec, and proposed it. This would effectively move chapter marks from in the audio file into the RSS. The spec extension was called MRSS+ and it extended the Media-RSS spec
Here's an extract of what the MRSS+ spec adds to a RSS feed entry (from TEMPLATES/Source/shows.rss.tpl:
{if isset($show.player_data.mp3)}
<mrss-plus:fullwork url="{$show.player_data.mp3}" fileSize="{$show.player_data.mp3_len}" type="audio/mpeg" medium="audio" isDefault="true" expression="full" duration="{$show.timeLength}" lang="en">
{if isset($show.player_data.oga) and $show.player_data.oga != ''}
<mrss-plus:alternate-fullwork url="{$show.player_data.oga}" fileSize="{$show.player_data.oga_len}" type="audio/oga" medium="audio" isDefault="false" expression="full" duration="{$show.timeLength}" lang="en" description="OGG/Vorbis version" />
{/if}
{if isset($show.player_data.m4a) and $show.player_data.m4a != ''}
<mrss-plus:alternate-fullwork url="{$show.player_data.m4a}" fileSize="{$show.player_data.m4a_len}" type="audio/mp4a-latm" medium="audio" isDefault="false" expression="full" duration="{$show.timeLength}" lang="en" description="MPEG4-Audio version" />
{/if}
<mrss-plus:hash algo="sha1">{$show.shaHash}</mrss-plus:hash>
{if $show.strCommentUrl != ''}
<mrss-plus:comments url="{$show.strCommentUrl}" />
{/if}
{if isset($show.arrShowLayout)}
{foreach from=$show.arrShowLayout item=$track}
<mrss-plus:partwork src="{$track.strTrackUrl}" startTime="{$track.start}" endTime="{$track.stop}">
{if $track.strLicenseUrl != ''}
<mrss-plus:licenses>
<mrss-plus:license type="text/html" href="{$track.strLicenseUrl}">{$track.strLicenseName}</mrss-plus:license>
</mrss-plus:licenses>
{/if}
<mrss-plus:credit role="artist" scheme="urn:music" url="{$track.strArtistUrl}">{$track.strArtistName}</mrss-plus:credit>
<mrss-plus:title type="plain" url="{$track.strTrackUrl}">{$track.strTrackName}</mrss-plus:title>
</mrss-plus:partwork>
{/foreach}
{/if}
</mrss-plus:fullwork>
{/if}
Here's the results of that, today, on the first item on the daily/rss
<mrss-plus:fullwork url="https://cchits.net/media/daily/20200723.mp3" fileSize="5762607" type="audio/mpeg" medium="audio" isDefault="true" expression="full" duration="00:00:00" lang="en">
<mrss-plus:alternate-fullwork url="https://cchits.net/media/daily/20200723.oga" fileSize="4656596" type="audio/oga" medium="audio" isDefault="false" expression="full" duration="00:00:00" lang="en" description="OGG/Vorbis version" />
<mrss-plus:alternate-fullwork url="https://cchits.net/media/daily/20200723.m4a" fileSize="5861304" type="audio/mp4a-latm" medium="audio" isDefault="false" expression="full" duration="00:00:00" lang="en" description="MPEG4-Audio version" />
<mrss-plus:hash algo="sha1">mp3:4bbf1a64db793c0f7f5af357a780ef97oga:68b1d2baf8985def187b46f92047c280m4a:aabaabac24d8aa960b36f71e0948e4e6</mrss-plus:hash>
<mrss-plus:comments url="0" />
</mrss-plus:fullwork>
(Yes, there are issues here - comments
url
should be a link to a page, or be omitted, durations are all 00:00:00 instead of "real" times, and the hash
should, perhaps, be added to the fullwork
and alternate-fullwork
entries, but I think this is clear what is being done?)
I've since lost the original text of the spec, but basically it would list all the break points in the show (and provide other formats too, allowing you to have a single RSS feed for OGG Vorbis, FLAC, MP4, MP3 etc). This would then let your player be able to render greater detail on a part of an RSS feed, be able to confirm that the file downloaded was actually the media file desired, be able to supply part audio files (perhaps the first 2 minutes as a "sampler") and so on.
Anyway... the spec is lost to time (but could be rebuilt, if appropriate) and was only ever (AFAIK) implemented in CCHits, and even then, with errors. While I would have liked it, from an "enhanced chaptermark" perspective (note that even the MP3 chaptermark system was only implemented in proprietary systems a couple of years ago), I don't think this is key tech we should be doing stuff with, so should we remove it... probably?
Here's that column in shows
For starters, we've got two "outro" and "ends" (the first of these pair is from the daily show... Ooops) but also, do we really need the full track info (including the last 60 days of positions on that day, naturally) for each show (surely we just need "trackname by trackartist")?