+
+ </ng-template>
+ </ngb-tab>
+
+ <ngb-tab i18n-title title="Services">
+ <ng-template ngbTabContent>
+ <div i18n class="inner-form-title">Twitter</div>
+
+ <ng-container formGroupName="services">
+ <ng-container formGroupName="twitter">
+
+ <div class="form-group">
+ <label i18n for="signupLimit">Your Twitter username</label>
+ <my-help
+ helpType="custom" i18n-customHtml
+ customHtml="Indicates the Twitter account for the website or platform on which the content was published."
+ ></my-help>
+ <input
+ type="text" id="servicesTwitterUsername"
+ formControlName="username" [ngClass]="{ 'input-error': formErrors['services.twitter.username'] }"
+ >
+ <div *ngIf="formErrors.services.twitter.username" class="form-error">{{ formErrors.services.twitter.username }}</div>
+ </div>
+
+ <div class="form-group">
+ <my-peertube-checkbox
+ inputName="servicesTwitterWhitelisted" formControlName="whitelisted"
+ i18n-labelText labelText="Instance whitelisted by Twitter"
+ i18n-helpHtml helpHtml="If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<br />
+ If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.<br /><br />
+ Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on <a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'>https://cards-dev.twitter.com/validator</a> to see if you instance is whitelisted."
+ ></my-peertube-checkbox>
+ </div>
+
+ </ng-container>
+ </ng-container>
+
+ </ng-template>
+ </ngb-tab>
+
+ <ngb-tab i18n-title title="Advanced configuration">
+ <ng-template ngbTabContent>
+
+ <div i18n class="inner-form-title">Transcoding</div>
+
+ <ng-container formGroupName="transcoding">
+ <div class="form-group">
+ <my-peertube-checkbox
+ inputName="transcodingEnabled" formControlName="enabled"
+ i18n-labelText labelText="Transcoding enabled"
+ i18n-helpHtml helpHtml="If you disable transcoding, many videos from your users will not work!"
+ ></my-peertube-checkbox>
+ </div>
+
+ <ng-container *ngIf="isTranscodingEnabled()">
+
+ <div class="form-group">
+ <my-peertube-checkbox
+ inputName="transcodingAllowAdditionalExtensions" formControlName="allowAdditionalExtensions"
+ i18n-labelText labelText="Allow additional extensions"
+ i18n-helpHtml helpHtml="Allow your users to upload .mkv, .mov, .avi, .flv videos"
+ ></my-peertube-checkbox>
+ </div>
+
+ <div class="form-group">
+ <my-peertube-checkbox
+ inputName="transcodingAllowAudioFiles" formControlName="allowAudioFiles"
+ i18n-labelText labelText="Allow audio files upload"
+ i18n-helpHtml helpHtml="Allow your users to upload audio files that will be merged with the preview file on upload"
+ ></my-peertube-checkbox>
+ </div>
+
+ <div class="form-group">
+ <label i18n for="transcodingThreads">Transcoding threads</label>
+ <div class="peertube-select-container">
+ <select id="transcodingThreads" formControlName="threads">
+ <option *ngFor="let transcodingThreadOption of transcodingThreadOptions" [value]="transcodingThreadOption.value">
+ {{ transcodingThreadOption.label }}
+ </option>
+ </select>
+ </div>
+ <div *ngIf="formErrors.transcoding.threads" class="form-error">{{ formErrors.transcoding.threads }}</div>
+ </div>
+
+ <ng-container formGroupName="resolutions">
+ <div class="form-group" *ngFor="let resolution of resolutions">
+ <my-peertube-checkbox
+ [inputName]="getResolutionKey(resolution.id)" [formControlName]="resolution.id"
+ i18n-labelText labelText="Resolution {{resolution.label}} enabled"
+ ></my-peertube-checkbox>
+ </div>
+ </ng-container>
+
+ </ng-container>
+ </ng-container>
+
+ <div i18n class="inner-form-title">
+ Cache
+
+ <my-help
+ helpType="custom" i18n-customHtml
+ customHtml="Some files are not federated (previews, captions). We fetch them directly from the origin instance and cache them."
+ ></my-help>