From fdb15cbd4f782a34ae075ae2e5113e2dfa71fcc6 Mon Sep 17 00:00:00 2001 From: Shane Israel Date: Mon, 18 May 2026 19:29:48 -0600 Subject: [PATCH 1/6] updated readme --- README.md | 17 ++++++++++++++++- app/server/fireshare/constants.py | 4 ++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 17bf6e20..098110c2 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ If Fireshare is useful to you, [GitHub Sponsors](https://github.com/sponsors/Sha - Share videos through unique links - Public / private feeds (private is link-only) -- [video transcoding with CPU or GPU](#transcoding-optional) +- [Video transcoding with CPU or GPU](#transcoding-optional) - Password protected videos - Game-based organization with cover art - Mobile device support @@ -54,6 +54,19 @@ If Fireshare is useful to you, [GitHub Sponsors](https://github.com/sponsors/Sha - RSS feed for new public videos - [LDAP support](./docs/LDAP.md) +## Supported Video Formats + +| Container | Extension | Notes | +| ----------- | --------- | ----------------------------------------- | +| MP4 | `.mp4` | Most compatible, recommended | +| MP4 (Apple) | `.m4v` | Identical to MP4, common on Apple devices | +| QuickTime | `.mov` | Common on macOS / iOS | +| WebM | `.webm` | Open format, browser-native | + +**Supported encodings:** H.264 (AVC), H.265 (HEVC), AV1, VP9. + +Files must be in a supported format because the original file is always served directly to the viewer. Transcoding (when enabled) only generates additional lower-quality versions for adaptive streaming; the original is never modified. + ## Navigation - [Installation](#installation) @@ -176,6 +189,8 @@ See [LDAP.md](./docs/LDAP.md) for setup instructions. ### Transcoding (Optional) +When enabled, Fireshare will create lower quality versions of your original supported file type videos. Your viewers can then choose to play your videos at lower qualities that their internet can handle. Fireshare will also attempt to automatically downgrade the quality of a viewer who is constantly buffering. + Transcoding is off by default. To enable it, set the following environment variables: ``` diff --git a/app/server/fireshare/constants.py b/app/server/fireshare/constants.py index c5e7fd90..abed0201 100644 --- a/app/server/fireshare/constants.py +++ b/app/server/fireshare/constants.py @@ -43,5 +43,5 @@ } } -SUPPORTED_FILE_TYPES = ['mp4', 'mov', 'webm'] -SUPPORTED_FILE_EXTENSIONS = ['.mp4', '.mov', '.webm'] \ No newline at end of file +SUPPORTED_FILE_TYPES = ['mp4', 'm4v', 'mov', 'webm'] +SUPPORTED_FILE_EXTENSIONS = ['.mp4', '.m4v', '.mov', '.webm'] \ No newline at end of file From 0d137aadae8d63eefa863a58358ec2a74fe0abb5 Mon Sep 17 00:00:00 2001 From: Shane Israel Date: Mon, 18 May 2026 19:38:31 -0600 Subject: [PATCH 2/6] readme updates --- README.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 098110c2..10b2f8c1 100644 --- a/README.md +++ b/README.md @@ -264,14 +264,19 @@ See [EnvironmentVariables.md](./docs/EnvironmentVariables.md) for the full list Contributions are welcome. For larger changes, open an issue first to align on scope. -1. Fork the repository -2. Create a branch from `develop` -3. Commit your changes -4. Rebase on latest `develop` -5. Open a pull request to `develop` +1. Know how to code! **I DO NOT WANT VIBE CODERS SUBMITTING PRs** + AI assisted coding is fine if you can read, understand, and validate AI code. + _Asking AI to review itself doesn't count as reading, understanding, and validating AI code._ +2. Fork the repository +3. Create a branch from `develop` +4. Commit your changes +5. Rebase on latest `develop` +6. Open a pull request to `develop` For issues and feature requests, visit the [issue tracker](https://github.com/ShaneIsrael/fireshare/issues). +Please DO NOT open a pull request for a feature or addition that was not previously discussed with me. Pull requests that do this will be automatically closed. + ### Database Changes If you update models, create a migration and review it before opening a pull request. From f29358adf1c3f62ca876fdfee6367ff40fe52356 Mon Sep 17 00:00:00 2001 From: Shane Israel Date: Mon, 18 May 2026 19:39:50 -0600 Subject: [PATCH 3/6] readme updates --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 10b2f8c1..c0b53251 100644 --- a/README.md +++ b/README.md @@ -275,7 +275,7 @@ Contributions are welcome. For larger changes, open an issue first to align on s For issues and feature requests, visit the [issue tracker](https://github.com/ShaneIsrael/fireshare/issues). -Please DO NOT open a pull request for a feature or addition that was not previously discussed with me. Pull requests that do this will be automatically closed. +**Please DO NOT open a pull request for a feature or addition that was not previously discussed with me. Pull requests that do this will be automatically closed.** ### Database Changes From 370796dc31fd3528131c3af0703f70dd8103c348 Mon Sep 17 00:00:00 2001 From: Shane Israel Date: Fri, 22 May 2026 23:19:00 -0600 Subject: [PATCH 4/6] fix: skip duplicate VideoGameLink insert in scan_video when folder rule matches Co-Authored-By: Claude Sonnet 4.6 --- app/server/fireshare/cli.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/server/fireshare/cli.py b/app/server/fireshare/cli.py index 23f24f18..a8592033 100755 --- a/app/server/fireshare/cli.py +++ b/app/server/fireshare/cli.py @@ -471,9 +471,11 @@ def scan_video(ctx, path, tag_ids, game_id, title): folder = parts[0] folder_rule = FolderRule.query.filter_by(folder_path=folder).first() if folder_rule: - link = VideoGameLink(video_id=v.video_id, game_id=folder_rule.game_id, created_at=datetime.utcnow()) - db.session.add(link) - db.session.commit() + existing = VideoGameLink.query.filter_by(video_id=v.video_id, game_id=folder_rule.game_id).first() + if not existing: + link = VideoGameLink(video_id=v.video_id, game_id=folder_rule.game_id, created_at=datetime.utcnow()) + db.session.add(link) + db.session.commit() auto_tagged = True logger.info(f"[Folder Rule] Auto-tagged {v.video_id} to game {folder_rule.game_id} (folder: {folder})") From f273ab29b340263695c6b2a71053f93d20d4afba Mon Sep 17 00:00:00 2001 From: Shane Israel Date: Fri, 22 May 2026 23:22:21 -0600 Subject: [PATCH 5/6] suppress default credentials warning when LDAP auth is enabled --- app/server/fireshare/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/server/fireshare/__init__.py b/app/server/fireshare/__init__.py index 2ed64479..e801fd24 100644 --- a/app/server/fireshare/__init__.py +++ b/app/server/fireshare/__init__.py @@ -184,7 +184,7 @@ def create_app(init_schedule=False): app.config['MINUTES_BETWEEN_VIDEO_SCANS'] = int(os.getenv('MINUTES_BETWEEN_VIDEO_SCANS', '5')) app.config['WARNINGS'] = [] - if (app.config['ADMIN_PASSWORD'] and app.config['ADMIN_USERNAME'] == "admin") and app.config["DISABLE_ADMINCREATE"] == False: + if (app.config['ADMIN_PASSWORD'] and app.config['ADMIN_USERNAME'] == "admin") and app.config["DISABLE_ADMINCREATE"] == False and not app.config['LDAP_ENABLE']: stdPasswordWarning = "You are using the Default Login-Credentials, please consider changing it." app.config['WARNINGS'].append(stdPasswordWarning) logger.warning(stdPasswordWarning) From 91739ec92e33b5c3ed62bda36e83baca50b489dd Mon Sep 17 00:00:00 2001 From: Shane Israel Date: Fri, 22 May 2026 23:22:44 -0600 Subject: [PATCH 6/6] bump version --- app/client/package-lock.json | 2 +- app/client/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/client/package-lock.json b/app/client/package-lock.json index 4eab2f57..9054317f 100644 --- a/app/client/package-lock.json +++ b/app/client/package-lock.json @@ -1,6 +1,6 @@ { "name": "fireshare", - "version": "1.6.10", + "version": "1.6.12", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/app/client/package.json b/app/client/package.json index ba99922f..6485dddd 100644 --- a/app/client/package.json +++ b/app/client/package.json @@ -1,6 +1,6 @@ { "name": "fireshare", - "version": "1.6.11", + "version": "1.6.12", "private": true, "dependencies": { "@emotion/react": "^11.9.0",