Files
plexpy/docs/sdks/playlist/README.md
speakeasybot 5379e2aa2c ## Python SDK Changes Detected:
* `plex_api.butler.start_task()`: 
  *  `request` **Changed** **Breaking** ⚠️
  *  `error` **Changed** **Breaking** ⚠️
* `plex_api.butler.stop_task()`: 
  *  `request` **Changed** **Breaking** ⚠️
  *  `error` **Changed** **Breaking** ⚠️
* `plex_api.updater.apply_updates()`: 
  *  `request` **Changed** **Breaking** ⚠️
  *  `error` **Changed** **Breaking** ⚠️
* `plex_api.general.get_server_info()`: **Added**
* `plex_api.general.get_identity()`: **Added**
* `plex_api.general.get_source_connection_information()`: **Added**
* `plex_api.general.get_transient_token()`: **Added**
* `plex_api.events.get_notifications()`: **Added**
* `plex_api.events.connect_web_socket()`: **Added**
* `plex_api.preferences.get_all_preferences()`: **Added**
* `plex_api.preferences.set_preferences()`: **Added**
* `plex_api.preferences.get_preference()`: **Added**
* `plex_api.rate.set_rating()`: **Added**
* `plex_api.timeline.mark_played()`: **Added**
* `plex_api.timeline.report()`: **Added**
* `plex_api.timeline.unscrobble()`: **Added**
* `plex_api.activities.list_activities()`: **Added**
* `plex_api.activities.cancel_activity()`: **Added**
* `plex_api.butler.stop_tasks()`: **Added**
* `plex_api.butler.get_tasks()`: **Added**
* `plex_api.butler.start_tasks()`: **Added**
* `plex_api.download_queue.create_download_queue()`: **Added**
* `plex_api.download_queue.get_download_queue()`: **Added**
* `plex_api.download_queue.add_download_queue_items()`: **Added**
* `plex_api.download_queue.list_download_queue_items()`: **Added**
* `plex_api.download_queue.get_item_decision()`: **Added**
* `plex_api.download_queue.get_download_queue_media()`: **Added**
* `plex_api.download_queue.remove_download_queue_items()`: **Added**
* `plex_api.download_queue.get_download_queue_items()`: **Added**
* `plex_api.download_queue.restart_processing_download_queue_items()`: **Added**
* `plex_api.hubs.get_all_hubs()`: **Added**
* `plex_api.hubs.get_continue_watching()`: **Added**
* `plex_api.hubs.get_hub_items()`: **Added**
* `plex_api.hubs.get_promoted_hubs()`: **Added**
* `plex_api.hubs.get_metadata_hubs()`: **Added**
* `plex_api.hubs.get_postplay_hubs()`: **Added**
* `plex_api.hubs.get_related_hubs()`: **Added**
* `plex_api.hubs.get_section_hubs()`: **Added**
* `plex_api.hubs.reset_section_defaults()`: **Added**
* `plex_api.hubs.list_hubs()`: **Added**
* `plex_api.hubs.create_custom_hub()`: **Added**
* `plex_api.hubs.move_hub()`: **Added**
* `plex_api.hubs.delete_custom_hub()`: **Added**
* `plex_api.hubs.update_hub_visibility()`: **Added**
* `plex_api.search.search_hubs()`: **Added**
* `plex_api.search.voice_search_hubs()`: **Added**
* `plex_api.library.get_library_items()`: **Added**
* `plex_api.library.delete_caches()`: **Added**
* `plex_api.library.clean_bundles()`: **Added**
* `plex_api.library.ingest_transient_item()`: **Added**
* `plex_api.library.get_library_matches()`: **Added**
* `plex_api.library.optimize_database()`: **Added**
* `plex_api.library.get_random_artwork()`: **Added**
* `plex_api.library.get_sections()`: **Added**
* `plex_api.library.add_section()`: **Added**
* `plex_api.library.stop_all_refreshes()`: **Added**
* `plex_api.library.get_sections_prefs()`: **Added**
* `plex_api.library.refresh_sections_metadata()`: **Added**
* `plex_api.library.get_tags()`: **Added**
* `plex_api.library.delete_metadata_item()`: **Added**
* `plex_api.library.edit_metadata_item()`: **Added**
* `plex_api.library.detect_ads()`: **Added**
* `plex_api.library.get_all_item_leaves()`: **Added**
* `plex_api.library.analyze_metadata()`: **Added**
* `plex_api.library.generate_thumbs()`: **Added**
* `plex_api.library.detect_credits()`: **Added**
* `plex_api.library.get_extras()`: **Added**
* `plex_api.library.add_extras()`: **Added**
* `plex_api.library.get_file()`: **Added**
* `plex_api.library.start_bif_generation()`: **Added**
* `plex_api.library.detect_intros()`: **Added**
* `plex_api.library.create_marker()`: **Added**
* `plex_api.library.match_item()`: **Added**
* `plex_api.library.list_matches()`: **Added**
* `plex_api.library.merge_items()`: **Added**
* `plex_api.library.list_sonically_similar()`: **Added**
* `plex_api.library.set_item_preferences()`: **Added**
* `plex_api.library.refresh_items_metadata()`: **Added**
* `plex_api.library.get_related_items()`: **Added**
* `plex_api.library.list_similar()`: **Added**
* `plex_api.library.split_item()`: **Added**
* `plex_api.library.add_subtitles()`: **Added**
* `plex_api.library.get_item_tree()`: **Added**
* `plex_api.library.unmatch()`: **Added**
* `plex_api.library.list_top_users()`: **Added**
* `plex_api.library.detect_voice_activity()`: **Added**
* `plex_api.library.get_augmentation_status()`: **Added**
* `plex_api.library.set_stream_selection()`: **Added**
* `plex_api.library.get_person()`: **Added**
* `plex_api.library.list_person_media()`: **Added**
* `plex_api.library.delete_library_section()`: **Added**
* `plex_api.library.get_library_details()`: **Added**
* `plex_api.library.edit_section()`: **Added**
* `plex_api.library.update_items()`: **Added**
* `plex_api.library.start_analysis()`: **Added**
* `plex_api.library.autocomplete()`: **Added**
* `plex_api.library.get_collections()`: **Added**
* `plex_api.library.get_common()`: **Added**
* `plex_api.library.empty_trash()`: **Added**
* `plex_api.library.get_section_filters()`: **Added**
* `plex_api.library.get_first_characters()`: **Added**
* `plex_api.library.delete_indexes()`: **Added**
* `plex_api.library.delete_intros()`: **Added**
* `plex_api.library.get_section_preferences()`: **Added**
* `plex_api.library.set_section_preferences()`: **Added**
* `plex_api.library.cancel_refresh()`: **Added**
* `plex_api.library.refresh_section()`: **Added**
* `plex_api.library.get_available_sorts()`: **Added**
* `plex_api.library.get_stream_levels()`: **Added**
* `plex_api.library.get_stream_loudness()`: **Added**
* `plex_api.library.get_chapter_image()`: **Added**
* `plex_api.library.set_item_artwork()`: **Added**
* `plex_api.library.update_item_artwork()`: **Added**
* `plex_api.library.delete_marker()`: **Added**
* `plex_api.library.edit_marker()`: **Added**
* `plex_api.library.delete_media_item()`: **Added**
* `plex_api.library.get_part_index()`: **Added**
* `plex_api.library.delete_collection()`: **Added**
* `plex_api.library.get_section_image()`: **Added**
* `plex_api.library.delete_stream()`: **Added**
* `plex_api.library.get_stream()`: **Added**
* `plex_api.library.set_stream_offset()`: **Added**
* `plex_api.library.get_item_artwork()`: **Added**
* `plex_api.library.get_media_part()`: **Added**
* `plex_api.library.get_image_from_bif()`: **Added**
* `plex_api.collections.create_collection()`: **Added**
* `plex_api.dv_rs.list_dv_rs()`: **Added**
* `plex_api.dv_rs.create_dvr()`: **Added**
* `plex_api.dv_rs.delete_dvr()`: **Added**
* `plex_api.dv_rs.get_dvr()`: **Added**
* `plex_api.dv_rs.delete_lineup()`: **Added**
* `plex_api.dv_rs.add_lineup()`: **Added**
* `plex_api.dv_rs.set_dvr_preferences()`: **Added**
* `plex_api.dv_rs.stop_dvr_reload()`: **Added**
* `plex_api.dv_rs.reload_guide()`: **Added**
* `plex_api.dv_rs.tune_channel()`: **Added**
* `plex_api.dv_rs.remove_device_from_dvr()`: **Added**
* `plex_api.dv_rs.add_device_to_dvr()`: **Added**
* `plex_api.epg.compute_channel_map()`: **Added**
* `plex_api.epg.get_channels()`: **Added**
* `plex_api.epg.get_countries()`: **Added**
* `plex_api.epg.get_all_languages()`: **Added**
* `plex_api.epg.get_lineup()`: **Added**
* `plex_api.epg.get_lineup_channels()`: **Added**
* `plex_api.epg.get_countries_lineups()`: **Added**
* `plex_api.epg.get_country_regions()`: **Added**
* `plex_api.epg.list_lineups()`: **Added**
* `plex_api.live_tv.get_sessions()`: **Added**
* `plex_api.live_tv.get_live_tv_session()`: **Added**
* `plex_api.live_tv.get_session_playlist_index()`: **Added**
* `plex_api.live_tv.get_session_segment()`: **Added**
* `plex_api.log.write_log()`: **Added**
* `plex_api.log.write_message()`: **Added**
* `plex_api.log.enable_papertrail()`: **Added**
* `plex_api.devices.get_available_grabbers()`: **Added**
* `plex_api.devices.list_devices()`: **Added**
* `plex_api.devices.add_device()`: **Added**
* `plex_api.devices.discover_devices()`: **Added**
* `plex_api.devices.remove_device()`: **Added**
* `plex_api.devices.get_device_details()`: **Added**
* `plex_api.devices.modify_device()`: **Added**
* `plex_api.devices.set_channelmap()`: **Added**
* `plex_api.devices.get_devices_channels()`: **Added**
* `plex_api.devices.set_device_preferences()`: **Added**
* `plex_api.devices.stop_scan()`: **Added**
* `plex_api.devices.scan()`: **Added**
* `plex_api.devices.get_thumb()`: **Added**
* `plex_api.provider.list_providers()`: **Added**
* `plex_api.provider.add_provider()`: **Added**
* `plex_api.provider.refresh_providers()`: **Added**
* `plex_api.provider.delete_media_provider()`: **Added**
* `plex_api.subscriptions.get_all_subscriptions()`: **Added**
* `plex_api.subscriptions.create_subscription()`: **Added**
* `plex_api.subscriptions.process_subscriptions()`: **Added**
* `plex_api.subscriptions.get_scheduled_recordings()`: **Added**
* `plex_api.subscriptions.get_template()`: **Added**
* `plex_api.subscriptions.cancel_grab()`: **Added**
* `plex_api.subscriptions.delete_subscription()`: **Added**
* `plex_api.subscriptions.get_subscription()`: **Added**
* `plex_api.subscriptions.edit_subscription_preferences()`: **Added**
* `plex_api.subscriptions.reorder_subscription()`: **Added**
* `plex_api.transcoder.transcode_image()`: **Added**
* `plex_api.transcoder.make_decision()`: **Added**
* `plex_api.transcoder.trigger_fallback()`: **Added**
* `plex_api.transcoder.transcode_subtitles()`: **Added**
* `plex_api.transcoder.start_transcode_session()`: **Added**
* `plex_api.playlist.list_playlists()`: **Added**
* `plex_api.playlist.get_playlist()`: **Added**
* `plex_api.playlist.get_playlist_items()`: **Added**
* `plex_api.library_playlists.create_playlist()`: **Added**
* `plex_api.library_playlists.upload_playlist()`: **Added**
* `plex_api.library_playlists.delete_playlist()`: **Added**
* `plex_api.library_playlists.update_playlist()`: **Added**
* `plex_api.library_playlists.get_playlist_generators()`: **Added**
* `plex_api.library_playlists.clear_playlist_items()`: **Added**
* `plex_api.library_playlists.add_playlist_items()`: **Added**
* `plex_api.library_playlists.delete_playlist_item()`: **Added**
* `plex_api.library_playlists.get_playlist_generator()`: **Added**
* `plex_api.library_playlists.modify_playlist_generator()`: **Added**
* `plex_api.library_playlists.get_playlist_generator_items()`: **Added**
* `plex_api.library_playlists.move_playlist_item()`: **Added**
* `plex_api.library_playlists.refresh_playlist()`: **Added**
* `plex_api.play_queue.create_play_queue()`: **Added**
* `plex_api.play_queue.get_play_queue()`: **Added**
* `plex_api.play_queue.add_to_play_queue()`: **Added**
* `plex_api.play_queue.clear_play_queue()`: **Added**
* `plex_api.play_queue.reset_play_queue()`: **Added**
* `plex_api.play_queue.shuffle()`: **Added**
* `plex_api.play_queue.unshuffle()`: **Added**
* `plex_api.play_queue.delete_play_queue_item()`: **Added**
* `plex_api.play_queue.move_play_queue_item()`: **Added**
* `plex_api.ultra_blur.get_colors()`: **Added**
* `plex_api.ultra_blur.get_image()`: **Added**
* `plex_api.status.list_sessions()`: **Added**
* `plex_api.status.get_background_tasks()`: **Added**
* `plex_api.status.list_playback_history()`: **Added**
* `plex_api.status.terminate_session()`: **Added**
* `plex_api.status.delete_history()`: **Added**
* `plex_api.status.get_history_item()`: **Added**
* `plex_api.updater.check_updates()`: **Added**
* `plex_api.updater.get_updates_status()`: **Added**
* `plex_api.content.get_collection_items()`: **Added**
* `plex_api.content.get_metadata_item()`: **Added**
* `plex_api.content.get_albums()`: **Added**
* `plex_api.content.list_content()`: **Added**
* `plex_api.content.get_all_leaves()`: **Added**
* `plex_api.content.get_arts()`: **Added**
* `plex_api.content.get_categories()`: **Added**
* `plex_api.content.get_cluster()`: **Added**
* `plex_api.content.get_sonic_path()`: **Added**
* `plex_api.content.get_folders()`: **Added**
* `plex_api.content.list_moments()`: **Added**
* `plex_api.content.get_sonically_similar()`: **Added**
* `plex_api.content.get_collection_image()`: **Added**
* `plex_api.library_collections.add_collection_items()`: **Added**
* `plex_api.library_collections.delete_collection_item()`: **Added**
* `plex_api.library_collections.move_collection_item()`: **Added**
* `plex_api.server.get_server_capabilities()`: **Deleted** **Breaking** ⚠️
* `plex_api.server.get_server_preferences()`: **Deleted** **Breaking** ⚠️
* `plex_api.server.get_available_clients()`: **Deleted** **Breaking** ⚠️
* `plex_api.server.get_devices()`: **Deleted** **Breaking** ⚠️
* `plex_api.server.get-server-identity()`: **Deleted** **Breaking** ⚠️
* `plex_api.server.get_my_plex_account()`: **Deleted** **Breaking** ⚠️
* `plex_api.server.get_resized_photo()`: **Deleted** **Breaking** ⚠️
* `plex_api.server.get-media-providers()`: **Deleted** **Breaking** ⚠️
* `plex_api.server.get_server_list()`: **Deleted** **Breaking** ⚠️
* `plex_api.media.mark_played()`: **Deleted** **Breaking** ⚠️
* `plex_api.media.mark_unplayed()`: **Deleted** **Breaking** ⚠️
* `plex_api.media.update_play_progress()`: **Deleted** **Breaking** ⚠️
* `plex_api.media.get-banner-image()`: **Deleted** **Breaking** ⚠️
* `plex_api.media.get-thumb-image()`: **Deleted** **Breaking** ⚠️
* `plex_api.video.get_timeline()`: **Deleted** **Breaking** ⚠️
* `plex_api.video.start_universal_transcode()`: **Deleted** **Breaking** ⚠️
* `plex_api.activities.get_server_activities()`: **Deleted** **Breaking** ⚠️
* `plex_api.activities.cancel_server_activities()`: **Deleted** **Breaking** ⚠️
* `plex_api.butler.get_butler_tasks()`: **Deleted** **Breaking** ⚠️
* `plex_api.butler.start_all_tasks()`: **Deleted** **Breaking** ⚠️
* `plex_api.butler.stop_all_tasks()`: **Deleted** **Breaking** ⚠️
* `plex_api.plex.get_companions_data()`: **Deleted** **Breaking** ⚠️
* `plex_api.plex.get_user_friends()`: **Deleted** **Breaking** ⚠️
* `plex_api.plex.get_geo_data()`: **Deleted** **Breaking** ⚠️
* `plex_api.plex.get_home_data()`: **Deleted** **Breaking** ⚠️
* `plex_api.plex.get-server-resources()`: **Deleted** **Breaking** ⚠️
* `plex_api.plex.get_pin()`: **Deleted** **Breaking** ⚠️
* `plex_api.plex.get_token_by_pin_id()`: **Deleted** **Breaking** ⚠️
* `plex_api.hubs.get_global_hubs()`: **Deleted** **Breaking** ⚠️
* `plex_api.hubs.get-recently-added()`: **Deleted** **Breaking** ⚠️
* `plex_api.hubs.get_library_hubs()`: **Deleted** **Breaking** ⚠️
* `plex_api.search.perform_search()`: **Deleted** **Breaking** ⚠️
* `plex_api.search.perform_voice_search()`: **Deleted** **Breaking** ⚠️
* `plex_api.search.get_search_results()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get_file_hash()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-recently-added-library()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-all-libraries()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-library-details()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.delete_library()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-library-items()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-library-sections-all()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-refresh-library-metadata()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-search-library()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-genres-library()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-countries-library()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-actors-library()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-search-all-libraries()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-media-meta-data()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-media-arts()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.post-media-arts()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get-media-posters()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.post-media-poster()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get_metadata_children()`: **Deleted** **Breaking** ⚠️
* `plex_api.library.get_top_watched_content()`: **Deleted** **Breaking** ⚠️
* `plex_api.watchlist.get-watch-list()`: **Deleted** **Breaking** ⚠️
* `plex_api.log.log_line()`: **Deleted** **Breaking** ⚠️
* `plex_api.log.log_multi_line()`: **Deleted** **Breaking** ⚠️
* `plex_api.log.enable_paper_trail()`: **Deleted** **Breaking** ⚠️
* `plex_api.playlists.create_playlist()`: **Deleted** **Breaking** ⚠️
* `plex_api.playlists.get_playlists()`: **Deleted** **Breaking** ⚠️
* `plex_api.playlists.get_playlist()`: **Deleted** **Breaking** ⚠️
* `plex_api.playlists.delete_playlist()`: **Deleted** **Breaking** ⚠️
* `plex_api.playlists.update_playlist()`: **Deleted** **Breaking** ⚠️
* `plex_api.playlists.get_playlist_contents()`: **Deleted** **Breaking** ⚠️
* `plex_api.playlists.clear_playlist_contents()`: **Deleted** **Breaking** ⚠️
* `plex_api.playlists.add_playlist_contents()`: **Deleted** **Breaking** ⚠️
* `plex_api.playlists.upload_playlist()`: **Deleted** **Breaking** ⚠️
* `plex_api.authentication.get_transient_token()`: **Deleted** **Breaking** ⚠️
* `plex_api.authentication.get_source_connection_information()`: **Deleted** **Breaking** ⚠️
* `plex_api.authentication.get_token_details()`: **Deleted** **Breaking** ⚠️
* `plex_api.authentication.post-users-sign-in-data()`: **Deleted** **Breaking** ⚠️
* `plex_api.statistics.get_statistics()`: **Deleted** **Breaking** ⚠️
* `plex_api.statistics.get_resources_statistics()`: **Deleted** **Breaking** ⚠️
* `plex_api.statistics.get_bandwidth_statistics()`: **Deleted** **Breaking** ⚠️
* `plex_api.sessions.get_sessions()`: **Deleted** **Breaking** ⚠️
* `plex_api.sessions.get_session_history()`: **Deleted** **Breaking** ⚠️
* `plex_api.sessions.get_transcode_sessions()`: **Deleted** **Breaking** ⚠️
* `plex_api.sessions.stop_transcode_session()`: **Deleted** **Breaking** ⚠️
* `plex_api.updater.get_update_status()`: **Deleted** **Breaking** ⚠️
* `plex_api.updater.check_for_updates()`: **Deleted** **Breaking** ⚠️
* `plex_api.users.get-users()`: **Deleted** **Breaking** ⚠️
2025-10-12 06:48:43 +00:00

