Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 26 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand Down Expand Up @@ -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:

```
Expand Down Expand Up @@ -249,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.
Expand Down
2 changes: 1 addition & 1 deletion app/client/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion app/client/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "fireshare",
"version": "1.6.11",
"version": "1.6.12",
"private": true,
"dependencies": {
"@emotion/react": "^11.9.0",
Expand Down
2 changes: 1 addition & 1 deletion app/server/fireshare/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
8 changes: 5 additions & 3 deletions app/server/fireshare/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -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})")

Expand Down
4 changes: 2 additions & 2 deletions app/server/fireshare/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,5 @@
}
}

SUPPORTED_FILE_TYPES = ['mp4', 'mov', 'webm']
SUPPORTED_FILE_EXTENSIONS = ['.mp4', '.mov', '.webm']
SUPPORTED_FILE_TYPES = ['mp4', 'm4v', 'mov', 'webm']
SUPPORTED_FILE_EXTENSIONS = ['.mp4', '.m4v', '.mov', '.webm']
Loading