--- layout: template title: API - pyatv.const permalink: /api//const link_group: api ---

# Module `pyatv.const`

Constants used in the public API.

Expand source code

    """Constants used in the public API."""
    # pylint: disable=invalid-name

    from enum import Enum

    MAJOR_VERSION = "0"
    MINOR_VERSION = "8"
    PATCH_VERSION = "1"
    __short_version__ = "{}.{}".format(MAJOR_VERSION, MINOR_VERSION)
    __version__ = "{}.{}".format(__short_version__, PATCH_VERSION)

    class Protocol(Enum):
        """All supported protocols."""

        DMAP = 1
        """Protocol constant representing DMAP."""

        MRP = 2
        """Protocol constant representing MRP."""

        AirPlay = 3
        """Protocol constant representing AirPlay."""

        Companion = 4
        """Protocol constant representing Companion link."""

        RAOP = 5
        """Protocol constant representing RAOP."""

    class MediaType(Enum):
        """All supported media types."""

        Unknown = 0
        """Media type is not known.

        This can be either the case that nothing is playing or the app does
        not report a valid media type.
        """

        Video = 1
        """Media type is video."""

        Music = 2
        """Media type is music."""

        TV = 3
        """Media type is a TV show."""

    class DeviceState(Enum):
        """All supported device states."""

        Idle = 0
        """Device is idling, i.e. nothing is playing or about to play."""

        Loading = 1
        """Media is being loaded but not yet playing."""

        Paused = 2
        """Media is in paused state."""

        Playing = 3
        """Media is playing."""

        Stopped = 4
        """Media is stopped."""

        Seeking = 5
        """Media is seeking, e.g fast forward."""

    class RepeatState(Enum):
        """All supported repeat states."""

        Off = 0
        """Repeat is off."""

        Track = 1
        """Repeat current track or item."""

        All = 2
        """Repeat all tracks or items."""

    class ShuffleState(Enum):
        """All supported shuffle states."""

        Off = 0
        """Shuffle is off."""

        Albums = 1
        """Shuffle on album level."""

        Songs = 2
        """Shuffle on song level."""

    class PowerState(Enum):
        """All supported power states."""

        Unknown = 0
        """Power state is not determinable."""

        Off = 1
        """Device is turned off (standby)."""

        On = 2
        """Device is turned on."""

    class OperatingSystem(Enum):
        """Operating system on device."""

        Unknown = 0
        """Operating system is not known."""

        Legacy = 1
        """Operating system  is Apple TV Software (pre-tvOS)."""

        TvOS = 2
        """Operating system is tvOS."""

        AirPortOS = 3
        """Operating system is AirPortOS.

        This OS is used by AirPort Express devices. It is not an official name but made up
        in pyatv as no official name has been found.
        """

    class DeviceModel(Enum):
        """Hardware device model.

        Gen2-Gen4K are Apple TV model names and will be renamed to AppleTVGenX in the
        future.
        """

        Unknown = 0
        """Device model is unknown."""

        Gen2 = 1
        """Device model is second generation Apple TV (Apple TV 2)."""

        Gen3 = 2
        """Device model is third generation Apple TV (Apple TV 3)."""

        Gen4 = 3
        """Device model is fourth generation Apple TV (Apple TV 4)."""

        Gen4K = 4
        """Device model is fifth generation Apple TV (Apple TV 4K)."""

        HomePod = 5
        """Device model is HomePod (first generation)."""

        HomePodMini = 6
        """Device model is HomePod Mini (first generation)."""

        AirPortExpress = 7
        """Device model is AirPort Express (first generation)."""

        AirPortExpressGen2 = 8
        """Device model is AirPort Express (second generation)."""

        AppleTV4KGen2 = 9
        """Device model is sixth generation Apple TV (Apple TV 4K gen 2)."""

    class InputAction(Enum):
        """Type of input when pressing a button."""

        SingleTap = 0
        """Press and release quickly."""

        DoubleTap = 1
        """Press and release twice quickly."""

        Hold = 2
        """Press and hold for one second before releasing."""

    class FeatureState(Enum):
        """State of a particular feature."""

        Unknown = 0
        """Feature is supported by device but it is not known if it is available or not."""

        Unsupported = 1
        """Device does not support this feature."""

        Unavailable = 2
        """Feature is supported by device but not available now.

        Pause is for instance unavailable if nothing is playing.
        """

        Available = 3
        """Feature is supported and available."""

    # This enum is generated by scripts/features.py
    class FeatureName(Enum):
        """All supported features."""

        Up = 0
        """Up button on remote."""

        Down = 1
        """Down button on remote."""

        Left = 2
        """Left button on remote."""

        Right = 3
        """Right button on remote."""

        Play = 4
        """Start playing media."""

        PlayPause = 5
        """Toggle between play/pause."""

        Pause = 6
        """Pause playing media."""

        Stop = 7
        """Stop playing media."""

        Next = 8
        """Change to next item."""

        Previous = 9
        """Change to previous item."""

        Select = 10
        """Select current option."""

        Menu = 11
        """Go back to previous menu."""

        VolumeUp = 12
        """Increase volume."""

        VolumeDown = 13
        """Decrease volume."""

        Home = 14
        """Home/TV button."""

        HomeHold = 15
        """Long-press home button (deprecated: use RemoteControl.home)."""

        TopMenu = 16
        """Go to main menu."""

        Suspend = 17
        """Suspend device (deprecated; use Power.turn_off)."""

        WakeUp = 18
        """Wake up device (deprecated; use Power.turn_on)."""

        SkipForward = 36
        """Skip forward a time interval."""

        SkipBackward = 37
        """Skip backwards a time interval."""

        SetPosition = 19
        """Seek to position."""

        SetShuffle = 20
        """Change shuffle state."""

        SetRepeat = 21
        """Change repeat state."""

        Title = 22
        """Title of playing media."""

        Artist = 23
        """Artist of playing song."""

        Album = 24
        """Album from playing artist."""

        Genre = 25
        """Genre of playing song."""

        TotalTime = 26
        """Total length of playing media (seconds)."""

        Position = 27
        """Current play time position."""

        Shuffle = 28
        """Shuffle state."""

        Repeat = 29
        """Repeat state."""

        SeriesName = 40
        """Title of TV series."""

        SeasonNumber = 41
        """Season number of TV series."""

        EpisodeNumber = 42
        """Episode number of TV series."""

        AppList = 38
        """List of launchable apps."""

        LaunchApp = 39
        """Launch an app."""

        Artwork = 30
        """Playing media artwork."""

        App = 35
        """App playing media."""

        PushUpdates = 43
        """Push updates are supported."""

        PlayUrl = 31
        """Stream a URL on device."""

        StreamFile = 44
        """Stream local file to device."""

        PowerState = 32
        """Current device power state."""

        TurnOn = 33
        """Turn device on."""

        TurnOff = 34
        """Turn off device."""

        Volume = 45
        """Current volume level."""

        SetVolume = 46
        """Set volume level."""

