Building a Private Video Sharing Platform Based on PeerTube (Part 2)
This article was last updated 287 days ago. The information within may have evolved or changed; if anything is outdated or broken, please feel free to leave a message in the comments section.
Article Abstract
This article details the configuration process of building a private video sharing platform based on PeerTube, covering initialization settings, interface language adjustment, transcoding parameter optimization, user permission management, and video publishing specifications. It focuses on analyzing the impact of the transcoding function on video compatibility, recommending the enablement of dual-resolution transcoding at 720p/1080p to balance performance and image quality, while achieving permission isolation by creating dedicated accounts. Finally, through features such as privacy setting classification, playlist embedding, and QR code generation, controlled sharing of video content is achieved, meeting the dual needs of content autonomy and dissemination efficiency in private deployment scenarios.
Qwen3-14B · 2026-06-18

Initialize PeerTube

Change interface language

Click ”root” - “interface” in the upper left corner:

image.png

Select Simplified Chinese in the subsequent language selection box:
image.png

Several important options

Help share the video currently playing

image.png

This option will also store your video via WebTorrent on other PeerTube servers set up by others who have also checked this option. In theory, when others play this video, they can play it from multiple sources. However, after enabling this option, it might actually be slower than connecting directly to you, because it is highly likely that you are the only one with this source, in which case it would be better to play directly from you. Therefore, it is recommended not to check this option.

Enable registration

image.png

If you want your PeerTube server to be open for others to register and upload videos just like YouTube, you can turn on this option.

Video import

image.png

If you need to import videos from other video websites using URLs, you need to check the relevant options here.

Search and federation

image.png

These 2 options both involve the relationship between your PeerTube and PeerTube servers set up by others. If you just want to be a quiet, independent site, then it is right not to select any of these options.

Transcoding

image.png

The options here are quite important. If the hardware building PeerTube is not bad, it is recommended to enable transcoding. Otherwise, some browsers will not be able to play the video if they do not have the corresponding plugins installed to play the source video. I am using an M1 Mac mini, and it feels like a 400MB MV takes less than 10 minutes to finish transcoding. Of course, if it is a movie, it is hard to say how long it will take. It is recommended not to check the option to enable WebTorrent; playing directly using HLS is the fastest. As for the resolutions below, I think having 720p and 1080p is sufficient under normal circumstances. This way, transcoding will only generate files for 2 resolutions, and the time will be shorter.
image.png

I won't go into detail about the number of transcoding threads, as it is written very clearly. The ”Enable remote runners for VOD” option above is quite interesting; it means you can use remote runners to help decode. I will look into this when I have time.

Live streaming

image.png

If you have this need, please research it yourself. I don't have much need for it, so I won't bother, but this requires mapping port 1935 for RTMP use.

Administration - Plugins/Themes

image.png

The plugins that are actually somewhat useful are these two: ”privacysettings” and ”transcoding-custom-quality”. The former can set all videos to be used within the site by default, and the latter can set the default quality of the default transcoded videos:
image.png

Actually, the default "good" is fine, so it doesn't really matter whether you install these 2 plugins or not.

Publish video

Note: For security reasons, do not use the root account to publish videos directly. Create a new account specifically for publishing videos.

Create a new account

“Administration” - “Overview” - “Create User”:

image.png

The following interface appears:
image.png

Just fill in the relevant information according to the prompts. Pay attention to the channel name. Create a channel here first, as subsequently published videos must reside in a channel. For example, I created an "mv" channel, and all published MVs are located in this channel.

Note the option in the red box below: ”User bypasses video validation by moderators”. By default, this option is not checked, which means videos published by this user need to be reviewed by an administrator. If it is just you, there is no need for review, so just check this option. Finally, click the ”Create User” button at the very bottom.

Start publishing

Log out of the root account and log in with the newly created account. First, change the language to Chinese and uncheck the ”Help share video option”:

image.png

Then directly click ”Publish” in the upper right corner:
image.png

The following interface appears. For the channel, select the channel created when the new account was made. Choose the privacy method according to your needs, and then click the button in the red box to upload files:
image.png

image.png

After selecting, click "Open" in the lower right corner, and the following interface will appear:
image.png

There are 5 options for privacy:
image.png

image.png

Just choose according to your own needs.
image.png

If "Contains sensitive content" is selected, the settings for sensitive content in the previous video section will be applied:
image.png

If you choose to publish after transcoding, it will not be published until transcoding is successful. If you prefer to upload all videos first and then transcode them together, do not check this option.

In the advanced settings, there is also an option for whether to allow downloads. If you do not allow it, do not check "Allow download":

image.png

After setting up, click the publish button in the lower right corner to publish.


A tip to share: log in as root, and under ”Administration” - “Overview” - “Videos”, you can see all videos uploaded by users, as well as their privacy settings, whether the files are transcoded, and what format they are transcoded into:

image.png

And after selecting one or more files, you can choose to perform transcoding:
image.png

However, normally, if the transcoding function is enabled in the options, even if you did not select "Publish after transcoding" when publishing, transcoding will automatically proceed after publishing is complete.


Result demonstration

Final result:

image.png

And the address can be directly shared for others to watch, without requiring them to log in (provided that the video privacy is set to public):

image.png

You can also share the link of a specific video individually:
image.png

You can also directly generate a QR code for sharing, and most importantly, embed it:
image.png

Directly generating the embed code allows you to place it directly into WordPress pages or posts.

A few final words: the biggest advantage of PeerTube is that you can self-host your own videos and embed them into your own website without relying on those video hosting platforms, thus avoiding censorship policy restrictions. Of course, if it is for traffic, videos still must be placed on those large platforms. But if you don't have this need and just want to put them on your own website, then PeerTube is the best choice.

At the same time, you can also adopt the method of setting all videos to unlisted, then creating a playlist, adding the videos to the playlist, and setting the playlist to public to publish the videos. This ensures that the videos cannot be seen during anonymous access, but you can optionally publish the videos that need to be published by sharing the playlist, getting the best of both worlds.

Note: If you use Nginx as a reverse proxy for PeerTube, you may encounter playback issues. For specific issues and solutions, please refer to:Using aaPanel (Nginx) to configure PeerTube (HLS) reverse proxy

View Related Categories · 3 Matches
📌 Content Structure Prompt:
This content is part of the following knowledge map, where you can view the complete content path: Blog Knowledge Map。
📎 Related Articles
Share this article
The blog content is original, please indicate the source when reposting! The RSS address of the blog is:https://blog.tangwudi.com/feed, welcome to subscribe; if needed, you can join theTelegram Groupto discuss questions together.

Comments

  1. Passing by is a good thing
    Windows Edge 131.0.0.0
    2 years ago
    2024-10-26 13:47:02

    Boss, is this setup of yours on your own home machine?
    I plan to set up this on my own home machine

    • Owner
      Passing by is a good thing
      Macintosh Chrome 130.0.0.0
      2 years ago
      2024-10-26 13:49:38

      Basically all the applications I set up are deployed on my own home machine, including PeerTube.

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗ
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Kaomoji
Emoji
Little Dinosaur
Flower!
Previous
Next
       

👋 Welcome to “Wudi's Personal Blog”

Here, long-term exploration is mainly carried out around the following directions:

🧱 Personal Digital Infrastructure and Blog System Construction
☁️ Cloudflare and Network Architecture Practice
🧠 AI and Knowledge System Exploration
🛡️ Network Security and Access Optimization
🎵 Music and Sound Cognition
👁️ Cognitive Perspectives and Worldviews