YT Download use Local Host

 একটা ইমন সিস্টেম বানাবো যাতে localhost:8080 এ গিয়ে ইউটিউব লিংক দিলেই ডাউনলোড হবে এমপি4 , এমপি3 Python Server: python -m http.server 8080 লিখে আপনার ফোনের ব্রাউজারে localhost:8080 এ গেলে আপনার ফোনের ফাইলগুলো দেখতে পাবেন।

৩. ইউটিউব ভিডিও ডাউনলোড (yt-dlp)

ইউটিউব  যেকোনো ভিডিও সরাসরি টার্মাক্স দিয়ে হাই-কোয়ালিটিতে ডাউনলোড করা যায়।

কমান্ড: pip install yt-dlp

ডাউনলোড: yt-dlp [ভিডিও লিঙ্ক]




আপনি যেটা চাচ্ছেন সেটা বেশ অ্যাডভান্সড এবং ইন্টারেস্টিং! পাইথনের সাধারণ http.server শুধু ফাইল শেয়ার করতে পারে, কিন্তু এটি লিঙ্ক ইনপুট নিতে পারে না। তাই আপনার জন্য একটি ছোট **Python Flask Web App** তৈরি করে দিচ্ছি যা ব্রাউজারে ইনপুট বক্স দেখাবে এবং সেখানে লিঙ্ক দিলে সেটি ডাউনলোড করে দেবে।

নিচে ধাপে ধাপে কোডগুলো দেওয়া হলো:

### ১. প্রয়োজনীয় লাইব্রেরি ইন্সটল করুন

প্রথমে টার্মাক্সে Flask এবং yt-dlp ইন্সটল করে নিন:

```bash

pkg install python ffmpeg -y

pip install flask yt-dlp


```

### ২. একটি ডাউনলোড স্ক্রিপ্ট তৈরি করুন

এখন একটি ফাইল তৈরি করুন (যেমন: app.py):

```bash

nano app.py


```

এরপর নিচের কোডটি কপি করে সেখানে পেস্ট করুন:

```python

from flask import Flask, request, render_template_string

import yt_dlp

import os


app = Flask(__name__)


# ইন্টারফেস (HTML)

HTML = '''

<!DOCTYPE html>

<html>

<head><title>YT Downloader</title></head>

<body style="text-align: center; padding: 50px; font-family: Arial;">

    <h2>YouTube Video Downloader</h2>

    <form method="POST">

        <input type="text" name="url" placeholder="Paste link here..." style="width: 80%; padding: 10px;" required><br><br>

        <button type="submit" name="format" value="mp4" style="padding: 10px 20px;">Download MP4</button>

        <button type="submit" name="format" value="mp3" style="padding: 10px 20px;">Download MP3</button>

    </form>

    {% if msg %}<p>{{ msg }}</p>{% endif %}

</body>

</html>

'''


@app.route('/', methods=['GET', 'POST'])

def index():

    msg = ""

    if request.method == 'POST':

        url = request.form.get('url')

        fmt = request.form.get('format')

        

        # ডাউনলোডের লোকেশন (Downloads ফোল্ডার)

        save_path = '/sdcard/Download/%(title)s.%(ext)s'

        

        ydl_opts = {

            'outtmpl': save_path,

        }

        

        if fmt == 'mp3':

            ydl_opts.update({

                'format': 'bestaudio/best',

                'postprocessors': [{

                    'key': 'FFmpegExtractAudio',

                    'preferredcodec': 'mp3',

                    'preferredquality': '192',

                }],

            })

        else:

            ydl_opts['format'] = 'bestvideo+bestaudio/best'


        try:

            with yt_dlp.YoutubeDL(ydl_opts) as ydl:

                ydl.download([url])

                msg = "Download Completed! Check your Downloads folder."

        except Exception as e:

            msg = f"Error: {str(e)}"

            

    return render_template_string(HTML, msg=msg)


if __name__ == '__main__':

    app.run(host='0.0.0.0', port=8080)


```