## Classes

`class DeviceModel (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  Hardware device model.

  Gen2-Gen4K are Apple TV model names and will be renamed to AppleTVGenX in the future.

  Expand source code

      class DeviceModel(Enum):
          """Hardware device model.

          Gen2-Gen4K are Apple TV model names and will be renamed to AppleTVGenX in the
          future.
          """

          Unknown = 0
          """Device model is unknown."""

          Gen2 = 1
          """Device model is second generation Apple TV (Apple TV 2)."""

          Gen3 = 2
          """Device model is third generation Apple TV (Apple TV 3)."""

          Gen4 = 3
          """Device model is fourth generation Apple TV (Apple TV 4)."""

          Gen4K = 4
          """Device model is fifth generation Apple TV (Apple TV 4K)."""

          HomePod = 5
          """Device model is HomePod (first generation)."""

          HomePodMini = 6
          """Device model is HomePod Mini (first generation)."""

          AirPortExpress = 7
          """Device model is AirPort Express (first generation)."""

          AirPortExpressGen2 = 8
          """Device model is AirPort Express (second generation)."""

          AppleTV4KGen2 = 9
          """Device model is sixth generation Apple TV (Apple TV 4K gen 2)."""

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var AirPortExpress`

    Device model is AirPort Express (first generation).

  `var AirPortExpressGen2`

    Device model is AirPort Express (second generation).

  `var AppleTV4KGen2`

    Device model is sixth generation Apple TV (Apple TV 4K gen 2).

  `var Gen2`

    Device model is second generation Apple TV (Apple TV 2).

  `var Gen3`

    Device model is third generation Apple TV (Apple TV 3).

  `var Gen4`

    Device model is fourth generation Apple TV (Apple TV 4).

  `var Gen4K`

    Device model is fifth generation Apple TV (Apple TV 4K).

  `var HomePod`

    Device model is HomePod (first generation).

  `var HomePodMini`

    Device model is HomePod Mini (first generation).

  `var Unknown`

    Device model is unknown.

