After extensive investigation, we've confirmed that direct API uploads do not work on the 2018 Samsung Frame TV (UE55LS03N) with firmware T-KTM2DEUC-1341.2 and Art API version 0.97. All upload attempts via the samsungtvws library fail with error code -1, while the SmartThings mobile app successfully uploads images.
- TV Model: UE55LS03NXXC (2018 Frame TV, 18_KANTM2_FRAME)
- Firmware: T-KTM2DEUC-1341.2
- Art API Version: 0.97
- Resolution: 3840x2160
- Python Library: samsungtvws 3.0.3 (xchwarze fork)
- All other Art API functions work correctly (list, delete, select, get_current, etc.)
- Upload returns immediate error -1 from TV before any image data is transferred
- SmartThings mobile app successfully uploads images
- TV responds with:
{"error_code": "-1"}immediately upon receiving upload request
Tested multiple versions of the samsungtvws library:
- xchwarze 3.0.3 (latest)
- NickWaterton 3.0.5 (Frame-focused fork)
- Standard 2.6.0 (older version)
- Both sync and async APIs
Result: All versions fail with error -1
Tried various connection approaches:
- Different connection names ("SmartThings", "Pixel Pro", "DebugUploader")
- Fresh token deletion and re-authentication
- Different matte styles and parameters
- No matte parameter
- Various timeouts and delays
Result: All approaches fail with error -1
- TV: Ethernet (wired connection)
- Computer: WiFi
- Connection: Same router/subnet
Result: Upload fails
Based on community reports suggesting both devices need WiFi, changed to:
- TV: WiFi connection
- Computer: WiFi (same network)
- Connection: Same SSID and subnet
Result: Still fails with error -1
Captured network traffic during successful SmartThings upload to understand the communication pattern.
- Interface: WiFi (en0)
- Filter: Phone IP and TV IP
- Duration: Complete upload cycle via SmartThings app
Direct Communication Analysis:
TCP packets between phone and TV: 0
UDP packets between phone and TV: 0
Total packets between phone and TV: 0
Traffic Observed:
- mDNS discovery broadcasts (port 5353)
- SSDP/UPnP announcements (port 1900)
- No WebSocket connections (port 8001/8002)
- No HTTP/HTTPS connections between devices
- Zero direct device-to-device communication
SmartThings uses cloud-based upload, not direct local API:
- Mobile app uploads image to Samsung cloud servers (HTTPS)
- TV pulls image from Samsung cloud
- No local network communication for the actual image transfer
This explains why:
- ✅ SmartThings works (uses Samsung's cloud infrastructure)
- ❌ Direct API fails (Samsung has disabled/restricted it on this model)
The 2018 Frame TV firmware (T-KTM2DEUC-1341.2) with Art API 0.97 does not support direct local API uploads, despite supporting other Art API operations. Samsung appears to have:
- Intentionally restricted direct API uploads on older Frame models
- Routed all uploads through their cloud infrastructure for SmartThings
- Maintained other API functions (list, delete, select) for backward compatibility
xchwarze/samsung-tv-ws-api #130 reports the same issue:
- Same TV model (UE55LS03N)
- Same API version (0.97)
- Same firmware (T-KTM2DEUC-1341.2)
- Same error (-1 on upload)
Multiple users report upload issues with 2018-2019 Frame models, with common themes:
- WiFi-only requirement (both devices on WiFi, not Ethernet)
- Intermittent failures even when requirements met
- USB method recommended as workaround
Copy images to USB drive and plug into TV's One Connect box:
- Format USB drive as FAT32 or exFAT
- Create folder structure (optional)
- Copy JPEG/PNG files to USB
- Plug into One Connect box
- TV will detect and import images
Pros: Works reliably, supports bulk uploads Cons: Requires physical access to One Connect box
Continue using the Samsung SmartThings mobile app:
- Works via Samsung's cloud infrastructure
- Supports image upload with matte selection
- No API limitations
Pros: Works reliably, official support Cons: Requires mobile device, cloud-dependent, not scriptable
Temporary workaround reported by some users:
- Create WiFi hotspot on phone
- Connect TV to phone's hotspot
- Upload via SmartThings on same phone
- Reconnect both devices to home network
Pros: May work when other methods fail Cons: Complex setup, temporary solution
Given the findings, I recommend:
- Document the limitation in README with clear model/firmware compatibility notes
- Add USB upload guide as the primary method for 2018 models
- Keep API code for newer models that may support it
- Add pre-upload validation that checks API version and warns users of older models
- Use USB upload for reliable bulk uploads
- Use SmartThings app for occasional single images
- Don't expect API uploads to work on firmware 1341 / API 0.97
If API/scripted uploads are important:
- Check firmware version and API version before purchase
- Newer models (2020+) appear to have better API support
- Consider this limitation when evaluating the Frame TV
{
"request": "send_image",
"file_type": "jpg",
"connection_id": 486359100,
"d2d_mode": "socket",
"image_date": "2026:02:16 22:07:31",
"matte_id": "modern_warm",
"portrait_matte_id": "modern_warm",
"file_size": 3128955
}TV Response: {"error_code": "-1"} (immediate, before image data transfer)
tv = SamsungTVWS(host='TV_IP')
api_version = tv.art().get_api_version()
# Returns: "0.97" on affected modelsThe following approaches were attempted but did not resolve the issue:
- Checking for successful upload despite error -1
- Pre-setting art mode before upload
- Freeing up storage space
- Longer timeouts and delays
- Different image sizes and formats
- xchwarze/samsung-tv-ws-api #130 - Same TV model with identical symptoms
- Multiple Samsung Community forum threads about upload failures on 2018-2019 models
The 2018 Samsung Frame TV (UE55LS03N) with firmware 1341 and Art API 0.97 does not support direct local API uploads. This is a firmware limitation, not a bug in the samsungtvws library. Users with this model should use USB upload or the SmartThings app for uploading images.
Investigation conducted using packet capture analysis, multiple library versions, various configuration approaches, and community research. All sensitive information (IP addresses, device identifiers) should be redacted before posting publicly.