# Playlist > God node · 33 connections · [/home/scheianu/digiserver-v2/app/models/playlist.py](file:///home/scheianu/digiserver-v2/app/models/playlist.py#L19) ## Call Trace Diagram ```mermaid sequenceDiagram participant P0 as Playlist participant P1 as Content participant P2 as Models package for digiserver-v2. participant P3 as PlayerEdit participant P4 as PlayerUser participant P5 as HTTPSConfig participant P6 as User participant P7 as Player participant P8 as ServerLog participant P9 as Group participant P10 as PlayerFeedback participant P11 as upload_media() participant P12 as log_action() participant P13 as .increment_version() participant P14 as process_presentation_file() participant P15 as process_video_file_extended() participant P16 as process_pdf_file() participant P17 as process_image_file() participant P18 as process_file_in_background() participant P19 as upload_content() participant P20 as add_weblink() participant P21 as add_weblink_to_playlist() participant P22 as Main Blueprint - Dashboard and Home Routes participant P23 as Health check endpoint participant P24 as Playlist model for managing content collections. participant P25 as Playlist model representing a collection of content. Attributes: participant P26 as String representation of Playlist. participant P27 as Increment playlist version for sync detection. participant P28 as Get content items ordered by position. participant P29 as Get number of players assigned to this playlist. participant P30 as Get number of content items in this playlist. participant P31 as Calculate total duration of all content in seconds. participant P32 as API blueprint for REST endpoints and player communication. participant P33 as Rate limiting decorator. Args: max_requests: Maximum number of participant P34 as Decorator to verify player authentication via auth code. participant P35 as API health check endpoint. participant P36 as Get server SSL certificate. participant P37 as Authenticate a player and return auth code and configuration. Request J participant P38 as Verify an auth code and return player information. Request JSON: participant P39 as Get playlist using hostname and quickconnect code (Kivy player compatible). participant P40 as Get playlist for a specific player. Requires player authentication via participant P41 as Get current playlist version for a player. Lightweight endpoint for pla participant P42 as Get cached playlist for a player based on assigned playlist. participant P43 as Receive feedback/status updates from players (Kivy player compatible). participant P44 as Get current status of a player (public endpoint for monitoring). participant P45 as Get progress of a file upload. participant P46 as Get system information and statistics. participant P47 as List all content with basic information. participant P48 as Get recent server logs. Query parameters: limit: Number of logs participant P49 as Receive edited media from player. Expected multipart/form-data: - i participant P50 as Test SSH connection to a remote host. Request JSON: hostname: T participant P51 as Deploy player code to a remote host via SSH. Request JSON: host participant P52 as Handle 404 errors in API. participant P53 as Handle 405 errors in API. participant P54 as Handle 500 errors in API. participant P55 as create_playlist() P0->>+ P1: uses P1-->>- P0: return P1->>+ P0: uses P0-->>- P1: return P1->>+ P2: uses P2-->>- P1: return P2->>+ P3: uses P3-->>- P2: return P2->>+ P4: uses P4-->>- P2: return P2->>+ P0: uses P0-->>- P2: return P2->>+ P5: uses P5-->>- P2: return P2->>+ P1: uses P1-->>- P2: return P2->>+ P6: uses P6-->>- P2: return P2->>+ P7: uses P7-->>- P2: return P2->>+ P8: uses P8-->>- P2: return P2->>+ P9: uses P9-->>- P2: return P2->>+ P10: uses P10-->>- P2: return P1->>+ P11: calls P11-->>- P1: return P11->>+ P12: calls P12-->>- P11: return P11->>+ P1: calls P1-->>- P11: return P11->>+ P13: calls P13-->>- P11: return P11->>+ P14: calls P14-->>- P11: return P11->>+ P15: calls P15-->>- P11: return P11->>+ P16: calls P16-->>- P11: return P11->>+ P17: calls P17-->>- P11: return P1->>+ P18: calls P18-->>- P1: return P1->>+ P19: calls P19-->>- P1: return P1->>+ P20: calls P20-->>- P1: return P1->>+ P21: calls P21-->>- P1: return P1->>+ P22: uses P22-->>- P1: return P1->>+ P23: uses P23-->>- P1: return P1->>+ P24: uses P24-->>- P1: return P1->>+ P25: uses P25-->>- P1: return P1->>+ P26: uses P26-->>- P1: return P1->>+ P27: uses P27-->>- P1: return P1->>+ P28: uses P28-->>- P1: return P1->>+ P29: uses P29-->>- P1: return P1->>+ P30: uses P30-->>- P1: return P1->>+ P31: uses P31-->>- P1: return P0->>+ P2: uses P2-->>- P0: return P0->>+ P32: uses P32-->>- P0: return P0->>+ P33: uses P33-->>- P0: return P0->>+ P34: uses P34-->>- P0: return P0->>+ P35: uses P35-->>- P0: return P0->>+ P36: uses P36-->>- P0: return P0->>+ P37: uses P37-->>- P0: return P0->>+ P38: uses P38-->>- P0: return P0->>+ P39: uses P39-->>- P0: return P0->>+ P40: uses P40-->>- P0: return P0->>+ P41: uses P41-->>- P0: return P0->>+ P42: uses P42-->>- P0: return P0->>+ P43: uses P43-->>- P0: return P0->>+ P44: uses P44-->>- P0: return P0->>+ P45: uses P45-->>- P0: return P0->>+ P46: uses P46-->>- P0: return P0->>+ P47: uses P47-->>- P0: return P0->>+ P48: uses P48-->>- P0: return P0->>+ P49: uses P49-->>- P0: return P0->>+ P50: uses P50-->>- P0: return P0->>+ P51: uses P51-->>- P0: return P0->>+ P52: uses P52-->>- P0: return P0->>+ P53: uses P53-->>- P0: return P0->>+ P54: uses P54-->>- P0: return P0->>+ P22: uses P22-->>- P0: return P0->>+ P23: uses P23-->>- P0: return P0->>+ P55: calls P55-->>- P0: return ``` ## Connections by Relation ### calls - [[create_playlist()]] `INFERRED` ### contains - [[playlist.py]] `EXTRACTED` ### method - [[.increment_version()]] `EXTRACTED` - [[.get_content_ordered()]] `EXTRACTED` - [[.__repr__()]] `EXTRACTED` ### rationale_for - [[Playlist model representing a collection of content. Attributes:]] `EXTRACTED` ### uses - [[Content]] `INFERRED` - [[Models package for digiserver-v2.]] `INFERRED` - [[API blueprint for REST endpoints and player communication.]] `INFERRED` - [[Rate limiting decorator. Args: max_requests: Maximum number of]] `INFERRED` - [[Decorator to verify player authentication via auth code.]] `INFERRED` - [[API health check endpoint.]] `INFERRED` - [[Get server SSL certificate.]] `INFERRED` - [[Authenticate a player and return auth code and configuration. Request J]] `INFERRED` - [[Verify an auth code and return player information. Request JSON:]] `INFERRED` - [[Get playlist using hostname and quickconnect code (Kivy player compatible).]] `INFERRED` - [[Get playlist for a specific player. Requires player authentication via]] `INFERRED` - [[Get current playlist version for a player. Lightweight endpoint for pla]] `INFERRED` - [[Get cached playlist for a player based on assigned playlist.]] `INFERRED` - [[Receive feedback/status updates from players (Kivy player compatible).]] `INFERRED` - [[Get current status of a player (public endpoint for monitoring).]] `INFERRED` - [[Get progress of a file upload.]] `INFERRED` - [[Get system information and statistics.]] `INFERRED` - [[List all content with basic information.]] `INFERRED` - [[Get recent server logs. Query parameters: limit: Number of logs]] `INFERRED` - [[Receive edited media from player. Expected multipart/form-data: - i]] `INFERRED` --- *Part of the graphify knowledge wiki. See [[index]] to navigate.*