`class DeviceState (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  All supported device states.

  Expand source code

      class DeviceState(Enum):
          """All supported device states."""

          Idle = 0
          """Device is idling, i.e. nothing is playing or about to play."""

          Loading = 1
          """Media is being loaded but not yet playing."""

          Paused = 2
          """Media is in paused state."""

          Playing = 3
          """Media is playing."""

          Stopped = 4
          """Media is stopped."""

          Seeking = 5
          """Media is seeking, e.g fast forward."""

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var Idle`

    Device is idling, i.e. nothing is playing or about to play.

  `var Loading`

    Media is being loaded but not yet playing.

  `var Paused`

    Media is in paused state.

  `var Playing`

    Media is playing.

  `var Seeking`

    Media is seeking, e.g fast forward.

  `var Stopped`

    Media is stopped.

`class FeatureName (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  All supported features.

  Expand source code

      class FeatureName(Enum):
          """All supported features."""

          Up = 0
          """Up button on remote."""

          Down = 1
          """Down button on remote."""

          Left = 2
          """Left button on remote."""

          Right = 3
          """Right button on remote."""

          Play = 4
          """Start playing media."""

          PlayPause = 5
          """Toggle between play/pause."""

          Pause = 6
          """Pause playing media."""

          Stop = 7
          """Stop playing media."""

          Next = 8
          """Change to next item."""

          Previous = 9
          """Change to previous item."""

          Select = 10
          """Select current option."""

          Menu = 11
          """Go back to previous menu."""

          VolumeUp = 12
          """Increase volume."""

          VolumeDown = 13
          """Decrease volume."""

          Home = 14
          """Home/TV button."""

          HomeHold = 15
          """Long-press home button (deprecated: use RemoteControl.home)."""

          TopMenu = 16
          """Go to main menu."""

          Suspend = 17
          """Suspend device (deprecated; use Power.turn_off)."""

          WakeUp = 18
          """Wake up device (deprecated; use Power.turn_on)."""

          SkipForward = 36
          """Skip forward a time interval."""

          SkipBackward = 37
          """Skip backwards a time interval."""

          SetPosition = 19
          """Seek to position."""

          SetShuffle = 20
          """Change shuffle state."""

          SetRepeat = 21
          """Change repeat state."""

          Title = 22
          """Title of playing media."""

          Artist = 23
          """Artist of playing song."""

          Album = 24
          """Album from playing artist."""

          Genre = 25
          """Genre of playing song."""

          TotalTime = 26
          """Total length of playing media (seconds)."""

          Position = 27
          """Current play time position."""

          Shuffle = 28
          """Shuffle state."""

          Repeat = 29
          """Repeat state."""

          SeriesName = 40
          """Title of TV series."""

          SeasonNumber = 41
          """Season number of TV series."""

          EpisodeNumber = 42
          """Episode number of TV series."""

          AppList = 38
          """List of launchable apps."""

          LaunchApp = 39
          """Launch an app."""

          Artwork = 30
          """Playing media artwork."""

          App = 35
          """App playing media."""

          PushUpdates = 43
          """Push updates are supported."""

          PlayUrl = 31
          """Stream a URL on device."""

          StreamFile = 44
          """Stream local file to device."""

          PowerState = 32
          """Current device power state."""

          TurnOn = 33
          """Turn device on."""

          TurnOff = 34
          """Turn off device."""

          Volume = 45
          """Current volume level."""

          SetVolume = 46
          """Set volume level."""

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var Album`

    Album from playing artist.

  `var App`

    App playing media.

  `var AppList`

    List of launchable apps.

  `var Artist`

    Artist of playing song.

  `var Artwork`

    Playing media artwork.

  `var Down`

    Down button on remote.

  `var EpisodeNumber`

    Episode number of TV series.

  `var Genre`

    Genre of playing song.

  `var Home`

    Home/TV button.

  `var HomeHold`

    Long-press home button (deprecated: use RemoteControl.home).

  `var LaunchApp`

    Launch an app.

  `var Left`

    Left button on remote.

  `var Menu`

    Go back to previous menu.

  `var Next`

    Change to next item.

  `var Pause`

    Pause playing media.

  `var Play`

    Start playing media.

  `var PlayPause`

    Toggle between play/pause.

  `var PlayUrl`

    Stream a URL on device.

  `var Position`

    Current play time position.

  `var PowerState`

    Current device power state.

  `var Previous`

    Change to previous item.

  `var PushUpdates`

    Push updates are supported.

  `var Repeat`

    Repeat state.

  `var Right`

    Right button on remote.

  `var SeasonNumber`

    Season number of TV series.

  `var Select`

    Select current option.

  `var SeriesName`

    Title of TV series.

  `var SetPosition`

    Seek to position.

  `var SetRepeat`

    Change repeat state.

  `var SetShuffle`

    Change shuffle state.

  `var SetVolume`

    Set volume level.

  `var Shuffle`

    Shuffle state.

  `var SkipBackward`

    Skip backwards a time interval.

  `var SkipForward`

    Skip forward a time interval.

  `var Stop`

    Stop playing media.

  `var StreamFile`

    Stream local file to device.

  `var Suspend`

    Suspend device (deprecated; use Power.turn_off).

  `var Title`

    Title of playing media.

  `var TopMenu`

    Go to main menu.

  `var TotalTime`

    Total length of playing media (seconds).

  `var TurnOff`

    Turn off device.

  `var TurnOn`

    Turn device on.

  `var Up`

    Up button on remote.

  `var Volume`

    Current volume level.

  `var VolumeDown`

    Decrease volume.

  `var VolumeUp`

    Increase volume.

  `var WakeUp`

    Wake up device (deprecated; use Power.turn_on).