8.6 KiB
Raw Blame History

Playlist

(playlist)

Overview

Media playlists that can be created and played back

Available Operations

list_playlists

Gets a list of playlists and playlist folders for a user. General filters are permitted, such as sort=lastViewedAt:desc. A flat playlist list can be retrieved using type=15 to limit the collection to just playlists.

Example Usage

from plex_api_client import PlexAPI
from plex_api_client.models import components


with PlexAPI(
    accepts=components.Accepts.APPLICATION_XML,
    client_identifier="abc123",
    product="Plex for Roku",
    version="2.4.1",
    platform="Roku",
    platform_version="4.3 build 1057",
    device="Roku 3",
    model="4200X",
    device_vendor="Roku",
    device_name="Living Room TV",
    marketplace="googlePlay",
    token="<YOUR_API_KEY_HERE>",
) as plex_api:

    res = plex_api.playlist.list_playlists(request={})

    assert res.media_container_with_playlist_metadata is not None

    # Handle response
    print(res.media_container_with_playlist_metadata)

Parameters

Parameter Type Required Description
request operations.ListPlaylistsRequest ✔️ The request object to use for the request.
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.ListPlaylistsResponse

Errors

Error Type Status Code Content Type
errors.SDKError 4XX, 5XX */*

get_playlist

Gets detailed metadata for a playlist. A playlist for many purposes (rating, editing metadata, tagging), can be treated like a regular metadata item: Smart playlist details contain the content attribute. This is the content URI for the generator. This can then be parsed by a client to provide smart playlist editing.

Example Usage

from plex_api_client import PlexAPI
from plex_api_client.models import components


with PlexAPI(
    accepts=components.Accepts.APPLICATION_XML,
    client_identifier="abc123",
    product="Plex for Roku",
    version="2.4.1",
    platform="Roku",
    platform_version="4.3 build 1057",
    device="Roku 3",
    model="4200X",
    device_vendor="Roku",
    device_name="Living Room TV",
    marketplace="googlePlay",
    token="<YOUR_API_KEY_HERE>",
) as plex_api:

    res = plex_api.playlist.get_playlist(request={
        "playlist_id": 841953,
    })

    assert res.media_container_with_playlist_metadata is not None

    # Handle response
    print(res.media_container_with_playlist_metadata)

Parameters

Parameter Type Required Description
request operations.GetPlaylistRequest ✔️ The request object to use for the request.
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.GetPlaylistResponse

Errors

Error Type Status Code Content Type
errors.SDKError 4XX, 5XX */*

