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