mirror of
https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer.git
synced 2026-03-01 11:21:12 +03:00
github files
This commit is contained in:
128
.github/CODE_OF_CONDUCT.md
vendored
Normal file
128
.github/CODE_OF_CONDUCT.md
vendored
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, religion, or sexual identity
|
||||||
|
and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
|
* Demonstrating empathy and kindness toward other people
|
||||||
|
* Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
* Giving and gracefully accepting constructive feedback
|
||||||
|
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
* Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery, and sexual attention or
|
||||||
|
advances of any kind
|
||||||
|
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or email
|
||||||
|
address, without their explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement at
|
||||||
|
patrick@madebypatrick.nl.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 2.0, available at
|
||||||
|
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||||
|
enforcement ladder](https://github.com/mozilla/diversity).
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
https://www.contributor-covenant.org/faq. Translations are available at
|
||||||
|
https://www.contributor-covenant.org/translations.
|
||||||
111
.github/CONTRIBUTING.md
vendored
Normal file
111
.github/CONTRIBUTING.md
vendored
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
# Contributing Guidelines
|
||||||
|
|
||||||
|
First off—thank you for your interest in contributing to **Samsung‑Jellyfin‑Installer**! This project exists thanks to community support and we welcome improvements, big or small. Whether you'd like to report a bug, suggest a feature, or contribute code, your help is appreciated.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
1. [How You Can Contribute](#how-you-can-contribute)
|
||||||
|
- Reporting Bugs
|
||||||
|
- Requesting Features
|
||||||
|
- Suggesting Documentation Updates
|
||||||
|
- Submitting Code Changes
|
||||||
|
2. [Getting Started](#getting-started)
|
||||||
|
3. [Code Style & Workflow](#code-style--workflow)
|
||||||
|
4. [Development Process](#development-process)
|
||||||
|
- Running Locally & Testing
|
||||||
|
- Staying Up to Date
|
||||||
|
5. [License](#license)
|
||||||
|
6. [Code of Conduct](#code-of-conduct)
|
||||||
|
7. [Contact & Support](#contact--support)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. How You Can Contribute
|
||||||
|
|
||||||
|
### Reporting Bugs
|
||||||
|
Please use the **Issues** tab to report bugs. Include:
|
||||||
|
- The version you're using (e.g. Stable v1.7.4, release date Sep 3, 2025)
|
||||||
|
- Your OS, .NET version, and TV model
|
||||||
|
- Steps to reproduce the issue, along with any error messages or logs
|
||||||
|
|
||||||
|
### Requesting Features
|
||||||
|
Submit new ideas or enhancements using Issues or through **Discussions**:
|
||||||
|
- Describe the use case and benefit
|
||||||
|
- Offer suggestions on how it could be implemented or designed
|
||||||
|
|
||||||
|
### Documentation Suggestions
|
||||||
|
Found something unclear in the README or wiki? Let us know!
|
||||||
|
- Submit improvements via pull request or issue
|
||||||
|
- We appreciate help with screenshots, formatting, or better explanations
|
||||||
|
|
||||||
|
### Submitting Code Changes (Pull Requests)
|
||||||
|
We welcome pull requests! Please:
|
||||||
|
- Follow the existing project structure (folders: `.github`, `Services`, `Views`, etc.)
|
||||||
|
- Keep code clean, concise, and well-commented
|
||||||
|
- Include tests or manual validation steps if applicable
|
||||||
|
- Fill out the PR template
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Getting Started
|
||||||
|
|
||||||
|
1. Fork the repository.
|
||||||
|
2. Clone your fork locally:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/your-username/Samsung-Jellyfin-Installer.git
|
||||||
|
```
|
||||||
|
3. Open the solution in Visual Studio or your preferred IDE. Ensure you have:
|
||||||
|
- Microsoft Edge WebView2 Runtime
|
||||||
|
- .NET SDK compatible with the project
|
||||||
|
- Tizen Web CLI and Certificate Manager (for end-to-end testing)
|
||||||
|
4. Run and explore the tool. Enhancements are welcome!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Code Style & Workflow
|
||||||
|
|
||||||
|
- Follow current C# naming conventions and file organization.
|
||||||
|
- For user interface updates, maintain consistency with existing XAML layouts.
|
||||||
|
- Keep commits focused and descriptive. Use messages like `Fix: …`, `Add: …`, `Refactor: …`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Development Process
|
||||||
|
|
||||||
|
### Running Locally & Testing
|
||||||
|
- The app scans your local network to detect compatible Samsung TVs.
|
||||||
|
- For Tizen 7+, a Samsung account is required for certificate generation.
|
||||||
|
- Test your changes thoroughly—try both “manually enter IP” and automatic detection.
|
||||||
|
|
||||||
|
### Staying Up to Date
|
||||||
|
- Periodically sync with upstream:
|
||||||
|
```bash
|
||||||
|
git remote add upstream https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer.git
|
||||||
|
git fetch upstream
|
||||||
|
git rebase upstream/master
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. License
|
||||||
|
|
||||||
|
This repository is licensed under the **MIT License**. By contributing, you agree that your work will be licensed under the same terms.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Code of Conduct
|
||||||
|
|
||||||
|
Please abide by our [Code of Conduct](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/blob/master/CODE_OF_CONDUCT.md). Maintain a respectful, welcoming environment for all contributors.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Contact & Support
|
||||||
|
|
||||||
|
- **Issues**: for bugs or feature requests
|
||||||
|
- **Discussions**: for broader conversations
|
||||||
|
- **Wiki**: for documentation
|
||||||
|
- **[Sponsor Page / ko-fi](https://ko-fi.com/patrickst)**: if you'd like to support the project financially
|
||||||
|
|
||||||
|
Thanks again for your contributions—together, we can make installation smoother and more reliable for Jellyfin users on Samsung Tizen TVs!
|
||||||
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ko_fi: patrickst
|
||||||
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
name: Feature Request
|
||||||
|
about: Suggest a new feature or improvement for the application
|
||||||
|
title: "[Feature] "
|
||||||
|
labels: enhancement, keep-alive
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Feature Description**
|
||||||
|
Please describe the feature you'd like to see.
|
||||||
|
|
||||||
|
**Why Is This Feature Useful?**
|
||||||
|
Explain why this feature is beneficial or how it improves the app.
|
||||||
|
|
||||||
|
**Additional Context**
|
||||||
|
Add any other context, screenshots, or mockups that help explain your request.
|
||||||
36
.github/ISSUE_TEMPLATE/generic-bug-report.md
vendored
Normal file
36
.github/ISSUE_TEMPLATE/generic-bug-report.md
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
name: Generic bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: "[Bug] "
|
||||||
|
labels: bug, keep-alive
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Have you checked the wiki?**
|
||||||
|
[Samsung Jellyfin Installer Wiki](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/wiki)
|
||||||
|
|
||||||
|
**Which version of the application did you use?**
|
||||||
|
(e.g., v1.2.3)
|
||||||
|
|
||||||
|
**Is your Samsung TV in developer mode?**
|
||||||
|
- Yes
|
||||||
|
- No
|
||||||
|
- Not sure
|
||||||
|
|
||||||
|
**What Tizen version is your TV running?**
|
||||||
|
(e.g., Tizen 5.0, 6.5, etc.)
|
||||||
|
|
||||||
|
**Was the Tizen CLI installed by the tool at the following location?**
|
||||||
|
`%LocalAppData%\Programs\TizenStudioCli`
|
||||||
|
- Yes
|
||||||
|
- No
|
||||||
|
- Not sure
|
||||||
|
|
||||||
|
**Operating system?**
|
||||||
|
- Windows
|
||||||
|
- Linux
|
||||||
|
- macOS
|
||||||
|
|
||||||
|
**Additional Context**
|
||||||
|
Add any other context or logs about the problem here.
|
||||||
36
.github/ISSUE_TEMPLATE/tizen-6--bug.md
vendored
Normal file
36
.github/ISSUE_TEMPLATE/tizen-6--bug.md
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
name: Tizen 7- Bug
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: "[Tizen 7-] [Bug] "
|
||||||
|
labels: bug, keep-alive, tizen 7-
|
||||||
|
assignees: PatrickSt1991
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Have you checked the wiki?**
|
||||||
|
[Samsung Jellyfin Installer Wiki](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/wiki)
|
||||||
|
|
||||||
|
**Which version of the application did you use?**
|
||||||
|
(e.g., v1.2.3)
|
||||||
|
|
||||||
|
**Is your Samsung TV in developer mode?**
|
||||||
|
- Yes
|
||||||
|
- No
|
||||||
|
- Not sure
|
||||||
|
|
||||||
|
**What Tizen version is your TV running?**
|
||||||
|
(e.g., Tizen 5.0, 6.5, etc.)
|
||||||
|
|
||||||
|
**Was the Tizen CLI installed by the tool at the following location?**
|
||||||
|
`%LocalAppData%\Programs\TizenStudioCli`
|
||||||
|
- Yes
|
||||||
|
- No
|
||||||
|
- Not sure
|
||||||
|
|
||||||
|
**Operating system?**
|
||||||
|
- Windows
|
||||||
|
- Linux
|
||||||
|
- macOS
|
||||||
|
|
||||||
|
**Additional Context**
|
||||||
|
Add any other context or logs about the problem here.
|
||||||
36
.github/ISSUE_TEMPLATE/tizen-6-5--bug.md
vendored
Normal file
36
.github/ISSUE_TEMPLATE/tizen-6-5--bug.md
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
name: Tizen 7+ Bug
|
||||||
|
about: Create a report to help us improve the application
|
||||||
|
title: "[Tizen 7+] [Bug] "
|
||||||
|
labels: bug, keep-alive, tizen 7+
|
||||||
|
assignees: PatrickSt1991
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Have you checked the wiki?**
|
||||||
|
[Samsung Jellyfin Installer Wiki](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/wiki)
|
||||||
|
|
||||||
|
**Which version of the application did you use?**
|
||||||
|
(e.g., v1.2.3)
|
||||||
|
|
||||||
|
**Is your Samsung TV in developer mode?**
|
||||||
|
- Yes
|
||||||
|
- No
|
||||||
|
- Not sure
|
||||||
|
|
||||||
|
**What Tizen version is your TV running?**
|
||||||
|
(e.g., Tizen 5.0, 6.5, etc.)
|
||||||
|
|
||||||
|
**Was the Tizen CLI installed by the tool at the following location?**
|
||||||
|
`%LocalAppData%\Programs\TizenStudioCli`
|
||||||
|
- Yes
|
||||||
|
- No
|
||||||
|
- Not sure
|
||||||
|
|
||||||
|
**Operating system?**
|
||||||
|
- Windows
|
||||||
|
- Linux
|
||||||
|
- macOS
|
||||||
|
|
||||||
|
**Additional Context**
|
||||||
|
Add any other context or logs about the problem here.
|
||||||
31
.github/SECURITY.md
vendored
Normal file
31
.github/SECURITY.md
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
If you discover a security vulnerability in **Samsung‑Jellyfin‑Installer**, please report it via the [GitHub Issues](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/issues) page.
|
||||||
|
|
||||||
|
Include as much information as possible:
|
||||||
|
- Version of the installer you are using
|
||||||
|
- Your OS and environment
|
||||||
|
- Steps to reproduce the issue
|
||||||
|
- Any logs or error messages
|
||||||
|
|
||||||
|
> Note: This project is primarily a GUI wrapper around the Tizen CLI. Vulnerabilities are most likely in the underlying CLI tool. When reporting, please clarify whether the issue is in the installer or the CLI itself.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
Please indicate the installer version when reporting security issues.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Security Updates
|
||||||
|
|
||||||
|
Security fixes will be addressed in regular releases. Users are encouraged to keep their installations up-to-date.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Responsible Disclosure
|
||||||
|
|
||||||
|
We appreciate responsible disclosure. Avoid publishing exploits publicly until the issue has been addressed to protect users.
|
||||||
31
.github/jellyfin-tizen-logo.svg
vendored
Normal file
31
.github/jellyfin-tizen-logo.svg
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Tizen buitenring -->
|
||||||
|
<circle cx="150" cy="150" r="140" fill="none" stroke="#2DC4EA" stroke-width="8" stroke-dasharray="345 20" transform="rotate(45 150 150)" />
|
||||||
|
|
||||||
|
<!-- Tizen stippen -->
|
||||||
|
<circle cx="150" cy="30" r="6" fill="#2DC4EA" />
|
||||||
|
<circle cx="270" cy="150" r="6" fill="#2DC4EA" />
|
||||||
|
|
||||||
|
<!-- Jellyfin buitenste cirkel -->
|
||||||
|
<circle cx="150" cy="150" r="90" fill="url(#jellyfinOuter)" />
|
||||||
|
|
||||||
|
<!-- Jellyfin binnenste cirkel -->
|
||||||
|
<circle cx="150" cy="150" r="60" fill="url(#jellyfinInner)" />
|
||||||
|
|
||||||
|
<!-- Jellyfin kern -->
|
||||||
|
<circle cx="150" cy="150" r="30" fill="white" />
|
||||||
|
|
||||||
|
<!-- Gradients -->
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="jellyfinOuter" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" stop-color="#00A4DC" />
|
||||||
|
<stop offset="100%" stop-color="#AA5CC3" />
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<linearGradient id="jellyfinInner" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" stop-color="#00A4DC" />
|
||||||
|
<stop offset="100%" stop-color="#5B2C83" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
32
.github/pull_request_template.md
vendored
Normal file
32
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Pull Request Template
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Please include a summary of the change and which issue is fixed. Also include relevant motivation and context.
|
||||||
|
|
||||||
|
Fixes # (issue number, if applicable)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Type of Change
|
||||||
|
|
||||||
|
- [ ] Bug fix (non-breaking change)
|
||||||
|
- [ ] New feature (non-breaking change)
|
||||||
|
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
|
||||||
|
- [ ] Documentation update
|
||||||
|
- [ ] Other (please describe):
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Checklist
|
||||||
|
|
||||||
|
- [ ] My code follows the existing project structure and style
|
||||||
|
- [ ] I have tested my changes manually
|
||||||
|
- [ ] I have added necessary documentation (if applicable)
|
||||||
|
- [ ] I have verified that the installer still works with the underlying CLI
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Additional Notes
|
||||||
|
|
||||||
|
Any other information that reviewers should know, including limitations, concerns, or context about the change.
|
||||||
22
.github/workflows/close-stale-issues.yml
vendored
Normal file
22
.github/workflows/close-stale-issues.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
name: Close stale issues
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * *' # runs daily at midnight UTC
|
||||||
|
workflow_dispatch: # allows manual triggering
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
stale:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/stale@v9
|
||||||
|
with:
|
||||||
|
stale-issue-message: 'This issue has been automatically marked as stale due to inactivity. It will be closed in 24 hours if no further activity occurs.'
|
||||||
|
stale-issue-label: 'stale'
|
||||||
|
days-before-stale: 4
|
||||||
|
days-before-close: 1
|
||||||
|
exempt-issue-labels: 'keep-alive'
|
||||||
88
.github/workflows/update-version-table.yml
vendored
Normal file
88
.github/workflows/update-version-table.yml
vendored
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
name: Update Version Table in README
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 */6 * * *"
|
||||||
|
workflow_dispatch:
|
||||||
|
jobs:
|
||||||
|
update-readme:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Fetch latest releases
|
||||||
|
id: releases
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const releases = await github.rest.repos.listReleases({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
});
|
||||||
|
const stable = releases.data.find(r => !r.prerelease && !r.draft && r.tag_name.startsWith("v"));
|
||||||
|
const beta = releases.data.find(r => r.prerelease && !r.draft && r.tag_name.startsWith("v"));
|
||||||
|
|
||||||
|
// Check if beta is based on the same version as stable (e.g., 1.6.1 vs 1.6.1-beta)
|
||||||
|
const isSameBaseVersion = stable && beta &&
|
||||||
|
beta.tag_name.startsWith(stable.tag_name + '-');
|
||||||
|
|
||||||
|
// Check if beta its version is lower than stable
|
||||||
|
const isBetaOlder = stable && beta && beta.tag_name < stable.tag_name;
|
||||||
|
|
||||||
|
const result = {
|
||||||
|
stableTag: stable?.tag_name ?? "N/A",
|
||||||
|
stableUrl: stable?.html_url ?? "#",
|
||||||
|
betaTag: (isSameBaseVersion || isBetaOlder) ? "N/A" : (beta?.tag_name ?? "N/A"),
|
||||||
|
betaUrl: (isSameBaseVersion || isBetaOlder) ? "#" : (beta?.html_url ?? "#")
|
||||||
|
};
|
||||||
|
console.log('Release info:', result);
|
||||||
|
return result;
|
||||||
|
- name: Set version info as env vars
|
||||||
|
run: |
|
||||||
|
echo 'STABLE_TAG=${{ fromJson(steps.releases.outputs.result).stableTag }}' >> $GITHUB_ENV
|
||||||
|
echo 'STABLE_URL=${{ fromJson(steps.releases.outputs.result).stableUrl }}' >> $GITHUB_ENV
|
||||||
|
echo 'BETA_TAG=${{ fromJson(steps.releases.outputs.result).betaTag }}' >> $GITHUB_ENV
|
||||||
|
echo 'BETA_URL=${{ fromJson(steps.releases.outputs.result).betaUrl }}' >> $GITHUB_ENV
|
||||||
|
- name: Generate version table markdown
|
||||||
|
run: |
|
||||||
|
cat <<EOF > version_table.md
|
||||||
|
| Channel | Version | Notes |
|
||||||
|
|------------|----------------------------------------|--------------------------------------------|
|
||||||
|
| **Stable** | [$STABLE_TAG]($STABLE_URL) | Recommended for most users |
|
||||||
|
| **Beta** | [$BETA_TAG]($BETA_URL) | Includes new features, may be less stable |
|
||||||
|
EOF
|
||||||
|
- name: Inject version table into README
|
||||||
|
run: |
|
||||||
|
if ! grep -q "<!-- versions:start -->" README.md; then
|
||||||
|
echo "Warning: <!-- versions:start --> marker not found in README.md"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create the updated README
|
||||||
|
awk '
|
||||||
|
BEGIN { in_block=0 }
|
||||||
|
/<!-- versions:start -->/ {
|
||||||
|
print;
|
||||||
|
print "";
|
||||||
|
# Read and print the version table
|
||||||
|
system("cat version_table.md");
|
||||||
|
print "";
|
||||||
|
in_block=1;
|
||||||
|
next
|
||||||
|
}
|
||||||
|
/<!-- versions:end -->/ { in_block=0; print; next }
|
||||||
|
!in_block { print }
|
||||||
|
' README.md > README.tmp && mv README.tmp README.md
|
||||||
|
- name: Commit and push if changed
|
||||||
|
run: |
|
||||||
|
git config --local user.name "github-actions[bot]"
|
||||||
|
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||||
|
git add README.md
|
||||||
|
if git diff --cached --quiet; then
|
||||||
|
echo "No changes to commit"
|
||||||
|
else
|
||||||
|
git commit -m "chore: update version table in README [skip ci]"
|
||||||
|
git push
|
||||||
|
fi
|
||||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Patrick Stel
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
171
README.md
Normal file
171
README.md
Normal file
@@ -0,0 +1,171 @@
|
|||||||
|
# Jellyfin 2 Samsung
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/blob/master/.github/jellyfin-tizen-logo.svg" width="250" height="250" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<p>A simple tool for installing <strong>Jellyfin</strong> on your <strong>Samsung Smart TV</strong> — quickly and effortlessly.</p>
|
||||||
|
|
||||||
|
<img src="https://img.shields.io/badge/✅_Supports_all_Tizen_versions-blue?style=for-the-badge" />
|
||||||
|
<img src="https://img.shields.io/badge/😤_Tired_of_the_certificate_error%3F-You're_in_the_right_place!-brightgreen?style=for-the-badge" />
|
||||||
|
<a href="https://discord.gg/7mga3zh8Cv"><img src="https://img.shields.io/badge/Ask%20it%20on%20Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white" /></a>
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
Huge thanks to <a href="https://github.com/jeppevinkel/jellyfin-tizen-builds">jeppevinkel</a> for providing the Jellyfin Tizen `.wgt` builds — super helpful and much appreciated!
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔥 [Check out the official page for Jellyfin 2 Samsung](https://patrickst1991.github.io/Samsung-Jellyfin-Installer/)
|
||||||
|
|
||||||
|
## 📦 Current Versions
|
||||||
|
|
||||||
|
<!-- versions:start -->
|
||||||
|
|
||||||
|
| Channel | Version | Notes |
|
||||||
|
|------------|----------------------------------------|--------------------------------------------|
|
||||||
|
| **Stable** | [v1.7.9](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/releases/tag/v1.7.9) | Recommended for most users |
|
||||||
|
| **Beta** | [v1.8.0-beta-2](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/releases/tag/v1.8.0-beta-2) | Includes new features, may be less stable |
|
||||||
|
|
||||||
|
<!-- versions:end -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[](https://ko-fi.com/M4M71JOT9R)
|
||||||
|
|
||||||
|
## 🚀 How It Works
|
||||||
|
---
|
||||||
|
⚠️ On macOS, launch the app via the run_macos.sh shell script
|
||||||
|
---
|
||||||
|
### 1. Launch the Tool
|
||||||
|

|
||||||
|
The tool automatically scans your local network for compatible Samsung Smart TVs.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. Select a Release
|
||||||
|
<img width="536" height="368" alt="image" src="https://github.com/user-attachments/assets/083b92d3-b09a-440f-95a1-a1fe30c83576" />
|
||||||
|
|
||||||
|
Choose the desired Jellyfin release.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. Pick a Version
|
||||||
|
<img width="536" height="368" alt="image" src="https://github.com/user-attachments/assets/68b2f5cf-9e2d-4963-856f-bc45995ed8fe" />
|
||||||
|
|
||||||
|
Select the specific Jellyfin version you’d like to install.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. Select Your TV
|
||||||
|
<img width="536" height="368" alt="image" src="https://github.com/user-attachments/assets/720545a4-45b7-438f-9b07-a6fec1d67ea5" />
|
||||||
|
|
||||||
|
The tool lists all detected Samsung TVs. You can also manually enter an IP if your TV isn’t found.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. Sit Back and Watch the Magic ✨
|
||||||
|
<img width="536" height="368" alt="image" src="https://github.com/user-attachments/assets/56d77990-d6c8-47ba-8d8b-2dfe57d658c5" />
|
||||||
|
|
||||||
|
Once started, the installer takes care of everything else automatically.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### ⚠️ Special Notes for Tizen 7+
|
||||||
|
|
||||||
|
<img src="https://github.com/user-attachments/assets/b32a5873-a9d5-4f1e-9266-69f33961917f" alt="Tizen Email" width="400">
|
||||||
|
<img src="https://github.com/user-attachments/assets/9ad45a0a-f091-4eb6-94e8-eb0f381816d2" alt="Tizen Password" width="400">
|
||||||
|
|
||||||
|
Tizen 7+ requires a **Samsung account login** during the install. This step is necessary for generating and exchanging the security certificates used for app installation.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ Settings
|
||||||
|
|
||||||
|
### Language
|
||||||
|
<img width="536" height="443" alt="image" src="https://github.com/user-attachments/assets/68bd8a74-785e-4edb-9075-73991c42ac39" />
|
||||||
|
|
||||||
|
Select your preferred language.
|
||||||
|
|
||||||
|
### Certificate
|
||||||
|
<img width="536" height="443" alt="image" src="https://github.com/user-attachments/assets/252e9dfb-fbd9-41df-a5ac-a67d51201ab4" />
|
||||||
|
|
||||||
|
Choose an existing certificate or let the tool generate a new one automatically.
|
||||||
|
|
||||||
|
### Advanced Options
|
||||||
|
<img width="536" height="443" alt="image" src="https://github.com/user-attachments/assets/c297f7e3-19a9-44c6-81c1-1c53116fa1b3" />
|
||||||
|
|
||||||
|
- **Custom WGT:** Upload your own `.wgt` file(s) (randomizes the package name to allow side-by-side installs).
|
||||||
|
- **Remember IPs:** Save a manually entered IP when your device isn’t found via scan (one IP at a time).
|
||||||
|
- **Remove Old Jellyfin:** Attempts to uninstall previous versions before installation (not supported on all TVs).
|
||||||
|
- **Force Samsung Login:** Force the tool to login in order to forcefully create a new certificate.
|
||||||
|
- **Right-to-left Reading:** Languages that are right-to-left need to have the IP inverted in order for Tizen Studio to work (192.168.1.2 -> 2.1.168.192).
|
||||||
|
- **Jellyfin Config:** Lets you set your Jellyfin App configuration in advance, so once the app is installed, you won’t need to configure it on the TV.
|
||||||
|
|
||||||
|
## 📝 Jellyfin Config
|
||||||
|
<img width="510" height="283" alt="image" src="https://github.com/user-attachments/assets/8296671f-2fbb-4d7a-b1a9-d2db0228b48e" />
|
||||||
|
|
||||||
|
Update Mode consists of:
|
||||||
|
|
||||||
|
| Type | Requirements |
|
||||||
|
|------|--------------|
|
||||||
|
| None | - |
|
||||||
|
| Server Settings | Server IP and port |
|
||||||
|
| Browser Settings | Server IP and port, API Key and Jellyfin user selection |
|
||||||
|
| User Settings | Server IP and port, API Key and Jellyfin user selection |
|
||||||
|
| Server & Browser Settings | Server IP and port, API Key and Jellyfin user selection |
|
||||||
|
| Server & Users Settings | Server IP and port, API Key and Jellyfin user selection |
|
||||||
|
| Browser & User Settings | Server IP and port, API Key and Jellyfin user selection |
|
||||||
|
| All Settings | Server IP and port, API Key and Jellyfin user selection |
|
||||||
|
|
||||||
|
### Server Settings
|
||||||
|
<img width="483" height="219" alt="image" src="https://github.com/user-attachments/assets/f6e6a72f-35e4-4027-9a9d-f94632a851cd" />
|
||||||
|
|
||||||
|
This lets you set the Jellyfin server IP address in the config file, so the app doesn't have to search for the server.
|
||||||
|
- Fill in the Address information; Server IP and Port.
|
||||||
|
|
||||||
|
### Browser Settings
|
||||||
|
<img width="482" height="510" alt="image" src="https://github.com/user-attachments/assets/25e8052d17cb" />
|
||||||
|
|
||||||
|
**Requirements: API Key and Jellyfin User selection**
|
||||||
|
This lets you set the browser-specific information for the chosen user(s) like Theme selection, Skip Intro etc. Jellyfin saves this information in your browser.
|
||||||
|
|
||||||
|
### User Settings
|
||||||
|
<img width="484" height="268" alt="image" src="https://github.com/user-attachments/assets/ba09248f-a7e1-4021-a719-8f1cc7a63676" />
|
||||||
|
|
||||||
|
**Requirements: API Key and Jellyfin User selection**
|
||||||
|
This lets you set all the Jellyfin user specifics for the chosen user(s) like Auto Login, Subtitle Mode etc. Jellyfin saves this on its server.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ Requirements
|
||||||
|
|
||||||
|
Before getting started, ensure you have the following:
|
||||||
|
|
||||||
|
- A **Samsung Tizen Smart TV** with **Developer Mode enabled**
|
||||||
|
- **Tizen Web CLI** installed
|
||||||
|
- **Certificate Manager**
|
||||||
|
- **Microsoft Edge WebView2 Runtime**
|
||||||
|
- A valid **[Samsung Account](https://account.samsung.com/iam/signup)** (required for Tizen 7+)
|
||||||
|
|
||||||
|
> ℹ️ Don’t worry—the installer checks for missing dependencies and guides you through installation if needed.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ Support, Feedback & Wiki
|
||||||
|
|
||||||
|
Need help or want to report a bug?
|
||||||
|
👉 [Open an issue](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/issues)
|
||||||
|
📖 [Check the wiki](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/wiki)
|
||||||
|
|
||||||
|
Got an idea for improvement?
|
||||||
|
💡 Share it on the [Discussions board](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/discussions)
|
||||||
|
or [submit a feature request](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/issues)
|
||||||
|
|
||||||
|
We welcome all contributions and feedback to improve the experience for everyone!
|
||||||
1
docs/assets/index-DWoMBZeR.css
Normal file
1
docs/assets/index-DWoMBZeR.css
Normal file
File diff suppressed because one or more lines are too long
21
docs/assets/index-yNQjIQ2n.js
Normal file
21
docs/assets/index-yNQjIQ2n.js
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/favicon.ico
Normal file
BIN
docs/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 115 KiB |
14
docs/index.html
Normal file
14
docs/index.html
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link rel="icon" href="/Samsung-Jellyfin-Installer/favicon.ico">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Jellyfin 2 Samsung</title>
|
||||||
|
<script type="module" crossorigin src="/Samsung-Jellyfin-Installer/assets/index-yNQjIQ2n.js"></script>
|
||||||
|
<link rel="stylesheet" crossorigin href="/Samsung-Jellyfin-Installer/assets/index-DWoMBZeR.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
jellyfin.ico
Normal file
BIN
jellyfin.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Reference in New Issue
Block a user