get_playlist_items

Gets the contents of a playlist. Should be paged by clients via standard mechanisms. By default leaves are returned (e.g. episodes, movies). In order to return other types you can use the type parameter. For example, you could use this to display a list of recently added albums vis a smart playlist. Note that for dumb playlists, items have a playlistItemID attribute which is used for deleting or moving items.

Example Usage

from plex_api_client import PlexAPI
from plex_api_client.models import components


with PlexAPI(
    accepts=components.Accepts.APPLICATION_XML,
    client_identifier="abc123",
    product="Plex for Roku",
    version="2.4.1",
    platform="Roku",
    platform_version="4.3 build 1057",
    device="Roku 3",
    model="4200X",
    device_vendor="Roku",
    device_name="Living Room TV",
    marketplace="googlePlay",
    token="<YOUR_API_KEY_HERE>",
) as plex_api:

    res = plex_api.playlist.get_playlist_items(request={
        "playlist_id": 118195,
    })

    assert res.media_container_with_metadata is not None

    # Handle response
    print(res.media_container_with_metadata)

Parameters

Parameter Type Required Description
request operations.GetPlaylistItemsRequest ✔️ The request object to use for the request.
retries Optional[utils.RetryConfig] Configuration to override the default retry behavior of the client.

Response

operations.GetPlaylistItemsResponse

Errors

Error Type Status Code Content Type
errors.SDKError 4XX, 5XX */*