Solid 8181 Set-top Box Software Download Apr 2026
# Optional: log download request (serial, IP) return send_file( file_path, as_attachment=True, download_name=LATEST_FILE, mimetype='application/octet-stream' ) @app.route('/api/verify', methods=['POST']) def verify_md5(): data = request.get_json() uploaded_md5 = data.get("md5", "").strip() return jsonify({"match": uploaded_md5 == MD5_HASH})
loadVersion(); </script> </body> </html> solid8181-updater/ ├── app.py ├── firmware/ │ └── solid8181_fw_v2.1.4.bin ├── static/ │ └── index.html └── requirements.txt requirements.txt Solid 8181 Set-top Box Software Download
document.getElementById('downloadBtn').addEventListener('click', () => { const statusDiv = document.getElementById('status'); statusDiv.innerHTML = 'Starting download...'; // Trigger file download const link = document.createElement('a'); link.href = '/api/download'; link.download = ''; document.body.appendChild(link); link.click(); document.body.removeChild(link); statusDiv.innerHTML = '<span class="success">Download started. Check your Downloads folder.</span>'; }); # Optional: log download request (serial, IP) return
@app.route('/api/version', methods=['GET']) def get_version(): return jsonify({ "model": "Solid 8181", "latest_version": LATEST_VERSION, "current_stable": LATEST_VERSION, "release_date": "2025-03-20" }) # Optional: log download request (serial
@app.route('/api/download', methods=['GET']) def download_firmware(): file_path = os.path.join(FW_DIR, LATEST_FILE) if not os.path.exists(file_path): return jsonify({"error": "Firmware not found"}), 404
if == ' main ': app.run(host='0.0.0.0', port=5000) 🖥️ Frontend (HTML + JS) – User download interface <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Solid 8181 – Software Download</title> <style> body { font-family: Arial; max-width: 700px; margin: 40px auto; padding: 20px; } .box { border: 1px solid #ccc; padding: 20px; border-radius: 12px; background: #f9f9f9; } button { background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 8px; cursor: pointer; } .success { color: green; } .error { color: red; } </style> </head> <body> <div class="box"> <h2>Solid 8181 Set-top Box – Firmware Download</h2> <div id="versionInfo">Checking version...</div> <br> <button id="downloadBtn">⬇️ Download Latest Software</button> <div id="status"></div> <hr> <h3>Manual USB Upgrade Instructions</h3> <ol> <li>Download the firmware file above.</li> <li>Copy <code>solid8181_fw_v*.bin</code> to a FAT32 USB drive.</li> <li>Insert into Solid 8181 USB port.</li> <li>Go to Settings → System Update → USB Upgrade.</li> </ol> </div> <script> async function loadVersion() { try { const res = await fetch('/api/version'); const data = await res.json(); document.getElementById('versionInfo').innerHTML = ` <p><strong>Model:</strong> ${data.model}<br> <strong>Latest firmware:</strong> ${data.latest_version}<br> <strong>Released:</strong> ${data.release_date}</p> `; } catch (err) { document.getElementById('versionInfo').innerHTML = '<span class="error">Failed to load version</span>'; } }