Polish README text, paths, and formatting

Editorial and structural updates to README.md and readme-translations/README.tr.md: fix image paths (use ../branding/ and forward slashes), standardize wording/capitalization (Application, Download, Install, etc.), reformat feature tables and installation sections for consistency, clarify install/update/run commands, improve macOS/Windows troubleshooting and antivirus guidance, adjust screenshot alt texts, and apply numerous minor localization and copy corrections in the Turkish translation.
This commit is contained in:
oop7
2026-05-14 15:39:06 +03:00
parent 3ba021dfbb
commit 39320db3a0
2 changed files with 401 additions and 394 deletions
+145 -145
View File
@@ -1,7 +1,7 @@
<div align="center"> <div align="center">
<img src="branding\svg\ytsage-wordmark.svg" width="400" alt="ytsage-wordmark"> <img src="../branding/svg/ytsage-wordmark.svg" width="400" alt="ytsage-wordmark">
<img src="branding\screenshots\main.png" width="800" alt="YTSage Interface"/> <img src="../branding/screenshots/main.png" width="800" alt="YTSage Interface"/>
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-1f2937?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/downloads/) [![Python 3.10+](https://img.shields.io/badge/python-3.10+-1f2937?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/downloads/)
[![PyPI Downloads](https://img.shields.io/pepy/dt/ytsage?color=1f2937&style=for-the-badge&label=downloads&logo=python&logoColor=white)](https://pepy.tech/project/ytsage) [![PyPI Downloads](https://img.shields.io/pepy/dt/ytsage?color=1f2937&style=for-the-badge&label=downloads&logo=python&logoColor=white)](https://pepy.tech/project/ytsage)
@@ -12,25 +12,25 @@
[![PyPI version](https://img.shields.io/pypi/v/ytsage?color=c90000&style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/ytsage/) [![PyPI version](https://img.shields.io/pypi/v/ytsage?color=c90000&style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/ytsage/)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/oop7?color=c90000&style=for-the-badge&logo=githubsponsors&logoColor=white)](https://github.com/sponsors/oop7) [![GitHub Sponsors](https://img.shields.io/github/sponsors/oop7?color=c90000&style=for-the-badge&logo=githubsponsors&logoColor=white)](https://github.com/sponsors/oop7)
**A modern YouTube downloader with a clean PySide6 interface.** **Modern YouTube downloader with a clean PySide6 interface.**
Download videos in any quality, extract audio, fetch subtitles, and more. Download videos in any quality, extract audio, fetch subtitles, and more.
### 🌍 README Languages ### 🌍 README Languages
English: [EN](README.md) English: [EN](../README.md)
| العربية: [AR](readme-translations/README.ar.md) | Arabic: [AR](README.ar.md)
| Deutsch: [DE](readme-translations/README.de.md) | German: [DE](README.de.md)
| Español: [ES](readme-translations/README.es.md) | Spanish: [ES](README.es.md)
| Français: [FR](readme-translations/README.fr.md) | French: [FR](README.fr.md)
| हिन्दी: [HI](readme-translations/README.hi.md) | Hindi: [HI](README.hi.md)
| Bahasa Indonesia: [ID](readme-translations/README.id.md) | Indonesian: [ID](README.id.md)
| Italiano: [IT](readme-translations/README.it.md) | Italian: [IT](README.it.md)
| 日本語: [JA](readme-translations/README.ja.md) | Japanese: [JA](README.ja.md)
| Polski: [PL](readme-translations/README.pl.md) | Polish: [PL](README.pl.md)
| Português: [PT](readme-translations/README.pt.md) | Portuguese: [PT](README.pt.md)
| Русский: [RU](readme-translations/README.ru.md) | Russian: [RU](README.ru.md)
| Türkçe: [TR](readme-translations/README.tr.md) | Turkish: [TR](README.tr.md)
| 中文: [ZH](readme-translations/README.zh.md) | Chinese: [ZH](README.zh.md)
<p align="center"> <p align="center">
<a href="#installation">Installation</a> • <a href="#installation">Installation</a> •
@@ -51,10 +51,10 @@ English: [EN](README.md)
YTSage is designed for users who want a **simple yet powerful YouTube downloader**. Unlike other tools, it offers: YTSage is designed for users who want a **simple yet powerful YouTube downloader**. Unlike other tools, it offers:
- A clean, modern PySide6 interface - A modern and clean PySide6 interface
- One-click downloads for video, audio, and subtitles - One-click downloads for video, audio, and subtitles
- Advanced features like SponsorBlock, subtitle merging, and playlist selection - Advanced features like SponsorBlock, subtitle merging, and playlist selection
- Optional Generic Mode for yt-dlp-supported sites beyond YouTube - Optional Generic Mode for sites supported by yt-dlp beyond YouTube
- Cross-platform support and easy installation - Cross-platform support and easy installation
<a id="features"></a> <a id="features"></a>
@@ -62,17 +62,17 @@ YTSage is designed for users who want a **simple yet powerful YouTube downloader
<div align="center"> <div align="center">
| Core Features | Advanced Features | Extra Features | | Core Features | Advanced Features | Extra Features |
|-----------------------------------|-----------------------------------------|------------------------------------| |-----------------------------------|-----------------------------------------|------------------------------------|
| 🎥 Format Table | 🚫 SponsorBlock Integration | 🎞️ FPS/HDR Display | | 🎥 Format Table | 🚫 SponsorBlock Integration | 🎞️ FPS/HDR Display |
| 🎵 Audio Extraction | 📝 Multi-Subtitle Select & Merge | 🔄 Auto-Update yt-dlp | | 🎵 Audio Extraction | 📝 Subtitle Selection & Merging | 🔄 Auto Update yt-dlp |
| ✨ Simple UI | 💾 Save Description & Thumbnail | 🛠️ FFmpeg/yt-dlp/Deno Detection | | ✨ Simple UI | 💾 Save Description & Thumbnail | 🛠️ FFmpeg/yt-dlp/Deno Detection |
| 📋 Playlist Support & Selector | 🚀 Speed Limiter | ⚙️ Custom Commands | | 📋 Playlist Support & Selector | 🚀 Speed Limiter | ⚙️ Custom Commands |
| 📑 Embed Chapters | ✂️ Trim Video Sections | 🍪 Login with Cookies | | 📑 Chapter Integration | ✂️ Video Section Trimming | 🍪 Login with Cookies |
| 📜 Download History | 🔄 Release Channel Selection | 🌐 Proxy Support | | 📜 Download History | 🔄 Version Channel Selection | 🌐 Proxy Support |
| 🎚️ Audio Format Conversion | 🎬 Video Format Settings | 🆙 Built-in Updater Tab | | 🎚️ Audio Format Conversion | 🎬 Video Format Settings | 🆙 Built-in Updater Tab |
| 🌍 Generic Mode | 🔊 Audio Normalization (EBU R128) | 🌍 Localization in 14 Languages | | 🌍 Generic Mode | 🔊 Audio Normalization (EBU R128) | 🌍 Localized in 14 Languages |
| 💾 Export Playlists | ⚙️ Default Quality & Subtitles | | | 💾 Playlist Export | ⚙️ Default Quality & Subtitles | |
</div> </div>
<a id="installation"></a> <a id="installation"></a>
@@ -80,14 +80,14 @@ YTSage is designed for users who want a **simple yet powerful YouTube downloader
### ⚡ Quick Install (Recommended) ### ⚡ Quick Install (Recommended)
Install YTSage from PyPI: Install YTSage via PyPI:
```bash ```bash
pip install ytsage pip install ytsage
``` ```
<details> <details>
<summary>🔄 Update an existing installation</summary> <summary>🔄 Update existing installation</summary>
```bash ```bash
pip install --upgrade ytsage pip install --upgrade ytsage
@@ -95,7 +95,7 @@ pip install --upgrade ytsage
</details> </details>
Then launch the app: Then launch the application:
```bash ```bash
ytsage ytsage
@@ -109,26 +109,26 @@ ytsage
| Format | Description | | Format | Description |
|--------|-------------| |--------|-------------|
| ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Standard installer | | ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Standard Installer |
| ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | With FFmpeg bundled | | ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | With FFmpeg Included |
| ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portable version, no installation required | | ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portable version, no installation needed |
| ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portable with FFmpeg, zipped | | ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Portable with FFmpeg, zipped |
<details> <details>
<summary>🛠️ Installation Steps</summary> <summary>🛠️ Installation Steps</summary>
1. **EXE Installer (`.exe`)**: Double-click the file and follow the setup wizard. 1. **EXE Installer (`.exe`)**: Double-click the file and follow the setup wizard.
2. **Portable Version (`.zip`)**: Extract the archive to your desired location and run `ytsage.exe`. 2. **Portable Version (`.zip`)**: Extract the archive to your desired location and launch `ytsage.exe`.
3. **FFmpeg Bundled**: Choose the FFmpeg bundled versions if you don't have FFmpeg installed on your system. 3. **FFmpeg Included**: Choose versions with FFmpeg included if you don't have FFmpeg installed on your system.
</details> </details>
#### 🐧 Linux #### 🐧 Linux
| Format | Description | | Format | Description |
|--------|-------------| |--------|-------------|
| ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Debian package | | ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Debian Package |
| ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, portable | | ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, Portable |
| ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | RPM package | | ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | RPM Package |
| ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Flatpak Bundle | | ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Flatpak Bundle |
<details> <details>
@@ -137,7 +137,7 @@ ytsage
- **DEB (`.deb`)**: - **DEB (`.deb`)**:
```bash ```bash
sudo dpkg -i ytsage_*.deb sudo dpkg -i ytsage_*.deb
sudo apt-get install -f # Fix missing dependencies if any sudo apt-get install -f # Fix missing dependencies if needed
``` ```
- **RPM (`.rpm`)**: - **RPM (`.rpm`)**:
```bash ```bash
@@ -158,45 +158,45 @@ ytsage
| Format | Description | | Format | Description |
|--------|-------------| |--------|-------------|
| ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Zipped application for Apple Silicon | | ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Zipped Application for Apple Silicon |
| ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Disk image installer for Apple Silicon | | ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Disk Image Installer for Apple Silicon |
<details> <details>
<summary>🛠️ Installation Steps</summary> <summary>🛠️ Installation Steps</summary>
- **DMG Installer (`.dmg`)**: Double-click to mount, then drag `YTSage.app` into your Applications folder. - **DMG Installer (`.dmg`)**: Double-click to mount, then drag `YTSage.app` to your Applications folder.
- **App Archive (`.zip`)**: Extract the zip and move `YTSage.app` to your Applications folder. - **Application Archive (`.zip`)**: Extract the zip and move `YTSage.app` to your Applications folder.
*Note: If you encounter an "App is damaged" error, see the [macOS troubleshooting section](#troubleshooting) below.* *Note: If you encounter an "Application is damaged" error, see the macOS troubleshooting section below.*
</details> </details>
--- ---
<details> <details>
<summary>💻 Manual Installation from Source</summary> <summary>💻 Manual Source Installation</summary>
### 1. Clone the Repository ### 1. Clone the repository
```bash ```bash
git clone https://github.com/oop7/YTSage.git git clone https://github.com/oop7/YTSage.git
cd YTSage cd YTSage
``` ```
### 2. Install Dependencies ### 2. Install dependencies
#### ⚡ With uv #### ⚡ Using uv
```bash ```bash
uv pip install . uv pip install .
``` ```
#### 📦 Or with standard pip #### 📦 Or using standard pip
```bash ```bash
pip install . pip install .
``` ```
### 3. Run the Application ### 3. Run the application
```bash ```bash
python -m ytsage.main python -m ytsage.main
@@ -210,16 +210,16 @@ python -m ytsage.main
<div align="center"> <div align="center">
<table> <table>
<tr> <tr>
<td><img src="branding\screenshots\Download-Settings.png" alt="Download Settings" width="400"/></td> <td><img src="../branding/screenshots/Download-Settings.png" alt="Download Settings" width="400"/></td>
<td><img src="branding\screenshots\playlist.png" alt="Playlist Download" width="400"/></td> <td><img src="../branding/screenshots/playlist.png" alt="Playlist Download" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Download Settings</em></td> <td align="center"><em>Download Settings</em></td>
<td align="center"><em>Playlist Download</em></td> <td align="center"><em>Playlist Download</em></td>
</tr> </tr>
<tr> <tr>
<td><img src="branding\screenshots\audio_format.png" alt="Audio Format Selection with Save Thumbnail" width="400"/></td> <td><img src="../branding/screenshots/audio_format.png" alt="Audio Format Selection" width="400"/></td>
<td><img src="branding\screenshots\Custom-Option.png" alt="Custom Options" width="400"/></td> <td><img src="../branding/screenshots/Custom-Option.png" alt="Custom Options" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Audio Format</em></td> <td align="center"><em>Audio Format</em></td>
@@ -241,16 +241,16 @@ python -m ytsage.main
- `Video` for video downloads - `Video` for video downloads
- `Audio Only` for audio extraction - `Audio Only` for audio extraction
5. **Choose Options:** 5. **Choose Options:**
- Enable subtitles & select language - Enable Subtitles and select language
- Enable subtitle merge - Enable Subtitle Merging
- Save thumbnail - Save Thumbnail
- Remove sponsor segments - Remove Sponsored Segments
- Save description - Save Description
- Embed chapters - Embed Chapters
6. **Select Output Directory** 6. **Select Output Directory**
7. **Click "Download"** 7. **Click "Download"**
> 💡 The default download directory is the user's "Downloads" folder. > 💡 Default download directory is the user's "Downloads" folder.
</details> </details>
@@ -263,84 +263,84 @@ python -m ytsage.main
4. **Choose desired format/quality** 4. **Choose desired format/quality**
5. **Click "Download"** 5. **Click "Download"**
> 💡 The application automatically handles the download queue, and you can export the playlist entries to `.txt`, `.csv`, `.m3u`, or `.json` using the **Save Playlist As** button. > 💡 The application automatically handles the download queue, and you can export playlist entries as `.txt`, `.csv`, `.m3u`, or `.json`.
</details> </details>
<details> <details>
<summary>🌍 Generic Mode for non-YouTube sites</summary> <summary>🌍 Generic Mode for Non-YouTube Sites</summary>
Use Generic Mode when you want YTSage to accept URLs from sites supported by yt-dlp, such as Dailymotion, CBC Gem, TikTok, and others. Use Generic Mode when you want YTSage to accept URLs from sites supported by yt-dlp, such as Dailymotion, CBC Gem, TikTok, and others.
How to use it: How to use it:
1. Open `Download Settings`. 1. Open `Download Settings`.
2. Enable `Generic Mode`. 2. Toggle on `Generic Mode`.
3. Paste a supported non-YouTube video or playlist URL. 3. Paste a supported video or playlist URL that is not from YouTube.
4. Click `Analyze`. 4. Click `Analyze`.
5. Choose a format and download as usual. 5. Choose a format and download as usual.
Notes: Notes:
- Generic Mode only changes URL validation inside YTSage. The target site must still be supported by your installed yt-dlp version. - Generic mode only changes the URL validation inside YTSage. The target site must still be supported by your installed version of yt-dlp.
- Some sites require cookies, a login session, a proxy, or extra yt-dlp arguments depending on the extractor. - Some sites require cookies, login sessions, proxy, or extra yt-dlp arguments depending on the extractor.
- If a site fails, update yt-dlp first from the built-in updater tab before reporting the issue. - If a site fails, update yt-dlp from the built-in updater tab first before reporting an issue.
</details> </details>
<details> <details>
<summary>🧰 Media and Download Options</summary> <summary>🧰 Media & Download Options</summary>
- **Subtitle Options:** Filter languages and embed subtitles into the video file - **Subtitle Options:** Filter languages and embed subtitles into the video file.
- **Subtitle Merge:** Merge subtitles into the video file for hardcoded subtitles - **Subtitle Merging:** Merge subtitles into the video file for hardcoded/burned-in subtitles.
- **Save Description:** Save the video description as a text file - **Save Description:** Save the video description as a text file.
- **Save Thumbnail:** Save the video thumbnail as an image file - **Save Thumbnail:** Save the video thumbnail as an image file.
- **Embed Chapters:** Embed chapter markers as metadata for compatible video players - **Embed Chapters:** Embed chapter markers as metadata for compatible video players.
- **Remove Sponsor Segments:** Remove sponsor segments from the video using SponsorBlock - **Remove Sponsored Segments:** Remove sponsored segments from the video using SponsorBlock.
- **Trim Video:** Download only specific parts of a video by specifying time ranges in `HH:MM:SS` format - **Trim Video:** Download only specific parts of a video by specifying time ranges in `HH:MM:SS` format.
</details> </details>
<details> <details>
<summary>⚙️ Output and File Settings</summary> <summary>⚙️ Output & File Settings</summary>
- **Speed Limiter:** Limit the download speed, for example `500K` for 500 KB/s - **Speed Limiter:** Limit download speed, e.g., `500K` for 500 KB/s.
- **Save Download Path:** Save the default download path for future downloads. Available in **Download Settings → Download Path**. - **Save Download Path:** Saves the default download path for future downloads. Available in **Download Settings → Download Path**.
- **Default Video Resolution:** Set your preferred default video resolution for automatic selection (e.g., 1080p, 720p). Available in **Download Settings → Default Video Resolution**. - **Default Video Resolution:** Set your preferred default video resolution for auto-selection (e.g., 1080p, 720p). Available in **Download Settings → Default Video Resolution**.
- **Default Subtitle Languages:** Set default subtitle languages to auto-select automatically (comma-separated, e.g., `en,es`). Available in **Download Settings → Default Subtitle Languages**. - **Default Subtitle Languages:** Set default subtitle languages for auto-selection (comma-separated, e.g., `en,es`). Available in **Download Settings → Default Subtitle Languages**.
- **Output Filename Format:** Customize the output filename format using variables like `%(title)s`, `%(uploader)s`, `%(playlist_index)s`, and `%(resolution)s`. Available in **Download Settings → Filename Format**. - **Output Filename Format:** Customize the output filename format using variables like `%(title)s`, `%(uploader)s`, `%(playlist_index)s`, and `%(resolution)s`. Available in **Download Settings → Filename Format**.
- **Force Output Format:** Force video downloads into a specific container format such as `mp4`, `webm`, or `mkv`. Available in **Download Settings → Output Format Settings**. - **Force Output Format:** Force video downloads into a specific container format like `mp4`, `webm`, or `mkv`. Available in **Download Settings → Output Format Settings**.
- **Audio Format Conversion:** Convert audio-only downloads to preferred formats such as `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis`, or `Best`. Available in **Download Settings → Audio Format Settings**. - **Audio Format Conversion:** Convert audio-only downloads into preferred formats such as `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis`, or `Best`. Available in **Download Settings → Audio Format Settings**.
- **Audio Normalization:** Standardize volume for audio-only downloads using EBU R128. - **Audio Normalization:** Standardize volume for audio-only downloads using EBU R128.
- **Concurrent Connections:** Increase download speed dramatically by downloading files in multiple fragments concurrently. Available in **Download Settings → General → Concurrent Connections** (Defaults to 1, recommended maximum is 8-10 to prevent IP limiting). - **Concurrent Connections:** Dramatically increase download speed by downloading files in multiple fragments simultaneously. Available in **Download Settings → General → Concurrent Connections** (Default is 1, maximum recommended is 8-10 to avoid IP throttling).
</details> </details>
<details> <details>
<summary>🌐 Access and Network</summary> <summary>🌐 Access & Network</summary>
- **Login with Cookies:** Login to YouTube using cookies to access private content. - **Login with Cookies:** Log in to YouTube using cookies to access private content.
How to use it: How to use it:
1. **Recommended:** Use the built-in `Extract cookies from browser` option in the app, then select your browser and optionally a profile. 1. **Recommended:** Use the built-in `Extract cookies from browser` option in the app, then select your browser and optionally a profile.
2. Alternatively, extract cookies manually: 2. Alternatively, extract cookies manually:
a. Export cookies from your browser using an extension like [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file) a. Export browser cookies using an extension like [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file)
b. Copy the cookies in Netscape format b. Copy cookies in Netscape format
c. Create a file named `cookies.txt` and paste the cookies into it c. Create a file named `cookies.txt` and paste cookies
d. Select the `cookies.txt` file in the app d. Select the `cookies.txt` file in the app
- **Proxy Support:** Use a proxy server for downloads, for example `http://<proxy-server>:<port>` - **Proxy Support:** Use a proxy server for downloads, e.g., `http://<proxy-server>:<port>`
- **Generic Mode:** Allow YTSage to analyze and download from non-YouTube sites supported by yt-dlp. Enable it from **Download Settings → Generic Mode**. - **Generic Mode:** Allows YTSage to analyze and download from non-YouTube sites supported by yt-dlp. Enable from **Download Settings → Generic Mode**.
</details> </details>
<details> <details>
<summary>🛠️ Tools and Maintenance</summary> <summary>🛠️ Tools & Maintenance</summary>
- **Custom Commands:** Access advanced yt-dlp features via command line arguments - **Custom Commands:** Access advanced yt-dlp features via command-line arguments.
- **Updater Tab:** Manage built-in update tools from one place in Custom Options: - **Updater Tab:** Manage built-in update tools from one place in Custom Options:
- **yt-dlp Updates:** Check for updates and switch between Stable and Nightly release channels - **yt-dlp Updates:** Check for updates and toggle between Stable and Nightly release channels.
- **FFmpeg Version Checker:** Check your FFmpeg version and open installation guides - **FFmpeg Version Checker:** Check your FFmpeg version and open installation guides.
- **Deno Updates:** Check and update the Deno runtime - **Deno Updates:** Check and update the Deno runtime.
- **FFmpeg/yt-dlp/Deno Detection:** Automatically detect FFmpeg, yt-dlp, and Deno paths and versions from the About dialog. - **FFmpeg/yt-dlp/Deno Detection:** Automatically detects paths and versions for FFmpeg, yt-dlp, and Deno from the About dialog.
- **Download History:** View past downloads with thumbnails and statuses from the **History** button. - **Download History:** View past downloads with thumbnails and statuses from the **History** button.
</details> </details>
@@ -348,7 +348,7 @@ Notes:
<details> <details>
<summary>🌍 Localization</summary> <summary>🌍 Localization</summary>
YTSage supports **14 languages** for worldwide accessibility. Select your preferred language from **Custom Options → Language**. YTSage supports **14 languages** for global accessibility. Select your preferred language in **Custom Options → Language**.
### Supported Languages ### Supported Languages
@@ -366,13 +366,13 @@ YTSage supports **14 languages** for worldwide accessibility. Select your prefer
| Language | File | Language | File | | Language | File | Language | File |
|----------|------|----------|------| |----------|------|----------|------|
| 🇺🇸 English | [README.md](README.md) | 🇪🇸 Spanish | [README.es.md](readme-translations/README.es.md) | | 🇺🇸 English | [README.md](README.md) | 🇪🇸 Spanish | [README.es.md](README.es.md) |
| 🇸🇦 Arabic | [README.ar.md](readme-translations/README.ar.md) | 🇫🇷 French | [README.fr.md](readme-translations/README.fr.md) | | 🇸🇦 Arabic | [README.ar.md](README.ar.md) | 🇫🇷 French | [README.fr.md](README.fr.md) |
| 🇩🇪 German | [README.de.md](readme-translations/README.de.md) | 🇮🇳 Hindi | [README.hi.md](readme-translations/README.hi.md) | | 🇩🇪 German | [README.de.md](README.de.md) | 🇮🇳 Hindi | [README.hi.md](README.hi.md) |
| 🇮🇩 Indonesian | [README.id.md](readme-translations/README.id.md) | 🇮🇹 Italian | [README.it.md](readme-translations/README.it.md) | | 🇮🇩 Indonesian | [README.id.md](README.id.md) | 🇮🇹 Italian | [README.it.md](README.it.md) |
| 🇯🇵 Japanese | [README.ja.md](readme-translations/README.ja.md) | 🇵🇱 Polish | [README.pl.md](readme-translations/README.pl.md) | | 🇯🇵 Japanese | [README.ja.md](README.ja.md) | 🇵🇱 Polish | [README.pl.md](README.pl.md) |
| 🇧🇷 Portuguese | [README.pt.md](readme-translations/README.pt.md) | 🇷🇺 Russian | [README.ru.md](readme-translations/README.ru.md) | | 🇧🇷 Portuguese | [README.pt.md](README.pt.md) | 🇷🇺 Russian | [README.ru.md](README.ru.md) |
| 🇹🇷 Turkish | [README.tr.md](readme-translations/README.tr.md) | 🇨🇳 Chinese | [README.zh.md](readme-translations/README.zh.md) | | 🇹🇷 Turkish | [README.tr.md](README.tr.md) | 🇨🇳 Chinese | [README.zh.md](README.zh.md) |
> 💡 **Want to contribute a translation?** Check out the [Contributing](#contributing) section to help us add more languages! > 💡 **Want to contribute a translation?** Check out the [Contributing](#contributing) section to help us add more languages!
@@ -384,39 +384,39 @@ YTSage supports **14 languages** for worldwide accessibility. Select your prefer
<details> <details>
<summary>Click to view common issues and solutions</summary> <summary>Click to view common issues and solutions</summary>
- **Format table not displaying:** Update yt-dlp to the latest version, and switch to yt-dlp nightly. - **Format table not appearing:** Update yt-dlp to latest version and switch to nightly yt-dlp.
- **Download fails:** Check your internet connection and ensure the video is available. - **Download failed:** Check your internet connection and ensure the video is available.
- **Specific download errors:** - **Specific Download Errors:**
- **Private videos:** Use cookie authentication to access private content. - **Private Videos:** Use cookie authentication to access private content.
- **Age-restricted content:** Login to YouTube account to view age-restricted videos. - **Age-Restricted Content:** Log in to your YouTube account to view age-restricted videos.
- **Geo-blocked videos:** Consider using a VPN to bypass regional restrictions. - **Geo-Blocked Videos:** Consider using a VPN to bypass regional restrictions.
- **Removed/deleted videos:** Video is no longer available on YouTube. - **Deleted Videos:** Video is no longer available on YouTube.
- **Live streams:** Live streams cannot be downloaded; wait for the stream to end. - **Live Streams:** Live streams cannot be downloaded; wait for the broadcast to end.
- **Network errors:** Check your internet connection and try again. - **Network Errors:** Check your internet connection and try again.
- **Invalid URLs:** Ensure the URL is correct and from a supported platform. - **Invalid URLs:** Ensure the URL is correct and from a supported platform.
- **Premium content:** Requires YouTube Premium membership. - **Premium Content:** Requires a YouTube Premium subscription.
- **Copyright blocks:** Content is blocked due to copyright restrictions. - **Copyright Blocks:** Content is blocked due to copyright restrictions.
- **Separate video and audio files after download:** This happens when FFmpeg is missing or not detected. YTSage requires FFmpeg to merge high-quality video and audio streams. - **Video and Audio Files separate after download:** This happens when FFmpeg is missing or not detected. YTSage requires FFmpeg to merge high-quality video and audio streams.
- **Solution:** Ensure FFmpeg is installed and accessible in your system's PATH. For Windows users, the easiest option is to download the `YTSage-v<version>-ffmpeg.exe` file, which comes bundled with FFmpeg. - **Solution:** Ensure FFmpeg is installed and accessible in your system's PATH. For Windows users, the easiest option is to download the `YTSage-v<version>-ffmpeg.exe` file, which comes bundled with FFmpeg.
--- ---
#### 🛡️ Windows Defender / Antivirus Warning #### 🛡️ Windows Defender / Antivirus Warning
Some antivirus software may flag the `.exe` files as false positives. This is a **known limitation** of packaged applications. Some antivirus software may flag `.exe` files as false positives. This is a **known limitation** of packaged applications.
**Why this happens:** **Why this happens:**
- Antivirus heuristics can misidentify packed executables as suspicious - Antivirus heuristics can mistakenly identify packaged executables as suspicious.
**Safe alternatives:** **Safe Alternatives:**
- ✅ **Use pip installation:** `pip install ytsage` (recommended) - ✅ **Use pip install:** `pip install ytsage` (Recommended)
- ✅ **Build from source**: by following this [guide](.github/CI_CD_README.md) - ✅ **Build from Source**: by following this [guide](.github/CI_CD_README.md)
- ✅ **Whitelist the application** in your antivirus software - ✅ **Whitelist the app** in your antivirus software.
#### 🍎 macOS: "App is damaged and cant be opened" #### 🍎 macOS: "Application is damaged and cannot be opened"
If you see this error on macOS Sonoma or newer, you need to remove the quarantine attribute. If you see this error on macOS Sonoma or newer, you need to remove the quarantine attribute.
1. **Open Terminal** (you can find it using Spotlight). 1. **Open Terminal** (you can find this using Spotlight).
2. **Type the following command** but **do not** press Enter yet. Make sure to include the space at the end: 2. **Type the following command** but **do not** press Enter yet. Make sure to include the space at the end:
```bash ```bash
xattr -d com.apple.quarantine xattr -d com.apple.quarantine
@@ -427,7 +427,7 @@ If you see this error on macOS Sonoma or newer, you need to remove the quarantin
--- ---
#### **Configuration Locations (Advanced)** #### **Config Locations (Advanced)**
- **Windows:** `%LOCALAPPDATA%\YTSage` - **Windows:** `%LOCALAPPDATA%\YTSage`
- **macOS:** `~/Library/Application Support/YTSage` - **macOS:** `~/Library/Application Support/YTSage`
- **Linux:** `~/.local/share/YTSage` - **Linux:** `~/.local/share/YTSage`
@@ -437,17 +437,17 @@ If you see this error on macOS Sonoma or newer, you need to remove the quarantin
<a id="sponsor"></a> <a id="sponsor"></a>
## 💖 Sponsor ## 💖 Sponsor
If YTSage saves you time, consider sponsoring the project. Sponsorship helps cover development time, testing across platforms, and future improvements. If YTSage saves you time, please consider sponsoring the project. Sponsoring helps cover development time, testing across all platforms, and future improvements.
- GitHub Sponsors: https://github.com/sponsors/oop7 - GitHub Sponsors: https://github.com/sponsors/oop7
- The sponsor link is also available directly inside the app from the About dialog. - Sponsorship link is also available directly in the app via the About dialog.
[![Sponsor YTSage](https://img.shields.io/badge/Sponsor-YTSage-EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/oop7) [![Sponsor YTSage](https://img.shields.io/badge/Sponsor-YTSage-EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/oop7)
<a id="contributing"></a> <a id="contributing"></a>
## 👥 Contributing ## 👥 Contributing
We welcome contributions! Here's how you can help: We welcome contributions! Heres how you can help:
1. 🍴 Fork the repository 1. 🍴 Fork the repository
2. 🌿 Create your feature branch: 2. 🌿 Create your feature branch:
@@ -466,8 +466,8 @@ We welcome contributions! Here's how you can help:
### 🌍 Contributing Translations ### 🌍 Contributing Translations
- Update the matching localized README file (for example `readme-translations/README.es.md`) - Update the relevant localized README file (e.g., `readme-translations/README.fr.md`)
- Keep app strings in sync by editing `ytsage/languages/<code>.json` - Keep app strings synced by editing `ytsage/languages/<code>.json`
- If your language is missing, start from `README.md` and create `README.<code>.md` - If your language is missing, start from `README.md` and create `README.<code>.md`
<details> <details>
@@ -488,11 +488,11 @@ YTSage/
│ │ ├── build-linux.yml # Linux build workflow │ │ ├── build-linux.yml # Linux build workflow
│ │ ├── build-macos.yml # macOS build workflow │ │ ├── build-macos.yml # macOS build workflow
│ │ │── build-windows.yml # Windows build workflow │ │ │── build-windows.yml # Windows build workflow
| | └── release-all.yml # Master release workflow | | └── release-all.yml # Release master workflow
│ └── 📄 CI_CD_README.md # CI/CD documentation │ └── 📄 CI_CD_README.md # CI/CD documentation
├── 📁 branding/ # Branding assets (Screenshots, SVGs) ├── 📁 branding/ # Branding assets (Screenshots, SVGs)
│ ├── 📁 icons/ # Application icons │ ├── 📁 icons/ # App icons
│ ├── 📁 screenshots/ # Screenshots for documentation │ ├── 📁 screenshots/ # Documentation screenshots
│ └── 📁 svg/ # SVG assets │ └── 📁 svg/ # SVG assets
├── 📄 LICENSE # License file ├── 📄 LICENSE # License file
├── 📄 pyproject.toml # Project metadata and dependencies ├── 📄 pyproject.toml # Project metadata and dependencies
@@ -500,8 +500,8 @@ YTSage/
├── 📄 requirements.txt # Python dependencies (dev) ├── 📄 requirements.txt # Python dependencies (dev)
└── 📁 ytsage/ # Source package └── 📁 ytsage/ # Source package
├── 📁 assets/ # Runtime assets ├── 📁 assets/ # Runtime assets
│ ├── 📁 Icon/ # Application icons │ ├── 📁 Icon/ # App icons
│ └── 📁 sound/ # Audio files │ └── 📁 sound/ # Sound files
├── 📁 languages/ # Localization files ├── 📁 languages/ # Localization files
│ ├── 📄 ar.json # Arabic translation │ ├── 📄 ar.json # Arabic translation
│ ├── 📄 de.json # German translation │ ├── 📄 de.json # German translation
@@ -514,13 +514,13 @@ YTSage/
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration │ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration
│ ├── 📄 ytsage_utils.py # Utility functions │ ├── 📄 ytsage_utils.py # Utility functions
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration │ └── 📄 ytsage_yt_dlp.py # yt-dlp integration
├── 📁 gui/ # User interface components ├── 📁 gui/ # UI components
│ ├── 📄 __init__.py # GUI package init │ ├── 📄 __init__.py # GUI package init
│ ├── 📄 ytsage_gui_main.py # Main application window │ ├── 📄 ytsage_gui_main.py # Main app window
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes │ └── 📁 ytsage_gui_dialogs/ # Dialog classes
├── 📁 utils/ # Utility modules ├── 📁 utils/ # Utility modules
│ ├── 📄 __init__.py # Utils package init │ ├── 📄 __init__.py # Utils package init
│ ├── 📄 ytsage_config_manager.py # Configuration management │ ├── 📄 ytsage_config_manager.py # Config management
│ └── 📄 ytsage_logger.py # Logging utilities │ └── 📄 ytsage_logger.py # Logging utilities
├── 📄 __init__.py # Package entry point ├── 📄 __init__.py # Package entry point
└── 📄 main.py # Main execution script └── 📄 main.py # Main execution script
@@ -555,7 +555,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
<div align="center"> <div align="center">
<p>A heartfelt thank you to everyone who has contributed to this project by opening an issue to suggest an improvement or report a bug.</p> <p>A big thanks to everyone who contributed to this project by opening an issue to suggest an improvement or report a bug.</p>
<table> <table>
<tr class="section"><th colspan="2">Core Components</th></tr> <tr class="section"><th colspan="2">Core Components</th></tr>
@@ -569,7 +569,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
</tr> </tr>
<tr> <tr>
<td><a href="https://deno.com/">Deno</a></td> <td><a href="https://deno.com/">Deno</a></td>
<td>Runtime for integration with yt-dlp</td> <td>Runtime for yt-dlp plugins</td>
</tr> </tr>
<tr class="section"><th colspan="2">Libraries & Frameworks</th></tr> <tr class="section"><th colspan="2">Libraries & Frameworks</th></tr>
<tr> <tr>
@@ -586,7 +586,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
</tr> </tr>
<tr> <tr>
<td><a href="https://packaging.python.org/">packaging</a></td> <td><a href="https://packaging.python.org/">packaging</a></td>
<td>Version & Package Handling</td> <td>Version/Package Management</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-markdown.github.io/">markdown</a></td> <td><a href="https://python-markdown.github.io/">markdown</a></td>
@@ -613,7 +613,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
## ⚠️ Disclaimer ## ⚠️ Disclaimer
This tool is for personal use only. Please respect YouTube's terms of service and content creators' rights. This tool is for personal use only. Please respect YouTube's Terms of Service and content creator rights.
--- ---
+256 -249
View File
@@ -1,7 +1,7 @@
<div align="center"> <div align="center">
<img src="../branding/svg/ytsage-wordmark.svg" width="400" alt="ytsage-wordmark"> <img src="../branding/svg/ytsage-wordmark.svg" width="400" alt="ytsage-wordmark">
<img src="../branding/screenshots/main.png" width="800" alt="YTSage Interface"/> <img src="../branding/screenshots/main.png" width="800" alt="YTSage Arayüzü"/>
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-1f2937?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/downloads/) [![Python 3.10+](https://img.shields.io/badge/python-3.10+-1f2937?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/downloads/)
[![PyPI Downloads](https://img.shields.io/pepy/dt/ytsage?color=1f2937&style=for-the-badge&label=downloads&logo=python&logoColor=white)](https://pepy.tech/project/ytsage) [![PyPI Downloads](https://img.shields.io/pepy/dt/ytsage?color=1f2937&style=for-the-badge&label=downloads&logo=python&logoColor=white)](https://pepy.tech/project/ytsage)
@@ -13,80 +13,81 @@
[![GitHub Sponsors](https://img.shields.io/github/sponsors/oop7?color=c90000&style=for-the-badge&logo=githubsponsors&logoColor=white)](https://github.com/sponsors/oop7) [![GitHub Sponsors](https://img.shields.io/github/sponsors/oop7?color=c90000&style=for-the-badge&logo=githubsponsors&logoColor=white)](https://github.com/sponsors/oop7)
**Temiz bir PySide6 arayüzüne sahip modern bir YouTube indiricisi.** **Temiz bir PySide6 arayüzüne sahip modern bir YouTube indiricisi.**
Videoları istediğiniz kalitede indirin, ses çıkarın, altyazıları getirin ve daha fazlasını yapın. Videoları herhangi bir kalitede indirin, sesleri çıkarın, altyazıları alın ve daha fazlasını yapın.
### 🌍 BENİOKU Diller ### 🌍 README Dilleri
İngilizce: [EN](../README.md) İngilizce: [EN](../README.md)
| Cevap: [AR](README.ar.md) | Arapça: [AR](README.ar.md)
| Almanca: [DE](README.de.md) | Almanca: [DE](README.de.md)
| İspanyolca: [ES](README.es.md) | İspanyolca: [ES](README.es.md)
| Fransızca: [FR](README.fr.md) | Fransızca: [FR](README.fr.md)
| Adres: [HI](README.hi.md) | Hintçe: [HI](README.hi.md)
| Bahasa Endonezya: [ID](README.id.md) | Endonezce: [ID](README.id.md)
| İtalyanca: [IT](README.it.md) | İtalyanca: [IT](README.it.md)
| Şarkı sözü: [JA](README.ja.md) | Japonca: [JA](README.ja.md)
| Polski: [PL](README.pl.md) | Lehçe: [PL](README.pl.md)
| Portekizce: [PT](README.pt.md) | Portekizce: [PT](README.pt.md)
| Rusça: [RU](README.ru.md) | Rusça: [RU](README.ru.md)
| Türkçe: [TR](README.tr.md) | Türkçe: [TR](README.tr.md)
| Adres: [ZH](README.zh.md) | Çince: [ZH](README.zh.md)
<p align="center"> <p align="center">
<a href="#installation">Kurulum</a> • <a href="#kurulum">Kurulum</a> •
<a href="#features">Özellikler</a> • <a href="#özellikler">Özellikler</a> •
<a href="#usage">Kullanım</a> • <a href="#kullanım">Kullanım</a> •
<a href="#screenshots">Ekran görüntüleri</a> • <a href="#ekran-görüntüleri">Ekran Görüntüleri</a> •
<a href="#troubleshooting">Sorun giderme</a> • <a href="#sorun-giderme">Sorun Giderme</a> •
<a href="#sponsor">Sponsor</a> • <a href="#sponsor-olun">Sponsor Olun</a> •
<a href="#contributing">Katkıda Bulunuyorum</a> <a href="#katkıda-bulunma">Katkıda Bulunma</a>
</p> </p>
</div> </div>
--- ---
<a id="why-ytsage"></a> <a id="neden-ytsage"></a>
## ❓ Neden YTSage? ## ❓ Neden YTSage?
YTSage, **basit ama güçlü bir YouTube indiricisi** isteyen kullanıcılar için tasarlanmıştır. Diğer araçların aksine şunları sunar: YTSage, **basit ama güçlü bir YouTube indiricisi** isteyen kullanıcılar için tasarlanmıştır. Diğer araçların aksine şunları sunar:
- Temiz, modern bir PySide6 arayüzü - Modern ve temiz bir PySide6 arayüzü
- Video, ses ve altyazılar için tek tıklamayla indirmeler - Tek tıkla video, ses ve altyazı indirme
- SponsorBlock, altyazı birleştirme ve oynatma listesi seçimi gibi gelişmiş özellikler - SponsorBlock, altyazı birleştirme ve oynatma listesi seçimi gibi gelişmiş özellikler
- YouTube'un ötesinde yt-dlp destekli siteler için İsteğe Bağlı Genel Mod - yt-dlp tarafından desteklenen YouTube dışındaki siteler için isteğe bağlı "Genel Mod"
- Platformlar arası destek ve kolay kurulum - Çoklu platform desteği ve kolay kurulum
<a id="features"></a> <a id="özellikler"></a>
## ✨ Özellikler ## ✨ Özellikler
<div align="center"> <div align="center">
| Temel Özellikler | Gelişmiş Özellikler | Ekstra Özellikler | | Temel Özellikler | Gelişmiş Özellikler | Ekstra Özellikler |
|-------------------------------------|--------------------------------------------------| |-----------------------------------|-----------------------------------------|------------------------------------|
| 🎥 Format Tablosu | 🚫 SponsorBlock Entegrasyonu | 🎞️ FPS/HDR Ekran | | 🎥 Format Tablosu | 🚫 SponsorBlock Entegrasyonu | 🎞️ FPS/HDR Gösterimi |
| 🎵 Ses Çıkarma | 📝 Çoklu Altyazı Seç ve Birleştir | 🔄 yt-dlp'yi Otomatik Güncelle | | 🎵 Ses Çıkarma | 📝 Altyazı Seçimi ve Birleştirme | 🔄 Otomatik yt-dlp Güncellemesi |
| ✨ Basit kullanıcı arayüzü | 💾 Açıklamayı ve Küçük Resmi Kaydet | 🛠️ FFmpeg/yt-dlp/Deno Algılama | | ✨ Basit Kullanıcı Arayüzü | 💾 Açıklama ve Küçük Resim Kaydetme | 🛠️ FFmpeg/yt-dlp/Deno Algılama |
| 📋 Çalma Listesi Desteği ve Seçici | 🚀 Hız Sınırlayıcı | ⚙️ Özel Komutlar | | 📋 Oynatma Listesi Desteği | 🚀 Hız Sınırlayıcı | ⚙️ Özel Komutlar |
| 📑 Bölümleri Yerleştir | ✂️ Video Bölümlerini Kırp | 🍪 Çerezlerle Giriş Yapın | | 📑 Bölüm Entegrasyonu | ✂️ Video Kırpma | 🍪 Çerez ile Giriş |
| 📜 Geçmişi İndir | 🔄 Kanal Seçimini Serbest Bırak | 🌐 Proxy Desteği | | 📜 İndirme Geçmişi | 🔄 Yayın Kanalı Seçimi | 🌐 Proxy Desteği |
| 🎚️ Ses Formatı Dönüştürme | 🎬 Video Formatı Ayarları | 🆙 Yerleşik Güncelleyici Sekmesi | | 🎚️ Ses Formatı Dönüştürme | 🎬 Video Format Ayarları | 🆙 Entegre Güncelleme Sekmesi |
| 🌍 Genel Mod | 🔊 Ses Normalizasyonu (EBU R128) | 🌍 14 Dilde Yerelleştirme | | 🌍 Genel Mod | 🔊 Ses Normalizasyonu (EBU R128) | 🌍 14 Dilde Yerelleştirme |
| 💾 Oynatma Listesi Dışa Aktarma | ⚙️ Varsayılan Kalite ve Altyazı | |
</div> </div>
<a id="installation"></a> <a id="kurulum"></a>
## 🚀 Kurulum ## 🚀 Kurulum
### ⚡ Hızlı Kurulum (Önerilir) ### ⚡ Hızlı Kurulum (Önerilen)
YTSage'i PyPI'den yükleyin: YTSage'i PyPI üzerinden yükleyin:
```bash ```bash
pip install ytsage pip install ytsage
``` ```
<details> <details>
<summary>🔄 Mevcut bir kurulumu güncelleyin</summary> <summary>🔄 Mevcut Kurulumu Güncelle</summary>
```bash ```bash
pip install --upgrade ytsage pip install --upgrade ytsage
@@ -94,41 +95,41 @@ pip install --upgrade ytsage
</details> </details>
Ardından uygulamayı başlatın: Ardından uygulamayı çalıştırın:
```bash ```bash
ytsage ytsage
``` ```
### 📦 Önceden Oluşturulmuş Yürütülebilir Dosyalar ### 📦 Hazır Çalıştırılabilir Dosyalar (Executable)
> [👉 Download Latest Release](https://github.com/oop7/YTSage/releases/latest) > [👉 En Son Sürümü İndir](https://github.com/oop7/YTSage/releases/latest)
#### 🪟 Windows #### 🪟 Windows
| Biçim | Açıklama | | Format | Açıklama |
|----------|----------------| |--------|-------------|
| ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Standart yükleyici | | ![Windows EXE](https://img.shields.io/badge/Windows-EXE-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Standart Kurulum Dosyası |
| ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | FFmpeg paketiyle birlikte | | ![Windows FFmpeg](https://img.shields.io/badge/Windows-FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | FFmpeg Dahil |
| ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Taşınabilir versiyon, kurulum gerektirmez | | ![Windows Portable](https://img.shields.io/badge/Windows-Portable-0078D6?style=for-the-badge&logo=windows&logoColor=white) | Taşınabilir Sürüm, kuruluma gerek yok |
| ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | FFmpeg ile taşınabilir, sıkıştırılmış | | ![Windows Portable FFmpeg](https://img.shields.io/badge/Windows-Portable%20FFmpeg-0078D6?style=for-the-badge&logo=windows&logoColor=white) | FFmpeg Dahil Taşınabilir, sıkıştırılmış (ZIP) |
<details> <details>
<summary>🛠️ Kurulum Adımları</summary> <summary>🛠️ Kurulum Adımları</summary>
1. **EXE Yükleyici (`.exe`)**: Dosyaya çift tıklayın ve kurulum sihirbazını izleyin. 1. **EXE Yükleyici (`.exe`)**: Dosyaya çift tıklayın ve kurulum sihirbazını takip edin.
2. **Taşınabilir Sürüm (`.zip`)**: Arşivi istediğiniz konuma çıkarın ve `ytsage.exe`'i çalıştırın. 2. **Taşınabilir Sürüm (`.zip`)**: Dosyayı istediğiniz yere çıkarın ve `ytsage.exe` dosyasını çalıştırın.
3. **FFmpeg Paketli**: Sisteminizde FFmpeg yüklü değilse FFmpeg paketli versiyonlarını seçin. 3. **Dahili FFmpeg**: Sisteminizde FFmpeg kurulu değilse, FFmpeg dahil olan sürümleri seçin.
</details> </details>
#### 🐧 Linux #### 🐧 Linux
| Biçim | Açıklama | | Format | Açıklama |
|----------|----------------| |--------|-------------|
| ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Debian paketi | | ![Linux DEB](https://img.shields.io/badge/Linux-DEB-FCC624?style=for-the-badge&logo=linux&logoColor=black) | Debian Paketi |
| ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, taşınabilir | | ![Linux AppImage](https://img.shields.io/badge/Linux-AppImage-FCC624?style=for-the-badge&logo=linux&logoColor=black) | AppImage, Taşınabilir |
| ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | RPM paketi | | ![Linux RPM](https://img.shields.io/badge/Linux-RPM-FCC624?style=for-the-badge&logo=linux&logoColor=black) | RPM Paketi |
| ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Düz Paket Paketi | | ![Flathub](https://img.shields.io/badge/Linux-Flatpak-FCC624?style=for-the-badge&logo=flathub&logoColor=black) | Flatpak Paketi |
<details> <details>
<summary>🛠️ Kurulum Adımları</summary> <summary>🛠️ Kurulum Adımları</summary>
@@ -136,7 +137,7 @@ ytsage
- **DEB (`.deb`)**: - **DEB (`.deb`)**:
```bash ```bash
sudo dpkg -i ytsage_*.deb sudo dpkg -i ytsage_*.deb
sudo apt-get install -f # Fix missing dependencies if any sudo apt-get install -f # Gerekirse eksik bağımlılıkları gidermek için
``` ```
- **RPM (`.rpm`)**: - **RPM (`.rpm`)**:
```bash ```bash
@@ -147,32 +148,32 @@ ytsage
chmod +x YTSage-*.AppImage chmod +x YTSage-*.AppImage
./YTSage-*.AppImage ./YTSage-*.AppImage
``` ```
- **Flatpak**: Flathub'daki talimatları izleyin veya şunu çalıştırın: - **Flatpak**: Flathub üzerindeki talimatları izleyin veya şunu çalıştırın:
```bash ```bash
flatpak install flathub io.github.oop7.ytsage flatpak install flathub io.github.oop7.ytsage
``` ```
</details> </details>
#### 🍎macOS #### 🍎 macOS
| Biçim | Açıklama | | Format | Açıklama |
|----------|----------------| |--------|-------------|
| ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Apple Silicon için sıkıştırılmış uygulama | | ![macOS ARM64 APP](https://img.shields.io/badge/macOS-ARM64%20APP-000000?style=for-the-badge&logo=apple&logoColor=white) | Apple Silicon için ZIP Uygulaması |
| ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Apple Silicon için disk görüntüsü yükleyici | | ![macOS ARM64 DMG](https://img.shields.io/badge/macOS-ARM64%20DMG-000000?style=for-the-badge&logo=apple&logoColor=white) | Apple Silicon için Disk Image Kurulum Dosyası |
<details> <details>
<summary>🛠️ Kurulum Adımları</summary> <summary>🛠️ Kurulum Adımları</summary>
- **DMG Installer (`.dmg`)**: Bağlamak için çift tıklayın, ardından `YTSage.app`'i Uygulamalar klasörünüze sürükleyin. - **DMG Yükleyici (`.dmg`)**: Bağlamak için çift tıklayın ve `YTSage.app` dosyasını Uygulamalar klasörünüze sürükleyin.
- **Uygulama Arşivi (`.zip`)**: Zip dosyasını çıkartın ve `YTSage.app`'i Uygulamalar klasörünüze taşıyın. - **Uygulama Arşivi (`.zip`)**: ZIP dosyasını çıkarın ve `YTSage.app` dosyasını Uygulamalar klasörünüze taşıyın.
*Not: "Uygulama hasar gördü" hatasıyla karşılaşırsanız aşağıdaki [macOS troubleshooting section](#troubleshooting)'e bakın.* *Not: "Uygulama hasarlı" hatası alırsanız, aşağıdaki macOS Sorun Giderme bölümüne bakın.*
</details> </details>
--- ---
<details> <details>
<summary>💻 Kaynaktan Manuel Kurulum</summary> <summary>💻 Kaynak Kodundan Manuel Kurulum</summary>
### 1. Depoyu Klonlayın ### 1. Depoyu Klonlayın
@@ -181,9 +182,9 @@ git clone https://github.com/oop7/YTSage.git
cd YTSage cd YTSage
``` ```
### 2. Bağımlılıkları Kurun ### 2. Bağımlılıkları Yükleyin
#### ⚡UV ile #### ⚡ uv ile
```bash ```bash
uv pip install . uv pip install .
@@ -195,7 +196,7 @@ uv pip install .
pip install . pip install .
``` ```
### 3. Uygulamayı çalıştırın ### 3. Uygulamayı Çalıştırın
```bash ```bash
python -m ytsage.main python -m ytsage.main
@@ -203,146 +204,151 @@ python -m ytsage.main
</details> </details>
<a id="screenshots"></a> <a id="ekran-görüntüleri"></a>
## 📸 Ekran görüntüleri ## 📸 Ekran Görüntüleri
<div align="center"> <div align="center">
<table> <table>
<tr> <tr>
<td><img src="../branding/screenshots/Download-Settings.png" alt="Download Settings" width="400"/></td> <td><img src="../branding/screenshots/Download-Settings.png" alt="İndirme Ayarları" width="400"/></td>
<td><img src="../branding/screenshots/playlist.png" alt="Playlist Download" width="400"/></td> <td><img src="../branding/screenshots/playlist.png" alt="Oynatma Listesi İndirme" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>İndirme Ayarları</em></td> <td align="center"><em>İndirme Ayarları</em></td>
<td align="center"><em>Çalma Listesi İndir</em></td> <td align="center"><em>Oynatma Listesi İndirme</em></td>
</tr> </tr>
<tr> <tr>
<td><img src="../branding/screenshots/audio_format.png" alt="Audio Format Selection with Save Thumbnail" width="400"/></td> <td><img src="../branding/screenshots/audio_format.png" alt="Ses Formatı Seçimi" width="400"/></td>
<td><img src="../branding/screenshots/Custom-Option.png" alt="Custom Options" width="400"/></td> <td><img src="../branding/screenshots/Custom-Option.png" alt="Özel Seçenekler" width="400"/></td>
</tr> </tr>
<tr> <tr>
<td align="center"><em>Ses Formatı</em></td> <td align="center"><em>Ses Formatı</em></td>
<td align="center"><em>Özel Seçenekler</em></td> <td align="center"><em>Özel Seçenekler</em></td>
</tr> </tr>
</table> </table>
</div><a id="usage"></a> </div>
<a id="kullanım"></a>
## 📖 Kullanım ## 📖 Kullanım
<details> <details>
<summary>🎯 Temel Kullanım</summary> <summary>🎯 Temel Kullanım</summary>
1. **YTSage'i başlatın** 1. **YTSage'i başlatın**
2. **YouTube URL'sini yapıştırın** (veya "URL'yi yapıştır" düğmesini kullanın) 2. **Bir YouTube URL'si yapıştırın** (veya "Paste URL" düğmesini kullanın)
3. **"Analiz Et"i tıklayın** 3. **"Analyze" düğmesine tıklayın**
4. **Biçim Seçin:** 4. **Formatı Seçin:**
- `Video` video indirmeleri için - Video indirmek için `Video`
- `Audio Only` ses çıkarma için - Sadece ses çıkarmak için `Audio Only`
5. **Seçenekleri seçin:** 5. **Seçenekleri Belirleyin:**
- Altyazıları etkinleştirin ve dili seçin - Altyazıları etkinleştirin ve dili seçin
- Altyazı birleştirmeyi etkinleştir - Altyazı birleştirmeyi (Merge subs) etkinleştirin
- Küçük resmi kaydet - Küçük resmi kaydet (Save thumbnail)
- Sponsor segmentlerini kaldırın - Sponsor bölümlerini kaldır (SponsorBlock)
- Açıklamayı kaydet - Açıklamayı kaydet (Save description)
- Bölümleri yerleştir - Bölümleri göm (Embed chapters)
6. **Çıktı Dizinini Seçin** 6. **Çıkış Dizinini Seçin**
7. **"İndir"e tıklayın** 7. **"Download" düğmesine tıklayın**
> 💡 Varsayılan indirme dizini kullanıcının "İndirilenler" klasörüdür. > 💡 Varsayılan indirme dizini kullanıcının "İndirmeler" klasörüdür.
</details> </details>
<details> <details>
<summary>📋 Çalma Listesi İndir</summary> <summary>📋 Oynatma Listesi İndirme</summary>
1. **Oynatma Listesi URL'sini yapıştırın** 1. **Oynatma Listesi URL'sini yapıştırın**
2. **"Analiz Et"i tıklayın** 2. **"Analyze" düğmesine tıklayın**
3. **Oynatma seçiciden videoları seçin (isteğe bağlı, varsayılan olarak tümü)** 3. **Seçiciden videoları seçin (varsayılan olarak tümü seçilidir)**
4. **İstediğiniz formatı/kaliteyi seçin** 4. **İstediğiniz formatı/kaliteyi seçin**
5. **"İndir"e tıklayın** 5. **"Download" düğmesine tıklayın**
> 💡 Uygulama indirme sırasını otomatik olarak yönetir > 💡 Uygulama indirme kuyruğunu otomatik olarak yönetir ve oynatma listesi girişlerini `.txt`, `.csv`, `.m3u` veya `.json` dosyaları olarak dışa aktarabilirsiniz.
</details> </details>
<details> <details>
<summary>🌍 YouTube dışı siteler için Genel Mod</summary> <summary>🌍 YouTube Dışındaki Siteler İçin Genel Mod</summary>
YTSage'in Dailymotion, CBC Gem, TikTok ve diğerleri gibi yt-dlp tarafından desteklenen sitelerdeki URL'leri kabul etmesini istiyorsanız Genel Modu kullanın. YTSage'in Dailymotion, TikTok ve diğerleri gibi yt-dlp tarafından desteklenen sitelerden gelen URL'leri kabul etmesini istediğinizde Genel Modu kullanın.
Nasıl kullanılır: Nasıl kullanılır:
1. `Download Settings`'i açın. 1. `Download Settings` bölümünü açın.
2. `Generic Mode`'ı etkinleştirin. 2. `Generic Mode` seçeneğini etkinleştirin.
3. Desteklenen YouTube dışı bir video veya oynatma listesi URL'sini yapıştırın. 3. YouTube dışındaki desteklenen bir video veya oynatma listesi URL'sini yapıştırın.
4. `Analyze`'a tıklayın. 4. `Analyze` düğmesine tıklayın.
5. Bir format seçin ve her zamanki gibi indirin. 5. Bir format seçin ve normal şekilde indirin.
Notlar: Notlar:
- Genel Mod yalnızca YTSage içindeki URL doğrulamasını değiştirir. Hedef sitenin yüklü yt-dlp sürümünüz tarafından hala desteklenmesi gerekiyor. - Genel Mod sadece YTSage içindeki URL doğrulamasını değiştirir. Hedef site hala yüklü yt-dlp sürümünüz tarafından desteklenmelidir.
- Bazı siteler, çıkarıcıya bağlı olarak çerezlere, oturum açma oturumuna, proxy'ye veya ekstra yt-dlp argümanlarına ihtiyaç duyar. - Bazı siteler, çıkarıcıya bağlı olarak çerezler, giriş, proxy veya ek yt-dlp argümanları gerektirebilir.
- Bir site başarısız olursa, sorunu bildirmeden önce yerleşik güncelleyici sekmesinden yt-dlp'yi güncelleyin. - Bir site hata verirse, sorun bildirmeden önce entegre güncelleme sekmesinden yt-dlp'yi güncelleyin.
</details> </details>
<details> <details>
<summary>🧰 Medya ve İndirme Seçenekleri</summary> <summary>🧰 Medya ve İndirme Seçenekleri</summary>
- **Altyazı Seçenekleri:** Dilleri filtreleyin ve altyazıları video dosyasına ekleyin - **Altyazı Seçenekleri:** Dilleri filtreleyin ve altyazıları video dosyasına gömün.
- **Altyazı Birleştirme:** Sabit kodlanmış altyazılar için altyazıları video dosyasıyla birleştirin - **Altyazı Birleştirme:** Altyazıları video dosyasına kalıcı olarak (hardcode) birleştirir.
- **Açıklamayı Kaydet:** Video açıklamasını bir metin dosyası olarak kaydedin - **Açıklamayı Kaydet:** Video açıklamasını bir metin dosyası olarak kaydeder.
- **Küçük Resmi Kaydet:** Video küçük resmini bir resim dosyası olarak kaydedin - **Küçük Resmi Kaydet:** Video küçük resmini bir resim dosyası olarak kaydeder.
- **Bölümleri Göm:** Uyumlu video oynatıcılar için bölüm işaretlerini meta veri olarak gömün - **Bölümleri Göm:** Uyumlu video oynatıcılar için meta veri olarak bölüm işaretlerini ekler.
- **Sponsor Segmentlerini Kaldır:** SponsorBlock'u kullanarak sponsor segmentlerini videodan kaldırın - **Sponsor Bölümlerini Kaldır:** Videodaki sponsorlu bölümleri kaldırmak için SponsorBlock kullanır.
- **Videoyu Kırp:** `HH:MM:SS` biçiminde zaman aralıklarını belirterek videonun yalnızca belirli bölümlerini indirin - **Videoyu Kırp:** Zaman aralığını `SA:DA:SA` formatında belirterek videonun sadece belirli bölümlerini indirin.
</details> </details>
<details> <details>
<summary>⚙️ Çıktı ve Dosya Ayarları</summary> <summary>⚙️ Çıkış ve Dosya Ayarları</summary>
- **Hız Sınırlayıcı:** İndirme hızını sınırlandırın, örneğin 500 KB/s için `500K`.
- **İndirme Yolunu Kaydet:** Gelecekteki indirmeler için varsayılan indirme yolunu kaydeder. **Download Settings → Download Path** bölümünde mevcuttur.
- **Varsayılan Video Çözünürlüğü:** Otomatik seçim için tercih ettiğiniz video çözünürlüğünü ayarlayın (örn: 1080p, 720p). **Download Settings → Default Video Resolution** bölümünde mevcuttur.
- **Varsayılan Altyazı Dilleri:** Otomatik seçim için varsayılan altyazı dillerini ayarlayın (virgülle ayrılmış, örn: `tr,en`). **Download Settings → Default Subtitle Languages** bölümünde mevcuttur.
- **Dosya Adı Formatı:** Çıkış dosyası adı formatını `%(title)s`, `%(uploader)s` gibi değişkenler kullanarak özelleştirin. **Download Settings → Filename Format** bölümünde mevcuttur.
- **Çıkış Formatını Zorla:** Videoyu `mp4`, `webm` veya `mkv` gibi belirli bir konteyner formatında indirmeye zorlar. **Download Settings → Output Format Settings** bölümünde mevcuttur.
- **Ses Formatı Dönüştürme:** Sadece ses indirmelerini `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A`, `Vorbis` veya `Best` gibi tercih edilen formatlara dönüştürün. **Download Settings → Audio Format Settings** bölümünde mevcuttur.
- **Ses Normalizasyonu:** EBU R128 kullanarak sadece ses indirmeleri için ses seviyesini standartlaştırır.
- **Eşzamanlı Bağlantılar:** Dosyaları aynı anda birden fazla parça halinde indirerek indirme hızını önemli ölçüde artırın. **Download Settings → General → Concurrent Connections** bölümünde mevcuttur (Varsayılan 1, IP engellemelerini önlemek için maksimum 8-10 önerilir).
- **Hız Sınırlayıcı:** İndirme hızını sınırlayın, örneğin 500 KB/s için `500K`
- **İndirme Yolunu Kaydet:** Gelecekteki indirmeler için varsayılan indirme yolunu kaydedin. **İndirme Ayarları → İndirme Yolu**'nda mevcuttur.
- **Çıktı Dosya Adı Formatı:** `%(title)s`, `%(uploader)s` ve `%(resolution)s` gibi değişkenleri kullanarak çıktı dosya adı formatını özelleştirin. **İndirme Ayarları → Dosya Adı Formatı**'nda mevcuttur.- **Çıktı Formatını Zorla:** Video indirme işlemlerini `mp4`, `webm` veya `mkv` gibi belirli bir kapsayıcı formatına zorlayın. **İndirme Ayarları → Çıktı Formatı Ayarları** bölümünde mevcuttur.
- **Ses Formatı Dönüştürme:** Yalnızca ses indirmelerini `AAC`, `MP3`, `FLAC`, `WAV`, `Opus`, `M4A` gibi tercih edilen formatlara dönüştürün `Vorbis` veya `Best`. **İndirme Ayarları → Ses Formatı Ayarları**'nda mevcuttur.
- **Ses Normalizasyonu:** EBU R128 kullanarak yalnızca ses indirmeleri için ses düzeyini standartlaştırın.
- **Eşzamanlı Bağlantılar:** Dosyaları aynı anda birden fazla parça halinde indirerek indirme hızını önemli ölçüde artırın. **İndirme Ayarları → Genel → Eşzamanlı Bağlantılar** altında mevcuttur (Varsayılan 1, IP kısıtlamasını önlemek için önerilen maksimum 8-10).\n
</details> </details>
<details> <details>
<summary>🌐 Erişim ve Ağ</summary> <summary>🌐 Erişim ve Ağ</summary>
- **Çerezler ile Giriş Yapın:** Özel içeriğe erişmek için çerezleri kullanarak YouTube'a giriş yapın. - **Çerez ile Giriş:** Özel içeriğe erişmek için çerezleri kullanarak YouTube'da oturum açın.
Nasıl kullanılır: Kullanım:
1. **Önerilen:** Uygulamadaki yerleşik `Extract cookies from browser` seçeneğini kullanın, ardından tarayıcınızı ve isteğe bağlı olarak bir profili seçin. 1. **Önerilen:** Uygulamadaki entegre `Extract cookies from browser` seçeneğini kullanın, tarayıcıyı ve isteğe bağlı olarak profili seçin.
2. Alternatif olarak çerezleri manuel olarak çıkarın: 2. İsteğe bağlı olarak çerezleri manuel olarak çıkarın:
a. [cookie-editor](https://github.com/moustachauve/cookie-editor?tab=readme-ov-file) gibi bir uzantı kullanarak çerezleri tarayıcınızdan dışa aktarın a. [cookie-editor](https://github.com/moustachauve/cookie-editor) gibi bir uzantı kullanarak tarayıcınızdan çerezleri dışa aktarın.
b. Çerezleri Netscape formatında kopyalayın b. Çerezleri Netscape formatında kopyalayın.
c. `cookies.txt` adında bir dosya oluşturun ve çerezleri bu dosyaya yapıştırın c. `cookies.txt` adlı bir dosya oluşturun ve çerezleri yapıştırın.
D. Uygulamada `cookies.txt` dosyasını seçin d. Uygulamada `cookies.txt` dosyasını seçin.
- **Proxy Desteği:** İndirmeler için bir proxy sunucusu kullanın, örneğin `http://<proxy-server>:<port>` - **Proxy Desteği:** İndirmeler için bir proxy sunucusu kullanın, örn: `http://<proxy-server>:<port>`
- **Genel Mod:** YTSage'in, yt-dlp tarafından desteklenen YouTube dışı sitelerden analiz yapmasına ve indirme yapmasına izin verin. **İndirme Ayarları → Genel Mod**'dan etkinleştirin. - **Genel Mod:** YTSage'in yt-dlp tarafından desteklenen YouTube dışındaki siteleri analiz etmesine ve indirmesine olanak tanır. **Download Settings → Generic Mode** bölümünden etkinleştirin.
</details> </details>
<details> <details>
<summary>🛠️ Araçlar ve Bakım</summary> <summary>🛠️ Araçlar ve Bakım</summary>
- **Özel Komutlar:** Komut satırı bağımsız değişkenleri aracılığıyla gelişmiş yt-dlp özelliklerine erişin - **Özel Komutlar:** Komut satırı argümanları aracılığıyla gelişmiş yt-dlp özelliklerine erişin.
- **Güncelleyici Sekmesi:** Özel Seçenekler'de yerleşik güncelleme araçlarını tek yerden yönetin: - **Güncelleme Sekmesi:** Entegre güncelleme araçlarını Özel Seçenekler altındaki tek bir yerden yönetin:
- **yt-dlp Güncellemeleri:** Güncellemeleri kontrol edin ve Mevcut ve Gecelik sürüm kanalları arasında geçiş yapın - **yt-dlp Güncelleme:** Güncellemeleri kontrol edin ve Stable ile Nightly yayın kanalları arasında geçiş yapın.
- **FFmpeg Sürüm Denetleyicisi:** FFmpeg sürümünüzü kontrol edin ve kurulum kılavuzlarını açın - **FFmpeg Sürüm Kontrolü:** FFmpeg sürümünüzü kontrol edin ve kurulum kılavuzlarını açın.
- **Deno Güncellemeleri:** Deno çalışma zamanını kontrol edin ve güncelleyin - **Deno Güncelleme:** Deno çalışma zamanını kontrol edin ve güncelleyin.
- **FFmpeg/yt-dlp/Deno Algılama:** Hakkında iletişim kutusundan FFmpeg, yt-dlp ve Deno yollarını ve sürümlerini otomatik olarak algılar. - **FFmpeg/yt-dlp/Deno Algılama:** Hakkında diyaloğunda FFmpeg, yt-dlp ve Deno yollarını ve sürümlerini otomatik olarak algılar.
- **İndirme Geçmişi:** **Geçmiş** düğmesinden geçmiş indirmeleri küçük resimler ve durumlarla birlikte görüntüleyin. - **İndirme Geçmişi:** **History** düğmesi aracılığıyla küçük resimler ve durumlarla birlikte geçmiş indirmeleri görün.
</details> </details>
<details> <details>
<summary>🌍 Yerelleştirme</summary> <summary>🌍 Yerelleştirme</summary>
YTSage, dünya çapında erişilebilirlik için **14 dili** destekler. **Özel Seçenekler → Dil**'den tercih ettiğiniz dili seçin. YTSage, küresel erişim için **14 dili** destekler. Tercih ettiğiniz dili **Custom Options → Language** bölümünden seçin.
### Desteklenen Diller ### Desteklenen Diller
@@ -360,7 +366,7 @@ YTSage, dünya çapında erişilebilirlik için **14 dili** destekler. **Özel S
| Dil | Dosya | Dil | Dosya | | Dil | Dosya | Dil | Dosya |
|----------|------|----------|------| |----------|------|----------|------|
| 🇺🇸 İngilizce | [README.md](../README.md) | 🇪🇸 İspanyolca | [README.es.md](README.es.md) | 🇺🇸 İngilizce | [README.md](README.md) | 🇪🇸 İspanyolca | [README.es.md](README.es.md) |
| 🇸🇦 Arapça | [README.ar.md](README.ar.md) | 🇫🇷 Fransızca | [README.fr.md](README.fr.md) | | 🇸🇦 Arapça | [README.ar.md](README.ar.md) | 🇫🇷 Fransızca | [README.fr.md](README.fr.md) |
| 🇩🇪 Almanca | [README.de.md](README.de.md) | 🇮🇳 Hintçe | [README.hi.md](README.hi.md) | | 🇩🇪 Almanca | [README.de.md](README.de.md) | 🇮🇳 Hintçe | [README.hi.md](README.hi.md) |
| 🇮🇩 Endonezce | [README.id.md](README.id.md) | 🇮🇹 İtalyanca | [README.it.md](README.it.md) | | 🇮🇩 Endonezce | [README.id.md](README.id.md) | 🇮🇹 İtalyanca | [README.it.md](README.it.md) |
@@ -368,165 +374,165 @@ YTSage, dünya çapında erişilebilirlik için **14 dili** destekler. **Özel S
| 🇧🇷 Portekizce | [README.pt.md](README.pt.md) | 🇷🇺 Rusça | [README.ru.md](README.ru.md) | | 🇧🇷 Portekizce | [README.pt.md](README.pt.md) | 🇷🇺 Rusça | [README.ru.md](README.ru.md) |
| 🇹🇷 Türkçe | [README.tr.md](README.tr.md) | 🇨🇳 Çince | [README.zh.md](README.zh.md) | | 🇹🇷 Türkçe | [README.tr.md](README.tr.md) | 🇨🇳 Çince | [README.zh.md](README.zh.md) |
> 💡 **Çeviriye katkıda bulunmak mı istiyorsunuz?** Daha fazla dil eklememize yardımcı olmak için [Contributing](#contributing) bölümüne göz atın! > 💡 **Çeviriye yardımcı olmak ister misiniz?** Daha fazla dil eklememize yardımcı olmak için [Katkıda Bulunma](#katkıda-bulunma) bölümüne bakın!
</details> </details>
<a id="troubleshooting"></a> <a id="sorun-giderme"></a>
## 🛠️ Sorun giderme ## 🛠️ Sorun Giderme
<details> <details>
<summary>Genel sorunları ve çözümleri görüntülemek için tıklayın</summary> <summary>Yaygın sorunlar ve çözümler için tıklayın</summary>
- **Biçim tablosu görüntülenmiyor:** yt-dlp'yi en son sürüme güncelleyin ve her gece yt-dlp'ye geçin. - **Format tablosu görünyor:** yt-dlp'yi en son sürüme güncelleyin ve yt-dlp Nightly kanalına geçmeyi deneyin.
- **İndirme başarısız oluyor:** İnternet bağlantınızı kontrol edin ve videonun mevcut olduğundan emin olun. - **İndirme başarısız oldu:** İnternet bağlantınızı kontrol edin ve videonun erişilebilir olduğundan emin olun.
- **Belirli indirme hataları:** - **Belirli İndirme Hataları:**
- **Özel videolar:** Özel içeriğe erişmek için çerez kimlik doğrulamasını kullanın. - **Özel Videolar:** Özel içeriğe erişmek için çerez kimlik doğrulamasını kullanın.
- **Yaş kısıtlamalı içerik:** Yaş kısıtlamalı videoları görüntülemek için YouTube hesabına giriş yapın. - **Yaş Sınırlı İçerik:** Yaş sınırlı videoları görüntülemek için YouTube hesabınızda oturum açın.
- **Coğrafi olarak engellenen videolar:** Bölgesel kısıtlamaları aşmak için bir VPN kullanmayı düşünün. - **Coğrafi Engelli Videolar:** Bölgesel kısıtlamaları aşmak için bir VPN kullanmayı düşünün.
- **Kaldırılan/silinen videolar:** Video artık YouTube'da mevcut değil. - **Video Kaldırıldı:** Video artık YouTube'da mevcut değildir.
- **Canlı yayınlar:** Canlı yayınlar indirilemez; akışın bitmesini bekleyin. - **Canlı Yayınlar:** Canlı yayınlar yayınlanırken indirilemez; yayın bitene kadar bekleyin.
- **Ağ hataları:** İnternet bağlantınızı kontrol edip tekrar deneyin. - **Ağ Hataları:** İnternet bağlantınızı kontrol edin ve tekrar deneyin.
- **Geçersiz URL'ler:** URL'nin doğru olduğundan ve desteklenen bir platforma ait olduğundan emin olun. - **Geçersiz URL:** URL'nin doğru olduğundan ve desteklenen bir platforma ait olduğundan emin olun.
- **Premium içerik:** YouTube Premium üyeliği gerektirir. - **Premium İçerik:** YouTube Premium aboneliği gerektirir.
- **Telif hakkı engellemeleri:** İçerik, telif hakkı kısıtlamaları nedeniyle engellenmiştir. - **Telif Hakkı Engeli:** İçerik telif hakkı kısıtlamaları nedeniyle engellenmiştir.
- **İndirmeden sonra video ve ses dosyalarını ayırın:** Bu, FFmpeg eksik olduğunda veya algılanmadığında meydana gelir. YTSage, yüksek kaliteli video ve ses akışlarını birleştirmek için FFmpeg'e ihtiyaç duyar. - **İndirme sonrası video ve ses dosyaları ayrı:** Bu durum FFmpeg eksik olduğunda veya algılanmadığında olur. YTSage, yüksek kaliteli video ve ses akışlarını birleştirmek için FFmpeg gerektirir.
- **Çözüm:** FFmpeg'in sisteminizin PATH'inde kurulu ve erişilebilir olduğundan emin olun. Windows kullanıcıları için en kolay seçenek, FFmpeg ile birlikte gelen `YTSage-v<version>-ffmpeg.exe` dosyasını indirmektir. - **Çözüm:** FFmpeg'in kurulu olduğundan ve sistem PATH'inizde erişilebilir olduğundan emin olun. Windows kullanıcıları için en kolay seçenek, FFmpeg ile birlikte gelen `YTSage-v<sürüm>-ffmpeg.exe` dosyasını indirmektir.
--- ---
#### 🛡️ Windows Defender / Antivirüs Uyarısı #### 🛡️ Windows Defender / Antivirüs Uyarısı
Bazı antivirüs yazılımları `.exe` dosyalarını yanlış pozitif olarak işaretleyebilir. Bu, paket uygulamaların **bilinen bir sınırlamasıdır**. Bazı antivirüs yazılımları `.exe` dosyalarını yanlış pozitif olarak işaretleyebilir. Bu, paketlenmiş uygulamaların **bilinen bir sınırlamasıdır**.
**Bu neden oluyor:** **Neden olur:**
- Antivirüs buluşsal yöntemleri, paketlenmiş yürütülebilir dosyaları şüpheli olarak yanlış tanımlayabilir - Antivirüs sezgiselleri paketlenmiş yürütülebilir dosyaları hatalı bir şekilde şüpheli olarak tanımlayabilir.
**Güvenli alternatifler:** **Güvenli Seçenekler:**
- ✅ **Pip kurulumunu kullanın:** `pip install ytsage` (önerilir) - ✅ **pip kurulumunu kullanın:** `pip install ytsage` (önerilir)
- ✅ **Kaynaktan oluşturun**: bunu takip ederek [guide](../.github/CI_CD_README.md) - ✅ **Kaynaktan derleyin**: Bu [kılavuzu](.github/CI_CD_README.md) takip ederek
- ✅ **Uygulamayı antivirüs yazılımınızda beyaz listeye alın** - ✅ **Uygulamayı antivirüs yazılımınızın beyaz listesine ekleyin**.
#### 🍎 macOS: "Uygulama hasarlı ve açılamıyor" #### 🍎 macOS: "Uygulama hasarlı ve açılamıyor"
Bu hatayı macOS Sonoma veya daha yeni bir sürümde görüyorsanız karantina özelliğini kaldırmanız gerekir. macOS Sonoma veya daha yeni sürümlerde bu hatayı görüyorsanız, karantina özniteliğini kaldırmanız gerekir.
1. **Terminal'i açın** (Spotlight'ı kullanarak bulabilirsiniz). 1. **Terminal'i açın** (Spotlight kullanarak bulabilirsiniz).
2. **Aşağıdaki komutu yazın** ancak **henüz Enter'a basmayın**. Sondaki boşluğu eklediğinizden emin olun: 2. **Aşağıdaki komutu yazın**, ancak henüz Enter tuşuna **BASMAYIN**. Sonundaki boşluğu eklediğinizden emin olun:
```bash ```bash
xattr -d com.apple.quarantine xattr -d com.apple.quarantine
``` ```
3. **`YTSage.app` dosyasını Finder pencerenizden sürükleyip doğrudan Terminal penceresine bırakın. Bu, doğru dosya yolunu otomatik olarak yapıştıracaktır. 3. **`YTSage.app` dosyasını Finder penceresinden sürükleyin** ve doğrudan Terminal penceresine bırakın. Bu, doğru dosya yolunu otomatik olarak yapıştıracaktır.
4. **Komutu çalıştırmak için **Enter** tuşuna basın. 4. Komutu çalıştırmak için **Enter tuşuna basın**.
5. **YTSage.app'i tekrar açmayı deneyin.** Artık doğru şekilde başlatılması gerekir. 5. **YTSage.app'i tekrar açmayı deneyin.** Artık düzgün bir şekilde çalışmalıdır.
--- ---
#### **Yapılandırma Konumları (Gelişmiş)** #### **Yapılandırma Konumu (Gelişmiş)**
- **Windows:** `%LOCALAPPDATA%\YTSage` - **Windows:** `%LOCALAPPDATA%\YTSage`
- **macOS:** `~/Library/Application Support/YTSage` - **macOS:** `~/Library/Application Support/YTSage`
- **Linux:** `~/.local/share/YTSage` - **Linux:** `~/.local/share/YTSage`
</details> </details>
<a id="sponsor"></a> <a id="sponsor-olun"></a>
## 💖 Sponsor ## 💖 Sponsor Olun
YTSage size zaman kazandırıyorsa projeye sponsor olmayı düşünün. Sponsorluk, geliştirme süresinin, platformlar arası testlerin ve gelecekteki iyileştirmelerin karşılanmasına yardımcı olur. YTSage size zaman kazandırıyorsa, projeye sponsor olmayı düşünün. Sponsorluklar geliştirme süresini, tüm platformlarda test yapmayı ve gelecekteki iyileştirmeleri karşılamaya yardımcı olur.
- GitHub Sponsorları: https://github.com/sponsors/oop7 - GitHub Sponsors: https://github.com/sponsors/oop7
- Sponsor bağlantısına doğrudan uygulamanın içindeki Hakkında iletişim kutusundan da ulaşılabilir. - Sponsorluk bağlantısı uygulamadaki Hakkında diyaloğu üzerinden doğrudan mevcuttur.
[![Sponsor YTSage](https://img.shields.io/badge/Sponsor-YTSage-EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/oop7) [![Sponsor YTSage](https://img.shields.io/badge/Sponsor-YTSage-EA4AAA?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/oop7)
<a id="contributing"></a> <a id="katkıda-bulunma"></a>
## 👥 Katkıda Bulunmak ## 👥 Katkıda Bulunma
Katkılarınızı bekliyoruz! İşte nasıl yardımcı olabileceğiniz: Katkılarınız bekliyoruz! İşte nasıl yardımcı olabileceğiniz:
1. 🍴 Depoyu çatallayın 1. 🍴 Depoyu Fork'layın
2. 🌿 Özellik dalınızı oluşturun: 2. 🌿 Özellik dalınızı oluşturun:
```bash ```bash
git checkout -b feature/AmazingFeature git checkout -b feature/AmazingFeature
``` ```
3. 💾 Değişikliklerinizi gerçekleştirin: 3. 💾 Değişikliklerinizi commit'leyin:
```bash ```bash
git commit -m 'Add some AmazingFeature' git commit -m ' AmazingFeature Ekle'
``` ```
4. 📤 Şubeye itin: 4. 📤 Dalı push'layın:
```bash ```bash
git push origin feature/AmazingFeature git push origin feature/AmazingFeature
``` ```
5. 🔄 Bir Çekme İsteği Açın 5. 🔄 Bir Pull Request açın
### 🌍 Çevirilere Katkıda Bulunmak ### 🌍 Çevirilerle Katkıda Bulunun
- Eşleşen yerelleştirilmiş README dosyasını güncelleyin (örneğin `README.es.md`) - İlgili yerelleştirilmiş README dosyasını güncelleyin (örn: `readme-translations/README.tr.md`)
- `ytsage/languages/<code>.json` düzenleyerek uygulama dizelerini senkronize tutun - Uygulama dizelerini `ytsage/languages/<code>.json` dosyasını düzenleyerek senkronize tutun
- Diliniz eksikse `README.md`'den başlayın ve `README.<code>.md`'i oluşturun - Diliniz eksikse, `README.md` dosyasından başlayın ve `README.<code>.md` dosyasını oluşturun
<details> <details>
<summary>📂 Proje Yapısı</summary> <summary>📂 Proje Yapısı</summary>
## YTSage - Proje Yapısı ## YTSage - Proje Yapısı
Bu belge YTSage'in organize klasör yapısını açıklamaktadır. Bu belge YTSage'in düzenli klasör yapısını detaylandırır.
### 📁 Proje Yapısı ### 📁 Proje Düzeni
``` ```
YTSage/ YTSage/
├── 📁 .github/ # GitHub configuration ├── 📁 .github/ # GitHub konfigürasyonları
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates │ ├── 📁 ISSUE_TEMPLATE/ # Sorun şablonları
│ │ └── 🐛-bug-report.md # Bug report template │ │ └── 🐛-bug-report.md # Hata raporu şablonu
│ ├─── 📁 workflows/ # GitHub Actions workflows │ ├─── 📁 workflows/ # GitHub Actions iş akışları
│ │ ├── build-linux.yml # Linux build workflow │ │ ├── build-linux.yml # Linux derleme akışı
│ │ ├── build-macos.yml # macOS build workflow │ │ ├── build-macos.yml # macOS derleme akışı
│ │ │── build-windows.yml # Windows build workflow │ │ │── build-windows.yml # Windows derleme akışı
| | └── release-all.yml # Master release workflow | | └── release-all.yml # Ana yayın akışı
│ └── 📄 CI_CD_README.md # CI/CD documentation │ └── 📄 CI_CD_README.md # CI/CD dökümantasyonu
├── 📁 branding/ # Branding assets (Screenshots, SVGs) ├── 📁 branding/ # Marka varlıkları (ekran görüntüleri, SVG'ler)
│ ├── 📁 icons/ # Application icons │ ├── 📁 icons/ # Uygulama ikonları
│ ├── 📁 screenshots/ # Screenshots for documentation │ ├── 📁 screenshots/ # Dökümantasyon için ekran görüntüleri
│ └── 📁 svg/ # SVG assets │ └── 📁 svg/ # SVG varlıkları
├── 📄 LICENSE # License file ├── 📄 LICENSE # Lisans dosyası
├── 📄 pyproject.toml # Project metadata and dependencies ├── 📄 pyproject.toml # Proje metadatası ve bağımlılıklar
├── 📄 README.md # Project documentation ├── 📄 README.md # Proje dökümantasyonu
├── 📄 requirements.txt # Python dependencies (dev) ├── 📄 requirements.txt # Python bağımlılıkları (dev)
└── 📁 ytsage/ # Source package └── 📁 ytsage/ # Kaynak kod paketi
├── 📁 assets/ # Runtime assets ├── 📁 assets/ # Çalışma zamanı varlıkları
│ ├── 📁 Icon/ # Application icons │ ├── 📁 Icon/ # Uygulama ikonları
│ └── 📁 sound/ # Audio files │ └── 📁 sound/ # Ses dosyaları
├── 📁 languages/ # Localization files ├── 📁 languages/ # Yerelleştirme dosyaları
│ ├── 📄 ar.json # Arabic translation │ ├── 📄 ar.json # Arapça çeviri
│ ├── 📄 de.json # German translation │ ├── 📄 de.json # Almanca çeviri
│ ├── 📄 en.json # English translation │ ├── 📄 en.json # İngilizce çeviri
│ └── ... # Other languages │ └── ... # Diğer diller
├── 📁 core/ # Core business logic ├── 📁 core/ # Temel iş mantığı
│ ├── 📄 __init__.py # Core package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_deno.py # Deno integration │ ├── 📄 ytsage_deno.py # Deno entegrasyonu
│ ├── 📄 ytsage_downloader.py # Download functionality │ ├── 📄 ytsage_downloader.py # İndirme işlevselliği
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration │ ├── 📄 ytsage_ffmpeg.py # FFmpeg entegrasyonu
│ ├── 📄 ytsage_utils.py # Utility functions │ ├── 📄 ytsage_utils.py # Yardımcı fonksiyonlar
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration │ └── 📄 ytsage_yt_dlp.py # yt-dlp entegrasyonu
├── 📁 gui/ # User interface components ├── 📁 gui/ # Kullanıcı arayüzü bileşenleri
│ ├── 📄 __init__.py # GUI package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_gui_main.py # Main application window │ ├── 📄 ytsage_gui_main.py # Ana uygulama penceresi
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes │ └── 📁 ytsage_gui_dialogs/ # Diyalog sınıfları
├── 📁 utils/ # Utility modules ├── 📁 utils/ # Yardımcı modüller
│ ├── 📄 __init__.py # Utils package init │ ├── 📄 __init__.py
│ ├── 📄 ytsage_config_manager.py # Configuration management │ ├── 📄 ytsage_config_manager.py # Yapılandırma yönetimi
│ └── 📄 ytsage_logger.py # Logging utilities │ └── 📄 ytsage_logger.py # Günlük tutma araçları
├── 📄 __init__.py # Package entry point ├── 📄 __init__.py # Paket giriş noktası
└── 📄 main.py # Main execution script └── 📄 main.py # Ana yürütme scripti
``` ```
</details> </details>
## ⭐️ Yıldız Tarihi ## ⭐️ Yıldız Geçmişi
<div align="center"> <div align="center">
## Yıldız Geçmişi ## Star History
<a href="https://www.star-history.com/#oop7/YTSage&Date"> <a href="https://www.star-history.com/#oop7/YTSage&Date">
<picture> <picture>
@@ -540,7 +546,7 @@ YTSage/
## 📜 Lisans ## 📜 Lisans
Bu proje MIT Lisansı kapsamında lisanslıdır; ayrıntılar için [LICENSE](../LICENSE) dosyasına bakın. Bu proje MIT Lisansı altında lisanslanmıştır - detaylar için [LICENSE](LICENSE) dosyasına bakın.
## 🙏 Teşekkürler ## 🙏 Teşekkürler
@@ -549,7 +555,7 @@ Bu proje MIT Lisansı kapsamında lisanslıdır; ayrıntılar için [LICENSE](..
<div align="center"> <div align="center">
<p>Bir iyileştirme önermek veya hata bildirmek için konu açarak bu projeye katkıda bulunan herkese yürekten teşekkür ederiz.</p> <p>İyileştirmeler önermek veya hataları bildirmek için sorunlar açarak bu projeye katkıda bulunan herkese çok teşekkürler.</p>
<table> <table>
<tr class="section"><th colspan="2">Temel Bileşenler</th></tr> <tr class="section"><th colspan="2">Temel Bileşenler</th></tr>
@@ -563,40 +569,41 @@ Bu proje MIT Lisansı kapsamında lisanslıdır; ayrıntılar için [LICENSE](..
</tr> </tr>
<tr> <tr>
<td><a href="https://deno.com/">Deno</a></td> <td><a href="https://deno.com/">Deno</a></td>
<td>Yt-dlp</td> ile entegrasyon için çalışma zamanı <td>yt-dlp entegrasyonu için runtime</td>
</tr> </tr>
<tr class="section"><th colspan="2">Kütüphaneler ve Çerçeveler</th></tr> <tr class="section"><th colspan="2">Kütüphaneler ve Frameworkler</th></tr>
<tr> <tr>
<td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td> <td><a href="https://wiki.qt.io/Qt_for_Python">PySide6</a></td>
<td>GUI Çerçevesi</td> <td>GUI Framework</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-pillow.org/">Yastık</a></td> <td><a href="https://python-pillow.org/">Pillow</a></td>
<td>Görüntü İşleme</td> <td>Resim İşleme</td>
</tr> </tr>
<tr><td><a href="https://requests.readthedocs.io/">istekler</a></td> <tr>
<td><a href="https://requests.readthedocs.io/">requests</a></td>
<td>HTTP İstekleri</td> <td>HTTP İstekleri</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://packaging.python.org/">paketleme</a></td> <td><a href="https://packaging.python.org/">packaging</a></td>
<td>Versiyon ve Paket İşleme</td> <td>Sürüm ve Paket Yönetimi</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://python-markdown.github.io/">markdown</a></td> <td><a href="https://python-markdown.github.io/">markdown</a></td>
<td>Markdown Oluşturma</td> <td>Markdown İşleme</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://github.com/Delgan/loguru">loguru</a></td> <td><a href="https://github.com/Delgan/loguru">loguru</a></td>
<td>Günlüğe kaydetme</td> <td>Günlük Kaydı</td>
</tr> </tr>
<tr class="section"><th colspan="2">Varlıklar ve Katkıda Bulunanlar</th></tr> <tr class="section"><th colspan="2">Varlıklar ve Katkıda Bulunanlar</th></tr>
<tr> <tr>
<td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">Universfield'dan Yeni Bildirim 09</a></td> <td><a href="https://pixabay.com/sound-effects/new-notification-09-352705/">Universfield'dan New Notification 09</a></td>
<td>Bildirim Sesi</td> <td>Bildirim Sesi</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://github.com/viru185">viru185</a></td> <td><a href="https://github.com/viru185">viru185</a></td>
<td>Kod Katılımcısı</td> <td>Kod Katkıda Bulunan</td>
</tr> </tr>
</table> </table>
@@ -604,14 +611,14 @@ Bu proje MIT Lisansı kapsamında lisanslıdır; ayrıntılar için [LICENSE](..
</details> </details>
## ⚠️ Yasal Uyarı ## ⚠️ Feragatname
Bu araç yalnızca kişisel kullanım içindir. Lütfen YouTube'un hizmet şartlarına ve içerik oluşturucuların haklarına saygı gösterin. Bu araç sadece kişisel kullanım içindir. Lütfen YouTube'un Hizmet Şartlarına ve içerik oluşturucuların haklarına saygı gösterin.
--- ---
<div align="center"> <div align="center">
[oop7](https://github.com/oop7) tarafından ❤️ ile yapılmıştır [oop7](https://github.com/oop7) tarafından ❤️ ile yapıldı
</div> </div>