*(কোড পেস্ট করা হলে CTRL+O, Enter, এবং CTRL+X দিয়ে সেভ করে বের হয়ে আসুন।)*

### ৩. সার্ভারটি চালু করুন

এখন নিচের কমান্ড দিয়ে আপনার কাস্টম সার্ভারটি রান করুন:

```bash

python app.py


```

### ৪. কিভাবে ব্যবহার করবেন?

 1. আপনার ফোনের যেকোনো ব্রাউজার (Chrome/Via) ওপেন করুন।

 2. অ্যাড্রেস বারে লিখুন: localhost:8080

 3. এখন সেখানে আপনার ইউটিউব লিঙ্কটি দিন।

 4. **MP4** বা **MP3** বাটনে ক্লিক করুন।

 5. টার্মাক্সে ডাউনলোড শুরু হবে এবং ফাইলটি আপনার ফোনের **Downloads** ফোল্ডারে সেভ হবে।

### ৫. কাজ না করলে যা করবেন:

যদি কাজ না করে, তবে নিশ্চিত করুন আপনি টার্মাক্সকে স্টোরেজ পারমিশন দিয়েছেন:

```bash

termux-setup-storage


```

এই সিস্টেমটি আপনার নিজের বানানো একটি **Web-UI Downloader** হিসেবে কাজ করবে। ট্রাই করে দেখুন!



অভিনন্দন! আপনার স্ক্রিনশট দেখে বোঝা যাচ্ছে আপনার **Flask Server** সফলভাবে রান করছে। আপনি একদম ঠিক পথে আছেন।

এখন এটিকে ব্যবহার করার জন্য নিচের ধাপগুলো অনুসরণ করুন:

### ১. ব্রাউজারে প্রবেশ করুন

টার্মাক্স বন্ধ করবেন না (এটি ব্যাকগ্রাউন্ডে চলতে দিন)। আপনার ফোনের যেকোনো ব্রাউজার (যেমন: Chrome বা Via) ওপেন করুন।

### ২. অ্যাড্রেস টাইপ করুন

ব্রাউজারের ওপরের বারে নিচের যেকোনো একটি লিখে এন্টার দিন:

 * http://127.0.0.1:8080

 * অথবা সহজভাবে লিখুন: localhost:8080

### ৩. ইন্টারফেস ব্যবহার করুন

আপনি যদি আমার দেওয়া কোডটি app.py তে সেভ করে থাকেন, তবে ব্রাউজারে একটি ইনপুট বক্স এবং দুটি বাটন (MP4 ও MP3) দেখতে পাবেন।

 * সেখানে ইউটিউব লিঙ্ক পেস্ট করুন।

 * বাটনে ক্লিক করুন।

 * টার্মাক্সে ফিরে তাকালে দেখবেন সেখানে ডাউনলোড প্রসেস দেখাচ্ছে।

### কিছু জরুরি বিষয়:

 * **সার্ভার বন্ধ করতে চাইলে:** টার্মাক্সে ফিরে গিয়ে কিবোর্ড থেকে CTRL + C চাপুন।

 * **যদি ফাইল সেভ না হয়:** নিশ্চিত করুন আপনি termux-setup-storage কমান্ডটি দিয়ে গ্যালারির পারমিশন এলাউ করেছেন।

 * **ডাউনলোড কোথায় হবে:** কোড অনুযায়ী ফাইলটি আপনার ফোনের প্রধান **Download** ফোল্ডারে জমা হবে।

**একটি টিপস:** আপনি যদি একই ওয়াইফাইয়ে থাকা অন্য কোনো মোবাইল বা ল্যাপটপ থেকে এটি ব্যবহার করতে চান, তবে ওই ডিভাইসের ব্রাউজারে গিয়ে আপনার স্ক্রিনশটে থাকা আইপিটি লিখুন: http://100.97.221.112:8080 (এটি আপনার লোকাল নেটওয়ার্ক আইপি)।

এখন ব্রাউজারে গিয়ে চেক করে দেখুন তো ইন্টা

রফেসটি আসছে কি না?


Comments