Packages

A podcast-centric ID3 library for parsing and writing ID3 tags.

Current section

Files

Jump to
polyvox_id3 lib id3 tag.ex
Raw

lib/id3/tag.ex

defprotocol Polyvox.ID3.Tag do
@moduledoc "Represents a tag, virtual or physical, in an MP3 file."
@doc "Gets the podcast name."
@spec podcast(Tag.t) :: binary | nil
def podcast(tag)
@doc "Gets the title of the episode."
@spec title(Tag.t) :: binary | nil
def title(tag)
@doc "Gets the number of the episode."
@spec number(Tag.t) :: integer | nil
def number(tag)
@doc "Gets the names of the people in the episode."
@spec participants(Tag.t) :: list(binary) | nil
def participants(tag)
@doc "Gets the year of the recording of the episode."
@spec year(Tag.t) :: integer | nil
def year(tag)
@doc "Gets the summary of the episode's contents."
@spec summary(Tag.t) :: binary | nil
def summary(tag)
@doc "Gets the description of the episode's contents."
@spec description(Tag.t) :: binary | nil
def description(tag)
@doc "Gets the notes for the show."
@spec show_notes(Tag.t) :: binary | nil
def show_notes(tag)
@doc "Gets the list of genres for the episode."
@spec genres(Tag.t) :: list(integer) | nil
def genres(tag)
@doc """
Gets a stream that contains the artwork for the episode.
__Note: This is not yet implemented because it's not MVP.__
"""
@spec artwork(Tag.t) :: Stream.t | nil
def artwork(tag)
@doc "Gets the date of the recording of the podcast in DDMM format."
@spec date(Tag.t) :: binary | nil
def date(tag)
@doc "Gets the URL for the episode."
@spec url(Tag.t) :: binary | nil
def url(tag)
@doc "Gets the URL of the podcast."
@spec podcast_url(Tag.t) :: binary | nil
def podcast_url(tag)
@doc "Gets the unique identifier for the episode."
@spec uid(Tag.t) :: binary | nil
def uid(tag)
end