`class FeatureState (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  State of a particular feature.

  Expand source code

      class FeatureState(Enum):
          """State of a particular feature."""

          Unknown = 0
          """Feature is supported by device but it is not known if it is available or not."""

          Unsupported = 1
          """Device does not support this feature."""

          Unavailable = 2
          """Feature is supported by device but not available now.

          Pause is for instance unavailable if nothing is playing.
          """

          Available = 3
          """Feature is supported and available."""

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var Available`

    Feature is supported and available.

  `var Unavailable`

    Feature is supported by device but not available now.

    Pause is for instance unavailable if nothing is playing.

  `var Unknown`

    Feature is supported by device but it is not known if it is available or not.

  `var Unsupported`

    Device does not support this feature.

`class InputAction (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  Type of input when pressing a button.

  Expand source code

      class InputAction(Enum):
          """Type of input when pressing a button."""

          SingleTap = 0
          """Press and release quickly."""

          DoubleTap = 1
          """Press and release twice quickly."""

          Hold = 2
          """Press and hold for one second before releasing."""

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var DoubleTap`

    Press and release twice quickly.

  `var Hold`

    Press and hold for one second before releasing.

  `var SingleTap`

    Press and release quickly.

`class MediaType (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  All supported media types.

  Expand source code

      class MediaType(Enum):
          """All supported media types."""

          Unknown = 0
          """Media type is not known.

          This can be either the case that nothing is playing or the app does
          not report a valid media type.
          """

          Video = 1
          """Media type is video."""

          Music = 2
          """Media type is music."""

          TV = 3
          """Media type is a TV show."""

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var Music`

    Media type is music.

  `var TV`

    Media type is a TV show.

  `var Unknown`

    Media type is not known.

    This can be either the case that nothing is playing or the app does not report a valid media type.

  `var Video`

    Media type is video.

`class OperatingSystem (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  Operating system on device.

  Expand source code

      class OperatingSystem(Enum):
          """Operating system on device."""

          Unknown = 0
          """Operating system is not known."""

          Legacy = 1
          """Operating system  is Apple TV Software (pre-tvOS)."""

          TvOS = 2
          """Operating system is tvOS."""

          AirPortOS = 3
          """Operating system is AirPortOS.

          This OS is used by AirPort Express devices. It is not an official name but made up
          in pyatv as no official name has been found.
          """

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var AirPortOS`

    Operating system is AirPortOS.

    This OS is used by AirPort Express devices. It is not an official name but made up in pyatv as no official name has been found.

  `var Legacy`

    Operating system is Apple TV Software (pre-tvOS).

  `var TvOS`

    Operating system is tvOS.

  `var Unknown`

    Operating system is not known.

`class PowerState (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  All supported power states.

  Expand source code

      class PowerState(Enum):
          """All supported power states."""

          Unknown = 0
          """Power state is not determinable."""

          Off = 1
          """Device is turned off (standby)."""

          On = 2
          """Device is turned on."""

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var Off`

    Device is turned off (standby).

  `var On`

    Device is turned on.

  `var Unknown`

    Power state is not determinable.

`class Protocol (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  All supported protocols.

  Expand source code

      class Protocol(Enum):
          """All supported protocols."""

          DMAP = 1
          """Protocol constant representing DMAP."""

          MRP = 2
          """Protocol constant representing MRP."""

          AirPlay = 3
          """Protocol constant representing AirPlay."""

          Companion = 4
          """Protocol constant representing Companion link."""

          RAOP = 5
          """Protocol constant representing RAOP."""

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var AirPlay`

    Protocol constant representing AirPlay.

  `var Companion`

    Protocol constant representing Companion link.

  `var DMAP`

    Protocol constant representing DMAP.

  `var MRP`

    Protocol constant representing MRP.

  `var RAOP`

    Protocol constant representing RAOP.

`class RepeatState (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  All supported repeat states.

  Expand source code

      class RepeatState(Enum):
          """All supported repeat states."""

          Off = 0
          """Repeat is off."""

          Track = 1
          """Repeat current track or item."""

          All = 2
          """Repeat all tracks or items."""

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var All`

    Repeat all tracks or items.

  `var Off`

    Repeat is off.

  `var Track`

    Repeat current track or item.

`class ShuffleState (value, names=None, *, module=None, qualname=None, type=None, start=1)`

  All supported shuffle states.

  Expand source code

      class ShuffleState(Enum):
          """All supported shuffle states."""

          Off = 0
          """Shuffle is off."""

          Albums = 1
          """Shuffle on album level."""

          Songs = 2
          """Shuffle on song level."""

  ### Ancestors

  - enum.Enum

  ### Class variables

  `var Albums`

    Shuffle on album level.

  `var Off`

    Shuffle is off.

  `var Songs`

    Shuffle on song level.